Como saber e visualizar no excel quais threshoulds estão configurados no SCOM
Em praticamente todo cliente em que eu faço um projeto de SCOM eu sou questionado sobre quais threshoulds estão configurados no SCOM, e apesar de não ter um jeito muito simples de ver isso pela Console, o power shell do SCOM resolve isso de forma bem simples, é rodar o PS abaixo, que ele exporta um arquivo CSV com as seguintes colunas:
Type:o tipo de objetos do monitor
DisplayName:o nome de exibição do monitor
Threshould: O Threshould utilizado pelo monitor
AlertOnState: se o monitor gera um alerta quando seu estado é alterado
AutoResolveAlert:se o alerta gerado será o autoresolved, quando o estado do monitor voltar a ser verde
AlertSeverity:a gravidade do alerta gerado
function GetThreshold ([String] $configuration)
{
$config = [xml] ("<config>" + $configuration + "</config>")
$threshold = $config.Config.Threshold
if($threshold -eq $null)
{
$threshold = $config.Config.MemoryThreshold
}
if($threshold -eq $null)
{
$threshold = $config.Config.CPUPercentageThreshold
}
if($threshold -eq $null)
{
if($config.Config.Threshold1 -ne $null -and $config.Config.Threshold2 -ne $null)
{
$threshold = "first threshold is: " + $config.Config.Threshold1 + " second threshold is: " + $config.Config.Threshold2
}
}
if($threshold -eq $null)
{
if($config.Config.ThresholdWarnSec -ne $null -and $config.Config.ThresholdErrorSec -ne $null)
{
$threshold = "warning threshold is: " + $config.Config.ThresholdWarnSec + " error threshold is: " + $config.Config.ThresholdErrorSec
}
}
if($threshold -eq $null)
{
if($config.Config.LearningAndBaseliningSettings -ne $null)
{
$threshold = "no threshold (baseline monitor)"
}
}
return $threshold
}
$perfMonitors = get-monitor -Criteria:"IsUnitMonitor=1 and Category='PerformanceHealth'"
$perfMonitors | select-object @{name="Target";expression={foreach-object {(Get-MonitoringClass -Id:$_.Target.Id).DisplayName}}},DisplayName, @{name="Threshold";expression={foreach-object {GetThreshold $_.Configuration}}}, @{name="AlertOnState";expression={foreach-object {$_.AlertSettings.AlertOnState}}}, @{name="AutoResolveAlert";expression={foreach-object {$_.AlertSettings.AutoResolve}}}, @{name="AlertSeverity";expression={foreach-object {$_.AlertSettings.AlertSeverity}}} | sort Target, DisplayName | export-csv "c:\monitor_thresholds.csv"
Enjoy !!
Robson Silva