달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2008. 11. 29. 09:08

프로세스 모니터 (개수 - 최소/최대) SystemCenter2008. 11. 29. 09:08

Monitor -> New -> Scripting -> Timed Script Two State Monitor

Parameters
[Process1.exe] [Lower value] [Upper value] [Process2.exe] [Lower value] [Upper value] ....

State Expression
For Unhealthy Expression Property[@Name='State'] Equals Good
For Healthy Expresion Property[@Name='State'] Equals Bad

Alert Description
$Data/Context/Property[@Name='Message']$

---------------------------------------------------------------------------------

ProcessCheck.vbs

Dim oAPI, oBag, oArgs, strProcess(), Lower(), Upper(), colProcess()
strMessage = " "

Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
Set oArgs = WScript.Arguments

ParamCount = oArgs.Count
State = 0

If ParamCount < 3 Then
Call oAPI.LogScriptEvent("ProcessCheck.vbs", 5009, 0, "Script aborted. Not enough parameters provided.")
WScript.Quit -1
End If

If (ParamCount Mod 3) <> 0 Then
Call oAPI.LogScriptEvent("ProcessCheck.vbs", 5010, 0, "Script aborted. The number of provided parameters is invalid.")
WScript.Quit -1
End If

ReDim Preserve strProcess(ParamCount), Lower(ParamCount), Upper(ParamCount), colProcess(ParamCount)

i = 0
Do While i <> ParamCount
strProcess(i) = oArgs(i)
Lower(i) = cInt(oArgs(i + 1))
Upper(i) = cInt(oArgs(i + 2))

If Lower(i) > Upper(i) Then
Call oAPI.LogScriptEvent("ProcessCheck.vbs", 5011, 0, "'" & strProcess(i) & " " & Lower(i) & " " & Upper(i) & "'" & " Lower value is bigger than upper value.")
WScript.Quit -1
End If

i = i + 3
Loop

i = 0
Do While i <> ParamCount
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcess(i) = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = '" & strProcess(i) & "'")

If colProcess(i).Count => Lower(i) and colProcess(i).Count =< Upper(i) Then
Call oBag.Addvalue(strProcess(i) & " (" & Lower(i) & "~" & Upper(i) & ")" ,colProcess(i).Count & "ea (Normal)")
strMessage = strMessage & strProcess(i) & " (" & Lower(i) & "~" & Upper(i) & ") : " & colProcess(i).Count & "ea (Normal)" & " | "
End If

If colProcess(i).Count < Lower(i) Then
Call oBag.Addvalue(strProcess(i) & " (" & Lower(i) & "~" & Upper(i) & ")" ,colProcess(i).Count & "ea (Too few)")
strMessage = strMessage & strProcess(i) & " (" & Lower(i) & "~" & Upper(i) & ") : " & colProcess(i).Count & "ea (Too few)" & " | "
State = 1
End If

If colProcess(i).Count > Upper(i) Then
Call oBag.Addvalue(strProcess(i) & " (" & Lower(i) & "~" & Upper(i) & ")" ,colProcess(i).Count & "ea (Too many)")
strMessage = strMessage & strProcess(i) & " (" & Lower(i) & "~" & Upper(i) & ") : " & colProcess(i).Count & "ea (Too many)" & " | "
State = 1
End If

Set objWMIService = nothing
i = i + 3
Loop

If State = 0 Then
Call oBag.AddValue("State","Good")
Else
Call oBag.AddValue("State","Bad")
End If

Call oBag.AddValue("Message",strMessage)
Call oAPI.Return(oBag)

:
Posted by 커널64

Agent Failover를 사용하기 위해서는 AD 통합이 되어야 하는데
AD 통합이 되어 있지 않은 상태에서 Agent Failover를 구성하기 위해서는 다음 스크립트를 사용한다.

param($agentComputerName,$failoverManagementServerName)
$agent = get-agent | where {$_.PrincipalName -eq $agentComputerName}
$primaryManagementServer  = $agent.GetPrimaryManagementServer();
if($primaryManagementServer -eq $null)
{
"Primary management server not found"
return
}
$failoverManagementServer = Get-ManagementServer | where {$_.PrincipalName -eq $failoverManagementServerName}
if($failoverManagementServer -eq $null)
{
"Failover management server not found"
return
}
if($failoverManagementServer.PrincipalName -eq $primaryManagementServer.PrincipalName)
{
"The failover management server cannot be the same as the primary management server"
return
}
$failoverServers = New-Object System.Collections.Generic.List``1"[[Microsoft.EnterpriseManagement.Administration.ManagementServer,Microsoft.EnterpriseManagement.OperationsManager,Version=6.0.4900.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35]]"
$failoverServers.Add($failoverManagementServer)
$agent.SetManagementServers($primaryManagementServer,$failoverServers)

== 사용 방법 ==
1. 위 스크립트를 PS1 확장자로 저장
2. OpsMgr Command Shell 실행
3. 다음과 같이 Agent의 Failover 설정
<SavedFileName>.ps1 -agentComputerName:'agent1.contoso.com'  -failoverManagementServerName:'scommgmt.contoso.com'

:
Posted by 커널64
2008. 11. 16. 18:10

SCOM 2007의 포트 요구 사항 SystemCenter2008. 11. 16. 18:10

사용자 삽입 이미지



Operations Manager 2007 SP1 Component A  Port Number and
Direction 
Operations Manager 2007 SP1 Component B 
Root Management Server  1433 ---> Operations Manager database
Management server  1433 ---> Operations Manager database
Management server 5723, 5724 ---> Root Management Server 
Gateway server 5723, 5724 ---> Root Management Server 
Root Management Server 1433 ---> Reporting Data Warehouse
Reporting server 5723, 5724 ---> Root Management Server 
Operations Console  5724 ---> Root Management Server
Connector framework source  51905 ---> Root Management Server
Web Console server  5724 ---> Root Management Server
Connected Root Management Server (Local) 5724 ---> Connected Root Management Server (Connected)
Agent installed using MOMAgent.msi 5723 ---> Root Management Server 
Agent installed using MOMAgent.msi 5723 ---> Management server 
Agent installed using MOMAgent.msi 5723 ---> Gateway server 
Gateway server 5723 ---> Management server 
Agent (Audit Collection Services forwarder) 51909 ---> Management server Audit Collection Services collector
Agentless Exception Monitoring data from client  51906 ---> Management server Agentless Exception Monitoring file share
Customer Experience Improvement Program data from client  51907 ---> Management server (Customer Experience Improvement Program End) Point
Operations Console (reports) 80 ---> SQL Reporting Services
Reporting server  1433 ---> Reporting Data Warehouse 
Management server (Audit Collection Services collector) 1433 ---> Audit Collection Services database 
Web Console browser  51908 ---> Web Console server

1. MOM의 동작을 위해서는 RMS와 MOM DB와의 연결은 끊김이 없어야 한다.
2. 고가용성을 위해서는 MOM DB/RMS를 Clustering하는 것이 좋다.
3. Discover 동작 시 ‘Verify discovered computers’ 옵션이 켜져 있다면 대상 장비 135(RPC), 137(NETBIOS Name), 139(NETBIOS Session), 445(SMB), 5723 포트로의 접근이 가능해야 한다.
:
Posted by 커널64

l  작업을 위해서는 MOM 2005 Management Server가 필요하다.

l  기본적으로 MOM 2005 MP의 확장자는 akm 이다. (Binary)

l  Binary 파일인 akm 파일을 먼저 xml 형식으로 변환한 후 SCOM 2007 xml로 변환하게 된다.

 

여기서는 Windows Media Services MP Converting하는 것을 예로 한다.

 

<사전 준비 사항>

1.     MOM 2005 Management Server에 로그온 한다.

2.     다음 경로에서 MOM 2005 Resource Kit을 다운받아 설치한다.
MOM 2005 Resource Kit

3.     아래의 링크를 통해 MOM 2005 WMS MP를 다운 받아 설치한다.
Windows Media Services Management Pack for MOM

 

<Converting Process>

1.     MOM 2005 Management Server에 로그온 한다.

2.     Command 창을 열고 다음 위치로 이동한다.
Drive:\Program Files\Microsoft Operations Manager Resource Kit\Tools\Convert Management Packs to XML>

3.     MP2XML.exe 명령을 이용해 위에서 설치(압축을 푼) WMS MP xml 파일로 변환한다.
명령어 사용법 : MP2XML [원본 akm 파일] [대상 xml 파일]

4.     정상적으로 Converting이 완료되면 다음과 같은 메시지와 함께 xml 파일이 생성된다.

사용자 삽입 이미지

5.     이제 생성된 xml 파일을 SCOM 2007이 설치된 Server에 복사한다.

6.      SCOM 2007 설치 미디어에서 MPConvert.exe 파일을 복사하거나 Command 창에서 설치 미디어의 SupportTools 디렉터리로 이동한다.

7.     Command 창에서 다음과 같이 MPConvert.exe 명령을 이용해 MOM 2005 xml 파일을 SCOM 2007 용으로 변환한다.
MPConvert [MOM 2005
xml 파일] [SCOM 2007 xml 파일]


[
참고]
-
결과 파일의 이름(SCOM 2007 xml 파일)은 공백을 포함할 수 없다
.
-
변환이 완료되면 기본적으로 MP의 버전은 1.0.0.1이 된다. (/version 값을 주지 않는 경우
)
-
변환된 xml 파일을 SCOM 2007에서 Import 하면 이름 뒤에 ‘(Converted)’라고 표시된다.

:
Posted by 커널64
2008. 11. 16. 12:11

SCOM 2007 Active Directory Integration SystemCenter2008. 11. 16. 12:11

AD 통합
Operations Manager 2007의 새로운 기능으로 Agent의 구성 정보를 AD에 게시하는 것이다.
OpsMgr Agent는 시작 시 DC에 LDAP 쿼리를 수행함으로서 Agent가 속하는 Management Group 정보와 통신하게 될 Management Server를 정보를 가져오게 된다. AD 통합이 실제로 Agent를 배포하는 것은 아니다.

참고: Operations Manager 2007의 AD 통합을 이용하기 위한 도메인 기능 수준은 Windows 2000 또는 Windows 2003 Native Mode여야 한다.

*조직이 매우 크지 않은 이상 AD 통합을 권장하지는 않는다.


Operations Manager 2007 AD 통합의 전체적인 순서는 다음과 같다.
1. AD 개체 생성
2. Operations Console 설정
3. 관리 서버의 레지스트리 키 설정


AD 개체 생성
1. Domain Admins 그룹의 계정으로 로그인
2. Operations Manager 2007 설치 미디어의 SupportTools 폴더의 MomADAdmin.exe 명령줄 도구를 이용해 AD에 개체 생성
MomADAdmin.exe <management group name> <OpsMgr Admins Security Group> <RMS name> <AD Domain>
3. 위 명령은 다음과 같은 일을 수행한다.
Operations Manager > (Management Group name) > HealthServiceSCP 컨테이너 생성
(Management Group name)에 HealthServiceSCP 컨테이너에 대한 읽기 권한이 있는 보안 그룹이 위치
RMS 컴퓨터 계정을 이 보안 그룹에 추가

참고: Agent Managed Machine이 SCP를 사용하고 있는지 확인하는 방법

관리 대상 머신의 다음 레지스트리 값이 1인 경우
HKLM\SYSTEM\CurrentControlSet\Services\HealthService\Parameters\management groups\<Management Group name>\IsSourcedFromAD
이벤트 로그에 원본이 OpsMgr Connector인 20062, 20013 이벤트 확인


Operations Console 설정
1. AD 통합 마법사 실행 (Administration -> Device Management -> Management Servers)
2. LDAP 쿼리를 설정해 자동 할당을 적용 받을 컴퓨터를 지정한다.
3. 장애 복구 수행 방법 지정
Automatically manage failover - Agent는 자동으로 다른 관리 서버와 통신한다.
Manually configure failover — 장애 복구를 수행할 관리 서버를 수동으로 지정한다.
4. 마법사를 완료한다.


관리 서버의 레지스트리 키 설정
1. 각 관리 서버에서 다음 레지스트리 키를 찾아 수정한다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HealthService\Parameters\ConnectorManager
EnableADIntegration 값을 1로 설정한다.

*도메인 컨트롤러의 경우 관리 그룹이 여러 개이면 기본적으로 도메인 컨트롤러의 시스템 계정은 모든 SCP 폴더에 대해 접근이 가능하기 때문에 모든 관리 그룹에 참가하려고 하게 된다.
Workaround: 도메인 컨트롤러에 대해서는 AD 통합을 사용하지 않는다.



AD 통합 제거
MomADAdmin.exe -d <management group name> <AD Domain>

:
Posted by 커널64
2008. 11. 10. 11:05

SCOM 2007의 RMS <-> MS Promotion/Demotion 방법 SystemCenter2008. 11. 10. 11:05

Management Server(MS) <-> Root Management Server(RMS) Promote / Demote

 

전체적인 과정은 다음과 같다.

1.     Management Server(MS) Root Management Server(RMS) Promote한다.

2.     새로운 RMSReporting Server를 설정한다.

3.     새로운 RMS에 대한 Data Warehouse Server의 권한을 수정한다.

4.     Web Console을 설정하여 새로운 RMS를 바라보게 한다.

5.     ENABLE_BROKER 값 확인 및 설정

 

상세 과정

1.     Management Server(MS) Root Management Server(RMS) Promote한다.

     ( RMS) RMS Promote하기 위한 MS에 다음 파일들을 Operation Manager 2007 설치 시디에서 Operation Manager 2007 설치 폴더로 copy한다.
- SecureStorageBackup.exe, ManagementServerConfigTool.exe

     ( RMS) Command 창을 열어 설치 폴더로 이동한다.

     ( RMS) 다음 명령을 실행해 RMS encryption key를 복원한다.
SecureStorageBackup.exe Restore <filename>

     ( RMS) 다음 명령을 실행해 RMS Promote한다.
ManagementServerConfigTool.exe PromoteRMS

     (선택 사항) 기존 RMS에서 다음 명령을 실행해 MS Demote 시킨다.
(
이 과정은 PromoteRMS 작업 시 기존 RMS에 연결할 수 없는 경우에만 실행한다.
)
ManagementServerConfigTool.exe UpdateDemotedRMS

     (기존 RMS) 설치 폴더에서 Health Service State 폴더와 하위 폴더를 삭제한다.

 

-       기존 RMS에 연결할 수 없는 경우가 아니라면 PromoteRMS 명령을 통해 기존 RMS는 자동으로 MS Demote된다.

 

2.     새로운 RMS Reporting Server를 설정한다.

     SQL Reporting Server에 로그온한다.

     Reporting Service 설치 폴더로 이동한다. (: %ProgramFiles%\Microsoft SQL Server\MSSQL.2\Reporting Services\ReportServer)

     rsreportserver.config 파일을 찾아 메모장으로 연다.

     <ServerName>servername</ServerName> 항목을 찾아 servername을 새로운 RMS의 이름으로 변경한다.

     Regedit를 실행해 다음 위치로 확장한다.
HKLM\Software\Microsoft\Microsoft Operations Manager\3.0\Reporting

     DefaultSDKServiceMachine 값을 새로운 RMS의 이름으로 변경한다.

 

3.     새로운 RMS에 대한 Data Warehouse Server의 권한을 수정한다.

     Data Warehouse를 실행 중인 서버에서 SSMS를 실행해 ‘보안 -> 로그인’으로 이동한다.

     RMS에서 SDK Service를 실행 중인 계정을 찾는다. (LocalSystem인 경우 <domain\computername$> 형태이다.

     해당 계정을 우클릭해 속성을 열어 ‘사용자 매핑’을 클릭하고 다음과 같이 설정한다.
- OperationsManagerDW
의 매핑 체크

-
데이터베이스 역할 멤버 자격 : OperationsManagerDWconfigsvc_users, db_datareader, db_datawriter, db_dlladmin, sdk_users 자격 체크

 

4.     Web Console을 설정하여 새로운 RMS를 바라보게 한다.

     Web Console Server에 로그온 한다.

     Web Console의 설치 위치로 이동한다.
(
: %ProgramFiles%\System Center Operations Manager 2007\Web Console)

     Web.config 파일을 메모장으로 연다.

     <add key=MOMServer value=<FQDN>/> 값을 찾아 <FQDN>값을 새로운 RMS의 FQDN으로 변경한다.

     파일 저장 후 닫는다.

 

5.     ENABLE_BROKER 값 확인 및 설정

     OperationsManager DB SQL Server에서 SSMS를 실행한다.
다음 쿼리를 실행해 ‘is_broker_enabled’의 값이 0이면 아래 과정을 진행한다.
SELECT is_broker_enabled FROM sys.databases WHERE name='OperationsManager'

     QA를 실행해 다음 쿼리를 순서대로 실행한다.
ALTER DATABASE OperationsManager SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE OperationsManager SET ENABLE_BLOKER

     ‘새 쿼리’를 클릭해 QA를 새로 실행한다.

     다음 쿼리를 실행한다.
ALTER DATABASE OperationsManager SET MULTI_USER

     다음 쿼리를 이용해 ‘is_broker_enabled’의 값을 확인한다.
SELECT is_broker_enabled FROM sys.databases WHERE name='OperationsManager'

:
Posted by 커널64

The MOM Server failed to acquire lock to remote computer computer_name. This means there is already an agent management operation proceeding on this computer, please retry the Push Agent operation after some time.

Operation: Agent Install
Install account: account_name
Error Code: 80072971
Error description: Unknown error 0x80072971

 

Solution : delete file %windir%\422C3AB1-32E0-4411-BF66-A84FEEFCC8E2\LockFileTime.txt

 

KB934760

:
Posted by 커널64