Monitor de ponto de extremidade Web VMM da Service Provider Foundation

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

Monitora a saúde operacional da ponta de extremidade Web VMM da SPF.

Knowledge Base article:

Resumo

Monitora a acessibilidade e a operabilidade da interface Web VMM a partir dos servidores Web da SPF. Isso é realizado através de uma chamada de interface Web de teste para recuperar recursos na nuvem.

Causas

Caso esse monitor apresente erro, e nenhum outro monitor de conectividade apresentar erro, isso significa que as prováveis causas são um erro de configuração de malha ou um erro de permissão. Consulte detalhes da configuração do monitor na seção Configuração.

Solução

Verifique a configuração de malha do servidor VMM de destino e certifique-se de que os direitos de acesso estão concedidos à conta do administrador. Verifique se a segurança do monitor está configurada corretamente.

Configuração

Para que esse monitor funcione corretamente, é necessário que ele tenha permissão para acessar recursos na nuvem em servidores VMM. Crie uma Conta Run As que usa ou que tenha as mesmas permissões da conta do Pool de Aplicativos especificada para o ponto de extremidade Web VMM e adicione ela ao Perfil Run As chamado Conta VMM da Microsoft Service Provider.

É possível configurar as seguintes opções neste monitor:

Opção

Definição

Padrão

Estado de Alerta Ativo

Estado de integridade para o monitor que gera um alerta.

O monitor está em um estado de integridade crítico

Prioridade do Alerta

Prioridade do alerta gerado para esse monitor.

Alto

Severidade do Alerta

Prioridade do alerta gerado para esse monitor.

Crítica

Alerta de Resolução Automática

Especifica se o alerta deve ser solucionado automaticamente quando o monitor retorna a um estado íntegro.

Verdadeiro

Habilitado

Especifica se o monitor deve ser executado.

Verdadeiro

Gera Alerta

Especifica se o monitor deve gerar um alerta ao mudar para um estado de aviso ou crítico.

Verdadeiro

Intervalo

Número de segundos entre os momentos em que o monitor é executado.

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
AlertIfCantAccessVMMEndpoint
O ponto de extremidade Web VMM da Service Provider Foundation não está acessível.
RunAsMicrosoft.SystemCenter.SPF.VmmEndpointAccount

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.SPF.Monitor.VMMEndpointGet" 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.VmmEndpointAccount">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.SPF.Monitor.VMMEndpointGet.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='StatusCode']$</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>HealthOfSpfServer.ps1</ScriptName>
<ScriptBody><Script>param
(
$PortNumber
)

$oAPI = new-object -comObject "MOM.ScriptAPI"
$propertyBag = $oAPI.CreatePropertyBag()

$errorActionSetting = $ErrorActionPreference

$downVmmServers = $null
$res = $null

try
{
$ErrorActionPreference = "Stop"

[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}

$req = [System.Net.WebRequest]::Create("https://localhost:$PortNumber/SC2012R2/VMM/Microsoft.Management.OData.svc/Clouds")
$req.UseDefaultCredentials = $true
$res = $req.GetResponse()
$int = [int]$res.StatusCode
if($int -eq 200)
{
$propertyBag.AddValue("Result", "Success")
}
else
{
$propertyBag.AddValue("Result", "Failure")
}

$propertyBag.AddValue("StatusCode", $int)

}
catch
{
$propertyBag.AddValue("Result", "Failure")
$propertyBag.AddValue("StatusCode", $_.Exception.Message)
}
finally
{
$ErrorActionPreference = $errorActionSetting
if($res -ne $null)
{
$res.Close()
}
$propertyBag
}
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>PortNumber</Name>
<Value>$Target/Property[Type="Microsoft.SystemCenter.SPF.SpfServerBase"]/PortNumber$</Value>
</Parameter>
</Parameters>
<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>