Service Provider Foundation VMM 서버 모니터

Microsoft.SystemCenter.SPF.Monitor.VMMServerConnection (UnitMonitor)

등록된 모든 VMM 서버에 대한 연결을 모니터링합니다.

Knowledge Base article:

요약

SPF 웹 서버에서 VMM 관리 서버 연결을 모니터링합니다. 등록된 각 VMM 관리 서버에 대한 테스트 연결을 정기적으로 설정하여 모니터링합니다.

원인

이 모니터가 오류 상태인 경우 서버에서 VMM 관리 서버를 사용할 수 없거나 VMM 관리 서버 구성이 변경되었거나 모니터의 보안이 제대로 구성되지 않았습니다. 모니터를 구성하는 방법에 대한 자세한 내용은 구성 섹션을 참조하십시오.

모니터가 제대로 구성되었으며 모니터가 오류 상태인 경우 VMM 관리 서버가 오프라인이거나 Service Provider Foundation 서버에 액세스할 수 없습니다.

해결 방법

VMM 모니터링 관리 팩을 사용하여 VMM 관리 서버 구성, 포트 번호, 계정 권한 및 작업 상태를 확인하십시오. VMM 작동 상태는 오류가 없음을 나타내면 SPF 데이터베이스에 등록된 VMM 서버를 확인하여 연결 정보가 올바른지 알아보십시오. SPF 서버의 VMM 웹 끝점에 대한 응용 프로그램 풀 계정이 VMM 서버에 대한 액세스 권한으로 프로비전었되는지 확인하십시오. 앱 풀 계정 암호가 만료되었는지 확인하십시오.

구성

이 모니터가 제대로 작동하려면 SPF PowerShell Cmdlet을 실행하는 권한과 VMM 서버에 대한 연결을 보유해야 합니다. VMM 웹 끝점에 대해 지정된 앱 풀 계정과 동일한 권한을 사용하거나 보유하는 실행 계정을 만들어 Microsoft Service Provider Foundation VMM 계정이라는 실행 프로필에 추가하십시오.

옵션

정의

기본값

경고 상태

경고를 생성하는 모니터의 상태입니다.

모니터가 위험 상태에 있습니다.

경고 우선 순위

이 모니터에 대해 생성된 경고의 우선 순위입니다.

높음

경고 심각도

이 모니터에 대해 생성된 경고의 우선 순위입니다.

위험

경고 자동 해결

모니터가 정상 상태로 돌아올 경우 경고가 자동으로 해결되는지 여부를 지정합니다.

True

사용

모니터를 실행할지 여부를 지정합니다.

True

경고 생성

경고 또는 위험 상태로 변경될 때 모니터에서 경고를 생성할지 여부를 지정합니다.

True

간격

모니터가 실행되는 시간 사이의 초 수입니다.

300

Element properties:

TargetMicrosoft.SystemCenter.SPF.SpfServer
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.ServiceProviderFoundation.PowerShellModule.TwoStateMonitorType.PropertyBag
RemotableTrue
AccessibilityInternal
Alert Message
AlertIfCantConnectToVMM
등록된 VMM 서버에 연결하지 못했습니다.
RunAsMicrosoft.SystemCenter.SPF.DatabaseAccount

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.SPF.Monitor.VMMServerConnection" Accessibility="Internal" Enabled="true" Target="Microsoft.SystemCenter.SPF.SpfServer" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.ServiceProviderFoundation.PowerShellModule.TwoStateMonitorType.PropertyBag" ConfirmDelivery="false" RunAs="Microsoft.SystemCenter.SPF.DatabaseAccount">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.SPF.Monitor.VMMServerConnection.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='DownVmmServers']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<ScriptName>HealthOfVmmServers.ps1</ScriptName>
<ScriptBody><Script>$oAPI = new-object -comObject "MOM.ScriptAPI"
$propertyBag = $oAPI.CreatePropertyBag()

$errorActionSetting = $ErrorActionPreference

$downVmmServers = $null

try
{
$ErrorActionPreference = "Stop"
Import-Module "$env:COMMONPROGRAMFILES\Microsoft System Center 2012 R2\Service Provider Foundation\Microsoft.SystemCenter.Foundation.Cmdlet.dll"
$vmmInstallPath = get-itemproperty "hklm:\software\microsoft\microsoft system center virtual machine manager administrator console\setup" | select-object -ExpandProperty installpath
Import-Module "$vmmInstallPath\bin\Microsoft.SystemCenter.VirtualMachineManager.dll"
$servers = Get-SCSPFServer -ServerType 0
foreach($server in $servers)
{
try
{
$vmmServer = Get-SCVmmServer -ComputerName $server
$vmmServer.Disconnect()
$vmmServer = $null
}
catch
{
$downVmmServers = $downVmmServers + "$server;"
}
}

if($downVmmServers -ne $null)
{
$propertyBag.AddValue("Result", "Error")
$propertyBag.AddValue("DownVmmServers", $downVmmServers)
}
else
{
$propertyBag.AddValue("Result", "Success")
}
}
catch
{
$propertyBag.AddValue("Result", "Error")
}
finally
{
$ErrorActionPreference = $errorActionSetting
$propertyBag
}
</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
<ErrorExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Result']</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</ErrorExpression>
<SuccessExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Result']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</SuccessExpression>
</Configuration>
</UnitMonitor>