Service Provider Foundation VMM サーバー モニター

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

すべての登録済み VMM サーバーへの接続を監視します。

Knowledge Base article:

概要

SPF Web サーバーからの VMM 管理サーバー接続を監視します。これを行うために、定期的に登録済み VMM 管理サーバーのそれぞれに対してテスト接続を行います。

構成

このモニターが正しく機能するには、SPF PowerShell コマンドレットの実行と VMM サーバーへの接続が許可されている必要があります。VMM Web エンドポイントに対して指定されているアプリケーション プール アカウントと同じアクセス許可を持つ実行アカウントを作成し、このアカウントを "Microsoft Service Provider Foundation VMM アカウント" という実行プロファイルに追加してください。

オプション

定義

既定

アラート状態

アラートを生成するモニターのヘルス状態。

モニターのヘルス状態が重大状態にあります

アラートの優先順位

このモニターで生成されるアラートの優先順位。

アラートの重要度

このモニターで生成されるアラートの優先順位。

重大

アラートの自動解決

モニターが正常状態に戻ったときにアラートを自動的に解決するかどうかを指定します。

True

有効

モニターを実行するかどうかを指定します。

True

アラートの生成

状態が警告または重大に変化したときに、モニターでアラートを生成するかどうかを指定します。

True

間隔

モニターを実行する間隔 (秒)。

300

原因

このモニターがエラー状態の場合は、VMM 管理サーバーがサーバーから利用できない状態であるか、VMM 管理サーバーの構成が変更されたか、モニターのセキュリティが正しく構成されていません。モニターの構成方法の詳細については、「構成」セクションを参照してください。

モニターが正しく構成されているにもかかわらずエラー状態の場合は、VMM 管理サーバーがオフラインであるか、Service Provider Foundation サーバーからアクセスできない状態となっています。

解決方法

VMM 管理サーバーの構成 (ポート番号、アカウントのアクセス許可、稼働状態) を、VMM 監視管理パックを使用して調べてください。VMM 稼働状態がエラーなしを示している場合は、SPF データベース内の登録済み VMM サーバーを調べて、接続情報が正しいことを確認してください。SPF サーバー上の VMM Web エンドポイントに対応するアプリケーション プール アカウントが、VMM サーバーにアクセスできるようにプロビジョニング済みであることを確認してください。アプリケーション プール アカウントのパスワードが失効していないことを確認してください。

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
AccessibilityPublic
Alert Message
VMM に接続できません
登録済み VMM サーバーへの接続に失敗しました
RunAsMicrosoft.SystemCenter.SPF.DatabaseAccount

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.SPF.Monitor.VMMServerConnection" Accessibility="Public" 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 = ""

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.Length -gt 0)
{
$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>