31bf3856ad364e35 · 6.1.7000.277 31bf3856ad364e35
Transcript of 31bf3856ad364e35 · 6.1.7000.277 31bf3856ad364e35
<ManagementPack ContentReadable="true" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<Manifest>
<Identity>
<ID>Custom.Unix.Process.Monitoring</ID>
<Version>1.0.0.1</Version>
</Identity>
<Name>Custom.Unix.Process.Monitoring</Name>
<References>
<Reference Alias="MicrosoftSystemCenterDataWarehouseLibrary">
<ID>Microsoft.SystemCenter.DataWarehouse.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="SC">
<ID>Microsoft.SystemCenter.Library</ID>
<Version>6.1.7221.81</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="MicrosoftSystemCenterWSManagementLibrary">
<ID>Microsoft.SystemCenter.WSManagement.Library</ID>
<Version>6.1.7221.81</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="MicrosoftUnixLibrary">
<ID>Microsoft.Unix.Library</ID>
<Version>6.1.7000.277</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Windows">
<ID>Microsoft.Windows.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Health">
<ID>System.Health.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="System">
<ID>System.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="SystemPerformanceLibrary">
<ID>System.Performance.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
</References>
</Manifest>
<TypeDefinitions>
<EntityTypes>
<ClassTypes>
<ClassType ID="Custom.Unix.Process.Monitoring.AIX.ConfigData" Accessibility="Internal"
Abstract="false" Base="MicrosoftUnixLibrary!Microsoft.Unix.LocalApplication" Hosted="true"
Singleton="false">
<Property ID="Hostname" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="AlertKey" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="RaiseAlert" Type="string" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="MonitoringInterval" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="ProcessMinCount" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="ProcessMaxCount" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="CollectProcessPerfData" Type="string" Key="false" CaseSensitive="false"
Length="256" MinLength="0" />
<Property ID="RaisePerfAlert" Type="string" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="CPUWarnThreshold" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="CPUCriticalThreshold" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="MemoryWarnThreshold" Type="int" Key="false" CaseSensitive="false"
Length="256" MinLength="0" />
<Property ID="MemoryCriticalThreshold" Type="int" Key="false" CaseSensitive="false"
Length="256" MinLength="0" />
<Property ID="ProcessNamePattern" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="PerfmonInterval" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="ProcessName" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
</ClassType>
<ClassType ID="Custom.Unix.Process.Monitoring.HPUX.ConfigData" Accessibility="Internal"
Abstract="false" Base="MicrosoftUnixLibrary!Microsoft.Unix.LocalApplication" Hosted="true"
Singleton="false">
<Property ID="Hostname" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="AlertKey" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="RaiseAlert" Type="string" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="MonitoringInterval" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="ProcessMinCount" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="ProcessMaxCount" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="CollectProcessPerfData" Type="string" Key="false" CaseSensitive="false"
Length="256" MinLength="0" />
<Property ID="RaisePerfAlert" Type="string" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="CPUWarnThreshold" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="CPUCriticalThreshold" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="MemoryWarnThreshold" Type="int" Key="false" CaseSensitive="false"
Length="256" MinLength="0" />
<Property ID="MemoryCriticalThreshold" Type="int" Key="false" CaseSensitive="false"
Length="256" MinLength="0" />
<Property ID="ProcessNamePattern" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="PerfmonInterval" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="ProcessName" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
</ClassType>
<ClassType ID="Custom.Unix.Process.Monitoring.RHEL.ConfigData" Accessibility="Internal"
Abstract="false" Base="MicrosoftUnixLibrary!Microsoft.Unix.LocalApplication" Hosted="true"
Singleton="false">
<Property ID="Hostname" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="AlertKey" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="RaiseAlert" Type="string" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="MonitoringInterval" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="ProcessMinCount" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="ProcessMaxCount" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="CollectProcessPerfData" Type="string" Key="false" CaseSensitive="false"
Length="256" MinLength="0" />
<Property ID="RaisePerfAlert" Type="string" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="CPUWarnThreshold" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="CPUCriticalThreshold" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="MemoryWarnThreshold" Type="int" Key="false" CaseSensitive="false"
Length="256" MinLength="0" />
<Property ID="MemoryCriticalThreshold" Type="int" Key="false" CaseSensitive="false"
Length="256" MinLength="0" />
<Property ID="ProcessNamePattern" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="ProcessName" Type="string" Key="true" CaseSensitive="false" Length="256"
MinLength="0" />
<Property ID="PerfmonInterval" Type="int" Key="false" CaseSensitive="false" Length="256"
MinLength="0" />
</ClassType>
</ClassTypes>
</EntityTypes>
<ModuleTypes>
<DataSourceModuleType
ID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.AIX" Accessibility="Internal"
Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="Timeout" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessNamePattern" type="xsd:string" />
<xsd:element minOccurs="1" name="CollectProcessPerfData" type="xsd:string" />
<xsd:element minOccurs="1" name="RaisePerfAlert" type="xsd:string" />
<xsd:element minOccurs="1" name="CPUWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="CPUCriticalThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemCriticalThreshold" type="xsd:integer" />
</Configuration>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="DS"
TypeID="Custom.Unix.Process.Monitoring.DataSource.RunShellCommand">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<ShellCommand>ps -e -o pcpu -o pmem -o args | grep $Config/ProcessNamePattern$ | grep -v
grep | perl -e '
use strict;
use warnings;
my @records = ();
eval(q^@records = ^.chr(60).chr(62));
my $cpu=0;
my $highCpu=0;
my $avgCpu=0;
my $mem=0;
my $highMemory=0;
my $avgMemory=0;
my $recNum = @records;
if($recNum ne 0)
{
for(my $count=0;eval(q^$count^.chr(60).q^$recNum^);$count++){
my @temp = split(q^ ^,$records[$count]);
if($temp[0] gt $highCpu){
$highCpu = $temp[0];
}
$cpu = $cpu + $temp[0];
if($temp[1] gt $highMemory){
$highMemory = $temp[1];
}
$mem = $mem + $temp[1];
}
$avgCpu = $cpu/$recNum;
$avgMemory = $mem/$recNum;
}
my $retrnVal = $avgCpu.chr(124).$highCpu.chr(124).$avgMemory.chr(124).$highMemory;
print $retrnVal;
'</ShellCommand>
<Timeout>$Config/Timeout$</Timeout>
</DataSource>
<ProbeAction ID="PropBag"
TypeID="Windows!Microsoft.Windows.PowerShellPropertyBagProbe">
<ScriptName>ProcessAIXProcessesPerformance.ps1</ScriptName>
<ScriptBody><![CDATA[param (
[string]$CmdOutput,
[string]$CollectProcessPerfData,
[string]$RaisePerfAlert,
[int]$CPUWarnThreshold,
[int]$CPUCriticalThreshold,
[int]$MemWarnThreshold,
[int]$MemCriticalThreshold,
[string]$ProcessPattern
);
$api = New-Object -comObject "MOM.ScriptAPI";
$bag = $api.CreatePropertyBag()
if($CollectProcessPerfData -eq "YES"){
if ($CmdOutput -ne $null -and $CmdOutput -ne ""){
[array] $data = $CmdOutput.split("|")
$msg= "Avg_CPU_Used_AIX:"+$data[0]+" | Max_CPU_Used_AIX:"+$data[1]+" |
Avg_Memory_Used_AIX:"+$data[2]+" | Max_Memory_Used_AIX:"+$data[3]+" | "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service Script" -
EventID 7660 -Message $msg -EntryType Information
$bag.AddValue('Avg_CPU_Used_AIX',$data[0])
$bag.AddValue('Max_CPU_Used_AIX',$data[1])
$bag.AddValue('Avg_Memory_Used_AIX',$data[2])
$bag.AddValue('Max_Memory_Used_AIX',$data[3])
}
}
if($RaisePerfAlert -eq "YES")
{
if ($CmdOutput -ne $null -and $CmdOutput -ne ""){
[array] $alData = $CmdOutput.split("|")
$msg= "Avg_CPU_Used_AIX:"+$alData[0]+" |
Max_CPU_Used_AIX:"+$alData[1]+" | Avg_Memory_Used_AIX:"+$alData[2]+" |
Max_Memory_Used_AIX:"+$alData[3]
write-eventlog -logname "Operations Manager" -Source "Health Service Script" -
EventID 7661 -Message $msg -EntryType Information
if([int]$alData[1] -ge $CPUCriticalThreshold){
$msg = "Process %CPU Used : Critical : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 7662 -Message $msg -EntryType Information
$bag.AddValue('UsedCPUState',"Critical")
}
elseif([int]$alData[1] -ge $CPUWarnThreshold -AND $alData[1] -lt
$CPUCriticalThreshold){
$msg = "Process %CPU Used : Warning : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 7662 -Message $msg -EntryType Information
$bag.AddValue('UsedCPUState',"Warning")
}
elseif([int]$alData[1] -lt $CPUWarnThreshold){
$msg = "Process %CPU Used : Success : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 7662 -Message $msg -EntryType Information
$bag.AddValue('UsedCPUState',"Success")
}
else{}
if([int]$alData[3] -ge $MemCriticalThreshold){
$msg = "Process %Mem Used : Critical : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 7663 -Message $msg -EntryType Information
$bag.AddValue('UsedMemoryState',"Critical")
}
elseif([int]$alData[3] -ge $MemWarnThreshold -AND $alData[3] -lt
$MemCriticalThreshold){
$msg = "Process %Mem Used : Warning : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 7663 -Message $msg -EntryType Information
$bag.AddValue('UsedMemoryState',"Warning")
}
elseif([int]$alData[3] -lt $MemWarnThreshold){
$msg = "Process %Mem Used : Success : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 7663 -Message $msg -EntryType Information
$bag.AddValue('UsedMemoryState',"Success")
}
else{}
}
}
$bag
]]></ScriptBody>
<SnapIns />
<Parameters>
<Parameter>
<Name>CmdOutput</Name>
<Value>$Data///*[local-name()="StdOut"]$</Value>
</Parameter>
<Parameter>
<Name>CollectProcessPerfData</Name>
<Value>$Config/CollectProcessPerfData$</Value>
</Parameter>
<Parameter>
<Name>RaisePerfAlert</Name>
<Value>$Config/RaisePerfAlert$</Value>
</Parameter>
<Parameter>
<Name>CPUWarnThreshold</Name>
<Value>$Config/CPUWarnThreshold$</Value>
</Parameter>
<Parameter>
<Name>CPUCriticalThreshold</Name>
<Value>$Config/CPUCriticalThreshold$</Value>
</Parameter>
<Parameter>
<Name>MemWarnThreshold</Name>
<Value>$Config/MemWarnThreshold$</Value>
</Parameter>
<Parameter>
<Name>MemCriticalThreshold</Name>
<Value>$Config/MemCriticalThreshold$</Value>
</Parameter>
<Parameter>
<Name>ProcessPattern</Name>
<Value>$Config/ProcessNamePattern$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>150</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="PropBag">
<Node ID="DS" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.PropertyBagData</OutputType>
</DataSourceModuleType>
<DataSourceModuleType
ID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.HPUX" Accessibility="Internal"
Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="Timeout" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessNamePattern" type="xsd:string" />
<xsd:element minOccurs="1" name="CollectProcessPerfData" type="xsd:string" />
<xsd:element minOccurs="1" name="RaisePerfAlert" type="xsd:string" />
<xsd:element minOccurs="1" name="CPUWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="CPUCriticalThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemCriticalThreshold" type="xsd:integer" />
</Configuration>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="RunScript"
TypeID="Custom.Unix.Process.Monitoring.DataSource.RunShellCommand">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<ShellCommand>egrep '$Config/ProcessNamePattern$|Memory' /ZZZZ/top.out | grep -v grep
| perl -e '
use strict;
use warnings;
my @records = ();
eval(q^@records = ^.chr(60).chr(62));
my $totMemory = $records[0];
$totMemory =~ /.*\((.*)\) real.*$/;
$totMemory = $1;
if($totMemory =~ q^K^){
$totMemory =~ /^(.*)K$/;
$totMemory = $1;
}
elsif($totMemory =~ q^M^){
$totMemory =~ /^(.*)M$/;
$totMemory = $1 * 1024;
}
elsif($totMemory =~ q^G^){
$totMemory =~ /^(.*)G$/;
$totMemory = $1 * 1048576;
}
else {$totMemory = 1};
my $cpu=0;
my $highCpu=0;
my $avgCpu=0;
my $mem=0;
my $highMemory=0;
my $avgMemory=0;
my $recNum = @records;
if($recNum ne 0)
{
for(my $count=1;eval(q^$count^.chr(60).q^$recNum^);$count++){
my @temp = split(q^ ^,$records[$count]);
if($temp[11] gt $highCpu){
$highCpu = $temp[11];
}
$cpu = $cpu + $temp[11];
if($temp[7] =~ q^K^){
$temp[7] =~ /^(.*)K$/;
$temp[7] = $1;
}
elsif($temp[7] =~ q^M^){
$temp[7] =~ /^(.*)M$/;
$temp[7] = $1 * 1024;
}
elsif($temp[7] =~ q^G^){
$temp[7] =~ /^(.*)G$/;
$temp[7] = $1 * 1048576;
}
else {$temp[7] = 0};
if($temp[7] gt $highMemory){
$highMemory = ($temp[7]/$totMemory)*100;
}
$mem = $mem + $temp[7];
}
$avgCpu = $cpu/($recNum-1);
$avgMemory = ($mem*100/$totMemory)/($recNum-1);
}
my $retrnVal = $avgCpu.chr(124).$highCpu.chr(124).$avgMemory.chr(124).$highMemory;
print $retrnVal;'
</ShellCommand>
<Timeout>$Config/Timeout$</Timeout>
</DataSource>
<ProbeAction ID="PSProbe"
TypeID="Windows!Microsoft.Windows.PowerShellPropertyBagProbe">
<ScriptName>GetProcessPerfDataHPUX.ps1</ScriptName>
<ScriptBody><![CDATA[
param (
[string]$CmdOutput,
[string]$CollectProcessPerfData,
[string]$RaisePerfAlert,
[int]$CPUWarnThreshold,
[int]$CPUCriticalThreshold,
[int]$MemWarnThreshold,
[int]$MemCriticalThreshold,
[string]$ProcessPattern
);
$api = New-Object -comObject "MOM.ScriptAPI";
$bag = $api.CreatePropertyBag()
write-eventlog -logname "Operations Manager" -Source "Health Service Script" -EventID 8660 -Message
$CmdOutput -EntryType Information
if($CollectProcessPerfData -eq "YES"){
if ($CmdOutput -ne $null -and $CmdOutput -ne ""){
[array] $data = $CmdOutput.split("|")
$msg= "Avg_CPU_Used_HPUX:"+$data[0]+" |
Max_CPU_Used_HPUX:"+$data[1]+" | Avg_Memory_Used_HPUX:"+$data[2]+" |
Max_Memory_Used_HPUX:"+$data[3]+" | "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service Script" -
EventID 8660 -Message $msg -EntryType Information
$bag.AddValue('Avg_CPU_Used_HPUX',$data[0])
$bag.AddValue('Max_CPU_Used_HPUX',$data[1])
$bag.AddValue('Avg_Memory_Used_HPUX',$data[2])
$bag.AddValue('Max_Memory_Used_HPUX',$data[3])
}
}
if($RaisePerfAlert -eq "YES")
{
if ($CmdOutput -ne $null -and $CmdOutput -ne ""){
[array] $alData = $CmdOutput.split("|")
$msg= "Avg_CPU_Used_HPUX:"+$alData[0]+" |
Max_CPU_Used_HPUX:"+$alData[1]+" | Avg_Memory_Used_HPUX:"+$alData[2]+" |
Max_Memory_Used_HPUX:"+$alData[3]
write-eventlog -logname "Operations Manager" -Source "Health Service Script" -
EventID 8661 -Message $msg -EntryType Information
if([int]$alData[1] -ge $CPUCriticalThreshold){
$msg = "Process %CPU Used : Critical : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 8662 -Message $msg -EntryType Information
$bag.AddValue('UsedCPUState',"Critical")
}
elseif([int]$alData[1] -ge $CPUWarnThreshold -AND $alData[1] -lt
$CPUCriticalThreshold){
$msg = "Process %CPU Used : Warning : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 8662 -Message $msg -EntryType Information
$bag.AddValue('UsedCPUState',"Warning")
}
elseif([int]$alData[1] -lt $CPUWarnThreshold){
$msg = "Process %CPU Used : Success : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 8662 -Message $msg -EntryType Information
$bag.AddValue('UsedCPUState',"Success")
}
else{}
if([int]$alData[3] -ge $MemCriticalThreshold){
$msg = "Process %Mem Used : Critical : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 8663 -Message $msg -EntryType Information
$bag.AddValue('UsedMemoryState',"Critical")
}
elseif([int]$alData[3] -ge $MemWarnThreshold -AND $alData[3] -lt
$MemCriticalThreshold){
$msg = "Process %Mem Used : Warning : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 8663 -Message $msg -EntryType Information
$bag.AddValue('UsedMemoryState',"Warning")
}
elseif([int]$alData[3] -lt $MemWarnThreshold){
$msg = "Process %Mem Used : Success : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 8663 -Message $msg -EntryType Information
$bag.AddValue('UsedMemoryState',"Success")
}
else{}
}
}
$bag
]]></ScriptBody>
<SnapIns />
<Parameters>
<Parameter>
<Name>CmdOutput</Name>
<Value>$Data///*[local-name()="StdOut"]$</Value>
</Parameter>
<Parameter>
<Name>CollectProcessPerfData</Name>
<Value>$Config/CollectProcessPerfData$</Value>
</Parameter>
<Parameter>
<Name>RaisePerfAlert</Name>
<Value>$Config/RaisePerfAlert$</Value>
</Parameter>
<Parameter>
<Name>CPUWarnThreshold</Name>
<Value>$Config/CPUWarnThreshold$</Value>
</Parameter>
<Parameter>
<Name>CPUCriticalThreshold</Name>
<Value>$Config/CPUCriticalThreshold$</Value>
</Parameter>
<Parameter>
<Name>MemWarnThreshold</Name>
<Value>$Config/MemWarnThreshold$</Value>
</Parameter>
<Parameter>
<Name>MemCriticalThreshold</Name>
<Value>$Config/MemCriticalThreshold$</Value>
</Parameter>
<Parameter>
<Name>ProcessPattern</Name>
<Value>$Config/ProcessNamePattern$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>150</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="PSProbe">
<Node ID="RunScript" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.PropertyBagData</OutputType>
</DataSourceModuleType>
<DataSourceModuleType
ID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.RHEL" Accessibility="Internal"
Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="Timeout" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessNamePattern" type="xsd:string" />
<xsd:element minOccurs="1" name="CollectProcessPerfData" type="xsd:string" />
<xsd:element minOccurs="1" name="RaisePerfAlert" type="xsd:string" />
<xsd:element minOccurs="1" name="CPUWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="CPUCriticalThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemCriticalThreshold" type="xsd:integer" />
</Configuration>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="RunPerfRHEL"
TypeID="Custom.Unix.Process.Monitoring.DataSource.RunShellCommand">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<ShellCommand>ps -e -o pcpu -o pmem -o cmd | grep $Config/ProcessNamePattern$ | grep -v
grep | perl -e '
use strict;
use warnings;
my @records = ();
eval(q^@records = ^.chr(60).chr(62));
my $cpu=0;
my $highCpu=0;
my $avgCpu=0;
my $mem=0;
my $highMemory=0;
my $avgMemory=0;
my $recNum = @records;
if($recNum ne 0)
{
for(my $count=0;eval(q^$count^.chr(60).q^$recNum^);$count++){
my @temp = split(q^ ^,$records[$count]);
if($temp[0] gt $highCpu){
$highCpu = $temp[0];
}
$cpu = $cpu + $temp[0];
if($temp[1] gt $highMemory){
$highMemory = $temp[1];
}
$mem = $mem + $temp[1];
}
$avgCpu = $cpu/$recNum;
$avgMemory = $mem/$recNum;
}
my $retrnVal = $avgCpu.chr(124).$highCpu.chr(124).$avgMemory.chr(124).$highMemory;
print $retrnVal;
'
</ShellCommand>
<Timeout>$Config/Timeout$</Timeout>
</DataSource>
<ProbeAction ID="ProseccPerfDataAIX"
TypeID="Windows!Microsoft.Windows.PowerShellPropertyBagProbe">
<ScriptName>ProcessUnixProcessesPerformance.ps1</ScriptName>
<ScriptBody><![CDATA[
param (
[string]$CmdOutput,
[string]$CollectProcessPerfData,
[string]$RaisePerfAlert,
[int]$CPUWarnThreshold,
[int]$CPUCriticalThreshold,
[int]$MemWarnThreshold,
[int]$MemCriticalThreshold,
[string]$ProcessPattern
);
$api = New-Object -comObject "MOM.ScriptAPI";
$bag = $api.CreatePropertyBag()
if($CollectProcessPerfData -eq "YES"){
if ($CmdOutput -ne $null -and $CmdOutput -ne ""){
[array] $data = $CmdOutput.split("|")
$msg= "Avg_CPU_Used_Linux:"+$data[0]+" |
Max_CPU_Used_Linux:"+$data[1]+" | Avg_Memory_Used_Linux:"+$data[2]+" |
Max_Memory_Used_Linux:"+$data[3]+" | "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service Script" -
EventID 6660 -Message $msg -EntryType Information
$bag.AddValue('Avg_CPU_Used_Linux',$data[0])
$bag.AddValue('Max_CPU_Used_Linux',$data[1])
$bag.AddValue('Avg_Memory_Used_Linux',$data[2])
$bag.AddValue('Max_Memory_Used_Linux',$data[3])
}
}
if($RaisePerfAlert -eq "YES")
{
if ($CmdOutput -ne $null -and $CmdOutput -ne ""){
[array] $alData = $CmdOutput.split("|")
$msg= "Avg_CPU_Used_Linux:"+$alData[0]+" |
Max_CPU_Used_Linux:"+$alData[1]+" | Avg_Memory_Used_Linux:"+$alData[2]+" |
Max_Memory_Used_Linux:"+$alData[3]
write-eventlog -logname "Operations Manager" -Source "Health Service Script" -
EventID 6661 -Message $msg -EntryType Information
if([int]$alData[1] -ge $CPUCriticalThreshold){
$msg = "Process %CPU Used : Critical : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 6662 -Message $msg -EntryType Information
$bag.AddValue('UsedCPUState',"Critical")
}
elseif([int]$alData[1] -ge $CPUWarnThreshold -AND $alData[1] -lt
$CPUCriticalThreshold){
$msg = "Process %CPU Used : Warning : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 6662 -Message $msg -EntryType Information
$bag.AddValue('UsedCPUState',"Warning")
}
elseif([int]$alData[1] -lt $CPUWarnThreshold){
$msg = "Process %CPU Used : Success : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 6662 -Message $msg -EntryType Information
$bag.AddValue('UsedCPUState',"Success")
}
else{}
if([int]$alData[3] -ge $MemCriticalThreshold){
$msg = "Process %Mem Used : Critical : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 6663 -Message $msg -EntryType Information
$bag.AddValue('UsedMemoryState',"Critical")
}
elseif([int]$alData[3] -ge $MemWarnThreshold -AND $alData[3] -lt
$MemCriticalThreshold){
$msg = "Process %Mem Used : Warning : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 6663 -Message $msg -EntryType Information
$bag.AddValue('UsedMemoryState',"Warning")
}
elseif([int]$alData[3] -lt $MemWarnThreshold){
$msg = "Process %Mem Used : Success : "+$ProcessPattern
write-eventlog -logname "Operations Manager" -Source "Health Service
Script" -EventID 6663 -Message $msg -EntryType Information
$bag.AddValue('UsedMemoryState',"Success")
}
else{}
}
}
$bag
]]></ScriptBody>
<SnapIns />
<Parameters>
<Parameter>
<Name>CmdOutput</Name>
<Value>$Data///*[local-name()="StdOut"]$</Value>
</Parameter>
<Parameter>
<Name>CollectProcessPerfData</Name>
<Value>$Config/CollectProcessPerfData$</Value>
</Parameter>
<Parameter>
<Name>RaisePerfAlert</Name>
<Value>$Config/RaisePerfAlert$</Value>
</Parameter>
<Parameter>
<Name>CPUWarnThreshold</Name>
<Value>$Config/CPUWarnThreshold$</Value>
</Parameter>
<Parameter>
<Name>CPUCriticalThreshold</Name>
<Value>$Config/CPUCriticalThreshold$</Value>
</Parameter>
<Parameter>
<Name>MemWarnThreshold</Name>
<Value>$Config/MemWarnThreshold$</Value>
</Parameter>
<Parameter>
<Name>MemCriticalThreshold</Name>
<Value>$Config/MemCriticalThreshold$</Value>
</Parameter>
<Parameter>
<Name>ProcessPattern</Name>
<Value>$Config/ProcessNamePattern$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>150</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="ProseccPerfDataAIX">
<Node ID="RunPerfRHEL" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.PropertyBagData</OutputType>
</DataSourceModuleType>
<DataSourceModuleType
ID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.RunTop.HPUX"
Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="Timeout" type="xsd:integer" />
<xsd:element minOccurs="0" name="SyncTime" type="xsd:string" />
</Configuration>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Sched" TypeID="System!System.SimpleScheduler">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<SyncTime>$Config/SyncTime$</SyncTime>
</DataSource>
<ProbeAction ID="WSMAN"
TypeID="MicrosoftUnixLibrary!Microsoft.Unix.WSMan.Invoke.ProbeAction">
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<Uri>http://schemas.microsoft.com/wbem/wscim/1/cim-
schema/2/SCX_OperatingSystem?__cimnamespace=root/scx</Uri>
<Selector />
<InvokeAction>ExecuteShellCommand</InvokeAction>
<Input><![CDATA[<p:ExecuteShellCommand_INPUT
xmlns:p="http://schemas.microsoft.com/wbem/wscim/1/cim-
schema/2/SCX_OperatingSystem"><p:command>perl -e 'use strict; use warnings; my $topOut =
q^top.out^; open(PFI,chr(62), $topOut); print PFI q^Initiate^; close(PFI); qx^top -f /ZZZZ/top.out -n
10000^;'</p:command><p:timeout>$Config/Timeout$</p:timeout></p:ExecuteShellCommand_INPUT>]
]></Input>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="WSMAN">
<Node ID="Sched" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>MicrosoftSystemCenterWSManagementLibrary!Microsoft.SystemCenter.WSManagement
.WSManData</OutputType>
</DataSourceModuleType>
<DataSourceModuleType ID="Custom.Unix.Process.Monitoring.DataSource.MonitorProcess"
Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="RaiseAlert" type="xsd:string" />
<xsd:element minOccurs="1" name="ProcessMinCount" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessMaxCount" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessNamePattern" type="xsd:string" />
</Configuration>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="RunShellCmd"
TypeID="Custom.Unix.Process.Monitoring.DataSource.RunShellCommand">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<ShellCommand>ps -ef | grep '$Config/ProcessNamePattern$' | grep -v grep | wc -l | perl -e '
use strict;
use warnings;
my $val=q^^;
eval(q^$val=^.chr(60).chr(62));
$val =~ s/\D//g;
print $val;
'</ShellCommand>
<Timeout>150</Timeout>
</DataSource>
<ProbeAction ID="PSPrb"
TypeID="Windows!Microsoft.Windows.PowerShellPropertyBagProbe">
<ScriptName>UnixProcessMonitor.ps1</ScriptName>
<ScriptBody><![CDATA[param (
$CmdOutput,
[string]$RaiseAlert,
$ProcessMinCount,
$ProcessMaxCount,
$TargetSystem
);
$api = New-Object -comObject "MOM.ScriptAPI";
$msg = $TargetSystem + ": Command Output : " + $CmdOutput
[string] $test = $CmdOutput
$msg = $msg + " |length:" + $test.length
#write-eventlog -logname "Operations Manager" -Source "Health Service Script" -EventID 7890 -
Message $msg -EntryType Information
if ($CmdOutput -ne $null -and $CmdOutput -ne ""){
if($RaiseAlert -eq "YES"){
if($CmdOutput -lt $ProcessMinCount -OR $CmdOutput -gt $ProcessMaxCount){
$msg = "Raising alert:" + $TargetSystem + " | Command Output:" + $CmdOutput
+ " | MinCount:" + $ProcessMinCount + " | MaxCount:" + $ProcessMaxCount
write-eventlog -logname "Operations Manager" -Source "Health Service Script" -
EventID 7891 -Message $msg -EntryType Information
$bag = $api.CreatePropertyBag();
$bag.AddValue('Description',$CmdOutput);
$bag;
}
else{
$msg = "NOT Raising alert:" + $TargetSystem + " | Command Output:" +
$CmdOutput + " | MinCount:" + $ProcessMinCount + " | MaxCount:" + $ProcessMaxCount
write-eventlog -logname "Operations Manager" -Source "Health Service Script" -
EventID 7892 -Message $msg -EntryType Information
$bag = $api.CreatePropertyBag();
$bag.AddValue('Description','No match');
$bag;
}
}
else{
$msg = "NOT Raising alert:" + $TargetSystem + " | Command Output:" + $CmdOutput +
" | MinCount:" + $ProcessMinCount + " | MaxCount:" + $ProcessMaxCount
write-eventlog -logname "Operations Manager" -Source "Health Service Script" -EventID
7892 -Message $msg -EntryType Information
$bag = $api.CreatePropertyBag();
$bag.AddValue('Description','No match');
$bag;
}
} else {
$msg = "NOT Raising alert:" + $TargetSystem + " | Command Output:" + $CmdOutput + " |
MinCount:" + $ProcessMinCount + " | MaxCount:" + $ProcessMaxCount
write-eventlog -logname "Operations Manager" -Source "Health Service Script" -EventID 7892 -
Message $msg -EntryType Information
$bag = $api.CreatePropertyBag();
$bag.AddValue('Description','No match');
$bag;
}
]]></ScriptBody>
<SnapIns />
<Parameters>
<Parameter>
<Name>CmdOutput</Name>
<Value>$Data///*[local-name()="StdOut"]$</Value>
</Parameter>
<Parameter>
<Name>RaiseAlert</Name>
<Value>$Config/RaiseAlert$</Value>
</Parameter>
<Parameter>
<Name>ProcessMinCount</Name>
<Value>$Config/ProcessMinCount$</Value>
</Parameter>
<Parameter>
<Name>ProcessMaxCount</Name>
<Value>$Config/ProcessMaxCount$</Value>
</Parameter>
<Parameter>
<Name>TargetSystem</Name>
<Value>$Config/TargetSystem$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>150</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="PSPrb">
<Node ID="RunShellCmd" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.PropertyBagData</OutputType>
</DataSourceModuleType>
<DataSourceModuleType ID="Custom.Unix.Process.Monitoring.DataSource.ReadConfig.AIX"
Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" />
<xsd:element minOccurs="0" name="SyncTime" type="xsd:string" />
<xsd:element minOccurs="1" name="ConfigFilePath" type="xsd:string" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
<OverrideableParameter ID="ConfigFilePath" Selector="$Config/ConfigFilePath$"
ParameterType="string" />
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="DiscoveryScheduler" TypeID="System!System.Discovery.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>$Config/Interval$</Interval>
<SyncTime>$Config/SyncTime$</SyncTime>
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ProbeAction ID="PSDisco" TypeID="Windows!Microsoft.Windows.PowerShellDiscoveryProbe">
<ScriptName>ReadProcessMonConfigAIX.ps1</ScriptName>
<ScriptBody><![CDATA[param (
[string] $ConfigFilepath,
[string] $ManagedEntityID,
[string] $SourceID
)
$api = New-Object -comObject 'Mom.ScriptAPI'
$discoveryData = $api.CreateDiscoveryData(0, $SourceID, $ManagedEntityID)
$data = ""
[array] $allServers = @()
if(Test-Path $ConfigFilepath)
{
[array] $contents = get-content $ConfigFilepath
$rms=get-itemproperty -path "HKLM:\SOFTWARE\Microsoft\Microsoft Operations
Manager\3.0\Machine Settings\" |% {$_.DefaultSDKServiceMachine}
if ((Get-PSSnapin | Where-Object {$_.Name -eq
'Microsoft.EnterpriseManagement.OperationsManager.Client'}) -eq $null) {
Add-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client -ErrorAction
SilentlyContinue -ErrorVariable Err
if ($Err) { $(throw write-Host $Err) }
}
Set-Location "OperationsManagerMonitoring::" -ErrorVariable errSnapin ;
new-managementGroupConnection -ConnectionString:$rms -ErrorVariable errSnapin ;
Set-Location $rms -ErrorVariable errSnapin ;
$contents | ForEach-Object{
[string[]] $splitstring = '","'
[StringSplitOptions]$option = "None"
[array] $data = $_.split($splitstring,$option)
$msg = "Adding instance for "+$data[3]
if($data[3] -ne "SERVER"){
#write-eventlog -logname "Operations Manager" -Source "Health Service Script"
-EventID 6002 -Message $msg -EntryType Information
if($data[3] -ne "ALL_AIX_SERVERS"){
$mo = get-monitoringclass | where {$_.name -eq
'Microsoft.AIX.Computer'} | get-monitoringobject | where
{(($_.DisplayName).toLower()).contains($data[3].toLower())}
if ($mo -ne $null) {
write-eventlog -logname "Operations Manager" -Source "Health
Service Script" -EventID 6003 -Message $mo.DisplayName -EntryType Information
$oInst =
$discoveryData.CreateClassInstance("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigD
ata']$")
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Al
ertKey$", $data[2])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Pr
ocessNamePattern$", $data[4])
$oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Pr
ocessMinCount$", $data[5])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Pr
ocessMaxCount$", $data[6])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/M
onitoringInterval$", $data[7])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Rai
seAlert$", $data[8])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Rai
sePerfAlert$", $data[9])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Co
llectProcessPerfData$", $data[10])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/CP
UWarnThreshold$", $data[11])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/CP
UCriticalThreshold$", $data[12])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/M
emoryWarnThreshold$", $data[13])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/M
emoryCriticalThreshold$", $data[14])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Pe
rfmonInterval$", $data[15])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Pr
ocessName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Ho
stname$", $mo.DisplayName)
$oInst.AddProperty("$MPElement[Name='MicrosoftUnixLibrary!Microsoft.Unix.Computer']/Prin
cipalName$", $mo.DisplayName)
$discoveryData.AddInstance($oInst)
}
}
else{
$mo = get-monitoringclass | where {$_.name -eq
'Microsoft.AIX.Computer'} | get-monitoringobject
$mo | ForEach-Object {
write-eventlog -logname "Operations Manager" -Source "Health
Service Script" -EventID 6003 -Message $_.DisplayName -EntryType Information
$oInst =
$discoveryData.CreateClassInstance("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigD
ata']$")
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Al
ertKey$", $data[2])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Pr
ocessNamePattern$", $data[4])
$oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Pr
ocessMinCount$", $data[5])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Pr
ocessMaxCount$", $data[6])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/M
onitoringInterval$", $data[7])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Rai
seAlert$", $data[8])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Rai
sePerfAlert$", $data[9])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Co
llectProcessPerfData$", $data[10])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/CP
UWarnThreshold$", $data[11])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/CP
UCriticalThreshold$", $data[12])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/M
emoryWarnThreshold$", $data[13])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/M
emoryCriticalThreshold$", $data[14])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Pe
rfmonInterval$", $data[15])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Pr
ocessName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.AIX.ConfigData']/Ho
stname$", $_.DisplayName)
$oInst.AddProperty("$MPElement[Name='MicrosoftUnixLibrary!Microsoft.Unix.Computer']/Prin
cipalName$", $_.DisplayName)
$discoveryData.AddInstance($oInst)
}
}
}
}
}
$discoveryData
Remove-variable api
Remove-variable discoveryData
]]></ScriptBody>
<Parameters>
<Parameter>
<Name>SourceID</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>ManagedEntityID</Name>
<Value>$Target/Id$</Value>
</Parameter>
<Parameter>
<Name>ConfigFilepath</Name>
<Value>$Config/ConfigFilePath$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="PSDisco">
<Node ID="DiscoveryScheduler" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>
<DataSourceModuleType ID="Custom.Unix.Process.Monitoring.DataSource.ReadConfig.HPUX"
Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" />
<xsd:element minOccurs="0" name="SyncTime" type="xsd:string" />
<xsd:element minOccurs="1" name="ConfigFilePath" type="xsd:string" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
<OverrideableParameter ID="ConfigPath" Selector="$Config/ConfigFilePath$"
ParameterType="string" />
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="DiscoSc" TypeID="System!System.Discovery.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>$Config/Interval$</Interval>
<SyncTime>$Config/SyncTime$</SyncTime>
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ProbeAction ID="PSDisco" TypeID="Windows!Microsoft.Windows.PowerShellDiscoveryProbe">
<ScriptName>ReadProcessMonConfigHPUX.ps1</ScriptName>
<ScriptBody><![CDATA[param (
[string] $ConfigFilepath,
[string] $ManagedEntityID,
[string] $SourceID
)
$api = New-Object -comObject 'Mom.ScriptAPI'
$discoveryData = $api.CreateDiscoveryData(0, $SourceID, $ManagedEntityID)
$data = ""
[array] $allServers = @()
if(Test-Path $ConfigFilepath)
{
[array] $contents = get-content $ConfigFilepath
$rms=get-itemproperty -path "HKLM:\SOFTWARE\Microsoft\Microsoft Operations
Manager\3.0\Machine Settings\" |% {$_.DefaultSDKServiceMachine}
if ((Get-PSSnapin | Where-Object {$_.Name -eq
'Microsoft.EnterpriseManagement.OperationsManager.Client'}) -eq $null) {
Add-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client -ErrorAction
SilentlyContinue -ErrorVariable Err
if ($Err) { $(throw write-Host $Err) }
}
Set-Location "OperationsManagerMonitoring::" -ErrorVariable errSnapin ;
new-managementGroupConnection -ConnectionString:$rms -ErrorVariable errSnapin ;
Set-Location $rms -ErrorVariable errSnapin ;
$contents | ForEach-Object{
[string[]] $splitstring = '","'
[StringSplitOptions]$option = "None"
[array] $data = $_.split($splitstring,$option)
$msg = "Adding instance for "+$data[3]
if($data[3] -ne "SERVER"){
#write-eventlog -logname "Operations Manager" -Source "Health Service Script"
-EventID 6002 -Message $msg -EntryType Information
if($data[3] -ne "ALL_HPUX_SERVERS"){
$mo = get-monitoringclass | where {$_.name -eq
'Microsoft.HPUX.Computer'} | get-monitoringobject | where
{(($_.DisplayName).toLower()).contains($data[3].toLower())}
if ($mo -ne $null) {
write-eventlog -logname "Operations Manager" -Source "Health
Service Script" -EventID 6003 -Message $mo.DisplayName -EntryType Information
$oInst =
$discoveryData.CreateClassInstance("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.Confi
gData']$")
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
AlertKey$", $data[2])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
ProcessNamePattern$", $data[4])
$oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
ProcessMinCount$", $data[5])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
ProcessMaxCount$", $data[6])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
MonitoringInterval$", $data[7])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
RaiseAlert$", $data[8])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
RaisePerfAlert$", $data[9])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
CollectProcessPerfData$", $data[10])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
CPUWarnThreshold$", $data[11])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
CPUCriticalThreshold$", $data[12])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
MemoryWarnThreshold$", $data[13])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
MemoryCriticalThreshold$", $data[14])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
PerfmonInterval$", $data[15])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
ProcessName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
Hostname$", $mo.DisplayName)
$oInst.AddProperty("$MPElement[Name='MicrosoftUnixLibrary!Microsoft.Unix.Computer']/Prin
cipalName$", $mo.DisplayName)
$discoveryData.AddInstance($oInst)
}
}
else{
$mo = get-monitoringclass | where {$_.name -eq
'Microsoft.HPUX.Computer'} | get-monitoringobject
$mo | ForEach-Object {
write-eventlog -logname "Operations Manager" -Source "Health
Service Script" -EventID 6003 -Message $_.DisplayName -EntryType Information
$oInst =
$discoveryData.CreateClassInstance("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.Confi
gData']$")
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
AlertKey$", $data[2])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
ProcessNamePattern$", $data[4])
$oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
ProcessMinCount$", $data[5])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
ProcessMaxCount$", $data[6])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
MonitoringInterval$", $data[7])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
RaiseAlert$", $data[8])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
RaisePerfAlert$", $data[9])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
CollectProcessPerfData$", $data[10])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
CPUWarnThreshold$", $data[11])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
CPUCriticalThreshold$", $data[12])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
MemoryWarnThreshold$", $data[13])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
MemoryCriticalThreshold$", $data[14])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
PerfmonInterval$", $data[15])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
ProcessName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.HPUX.ConfigData']/
Hostname$", $_.DisplayName)
$oInst.AddProperty("$MPElement[Name='MicrosoftUnixLibrary!Microsoft.Unix.Computer']/Prin
cipalName$", $_.DisplayName)
$discoveryData.AddInstance($oInst)
}
}
}
}
}
$discoveryData
Remove-variable api
Remove-variable discoveryData
]]></ScriptBody>
<Parameters>
<Parameter>
<Name>SourceID</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>ManagedEntityID</Name>
<Value>$Target/Id$</Value>
</Parameter>
<Parameter>
<Name>ConfigFilepath</Name>
<Value>$Config/ConfigFilePath$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="PSDisco">
<Node ID="DiscoSc" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>
<DataSourceModuleType ID="Custom.Unix.Process.Monitoring.DataSource.ReadConfig.RHEL"
Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" />
<xsd:element minOccurs="0" name="SyncTime" type="xsd:string" />
<xsd:element minOccurs="1" name="ConfigFilePath" type="xsd:string" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
<OverrideableParameter ID="ConfigPath" Selector="$Config/ConfigFilePath$"
ParameterType="string" />
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="DSchedl" TypeID="System!System.Discovery.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>$Config/Interval$</Interval>
<SyncTime>$Config/SyncTime$</SyncTime>
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ProbeAction ID="PSDic" TypeID="Windows!Microsoft.Windows.PowerShellDiscoveryProbe">
<ScriptName>ReadProcMonConfigRHEL.ps1</ScriptName>
<ScriptBody><![CDATA[param (
[string] $ConfigFilepath,
[string] $ManagedEntityID,
[string] $SourceID
)
$api = New-Object -comObject 'Mom.ScriptAPI'
$discoveryData = $api.CreateDiscoveryData(0, $SourceID, $ManagedEntityID)
$data = ""
[array] $allServers = @()
if(Test-Path $ConfigFilepath)
{
[array] $contents = get-content $ConfigFilepath
$rms=get-itemproperty -path "HKLM:\SOFTWARE\Microsoft\Microsoft Operations
Manager\3.0\Machine Settings\" |% {$_.DefaultSDKServiceMachine}
if ((Get-PSSnapin | Where-Object {$_.Name -eq
'Microsoft.EnterpriseManagement.OperationsManager.Client'}) -eq $null) {
Add-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client -ErrorAction
SilentlyContinue -ErrorVariable Err
if ($Err) { $(throw write-Host $Err) }
}
Set-Location "OperationsManagerMonitoring::" -ErrorVariable errSnapin ;
new-managementGroupConnection -ConnectionString:$rms -ErrorVariable errSnapin ;
Set-Location $rms -ErrorVariable errSnapin ;
$contents | ForEach-Object{
[string[]] $splitstring = '","'
[StringSplitOptions]$option = "None"
[array] $data = $_.split($splitstring,$option)
$msg = "Adding instance for "+$data[3]
if($data[3] -ne "SERVER"){
#write-eventlog -logname "Operations Manager" -Source "Health Service Script"
-EventID 6002 -Message $msg -EntryType Information
if($data[3] -ne "ALL_LINUX_SERVERS"){
$mo = get-monitoringclass | where {$_.name -eq
'Microsoft.Linux.Computer'} | get-monitoringobject | where
{(($_.DisplayName).toLower()).contains($data[3].toLower())}
if ($mo -ne $null) {
write-eventlog -logname "Operations Manager" -Source "Health
Service Script" -EventID 6003 -Message $mo.DisplayName -EntryType Information
$oInst =
$discoveryData.CreateClassInstance("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.Confi
gData']$")
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
AlertKey$", $data[2])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/P
rocessNamePattern$", $data[4])
$oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/P
rocessMinCount$", $data[5])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/P
rocessMaxCount$", $data[6])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
MonitoringInterval$", $data[7])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
RaiseAlert$", $data[8])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
RaisePerfAlert$", $data[9])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/C
ollectProcessPerfData$", $data[10])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/C
PUWarnThreshold$", $data[11])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/C
PUCriticalThreshold$", $data[12])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
MemoryWarnThreshold$", $data[13])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
MemoryCriticalThreshold$", $data[14])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/P
erfmonInterval$", $data[15])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/P
rocessName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
Hostname$", $mo.DisplayName)
$oInst.AddProperty("$MPElement[Name='MicrosoftUnixLibrary!Microsoft.Unix.Computer']/Prin
cipalName$", $mo.DisplayName)
$discoveryData.AddInstance($oInst)
}
}
else{
$mo = get-monitoringclass | where {$_.name -eq
'Microsoft.Linux.Computer'} | get-monitoringobject
$mo | ForEach-Object {
write-eventlog -logname "Operations Manager" -Source "Health
Service Script" -EventID 6003 -Message $_.DisplayName -EntryType Information
$oInst =
$discoveryData.CreateClassInstance("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.Confi
gData']$")
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
AlertKey$", $data[2])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/P
rocessNamePattern$", $data[4])
$oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/P
rocessMinCount$", $data[5])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/P
rocessMaxCount$", $data[6])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
MonitoringInterval$", $data[7])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
RaiseAlert$", $data[8])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
RaisePerfAlert$", $data[9])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/C
ollectProcessPerfData$", $data[10])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/C
PUWarnThreshold$", $data[11])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/C
PUCriticalThreshold$", $data[12])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
MemoryWarnThreshold$", $data[13])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
MemoryCriticalThreshold$", $data[14])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/P
erfmonInterval$", $data[15])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/P
rocessName$", $data[16])
$oInst.AddProperty("$MPElement[Name='Custom.Unix.Process.Monitoring.RHEL.ConfigData']/
Hostname$", $_.DisplayName)
$oInst.AddProperty("$MPElement[Name='MicrosoftUnixLibrary!Microsoft.Unix.Computer']/Prin
cipalName$", $_.DisplayName)
$discoveryData.AddInstance($oInst)
}
}
}
}
}
$discoveryData
Remove-variable api
Remove-variable discoveryData
]]></ScriptBody>
<Parameters>
<Parameter>
<Name>SourceID</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>ManagedEntityID</Name>
<Value>$Target/Id$</Value>
</Parameter>
<Parameter>
<Name>ConfigFilepath</Name>
<Value>$Config/ConfigFilePath$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="PSDic">
<Node ID="DSchedl" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>
<DataSourceModuleType ID="Custom.Unix.Process.Monitoring.DataSource.RunShellCommand"
Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="0" name="SyncTime" type="xsd:string" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="ShellCommand" type="xsd:string" />
<xsd:element minOccurs="1" name="Timeout" type="xsd:string" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/IntervalSeconds$" ParameterType="int"
/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Sched" TypeID="System!System.SimpleScheduler">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<SyncTime>$Config/SyncTime$</SyncTime>
</DataSource>
<ProbeAction ID="WSMAN"
TypeID="MicrosoftUnixLibrary!Microsoft.Unix.WSMan.Invoke.ProbeAction">
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<Uri>http://schemas.microsoft.com/wbem/wscim/1/cim-
schema/2/SCX_OperatingSystem?__cimnamespace=root/scx</Uri>
<Selector />
<InvokeAction>ExecuteShellCommand</InvokeAction>
<Input><![CDATA[<p:ExecuteShellCommand_INPUT
xmlns:p="http://schemas.microsoft.com/wbem/wscim/1/cim-
schema/2/SCX_OperatingSystem"><p:command>$Config/ShellCommand$</p:command><p:timeout>$
Config/Timeout$</p:timeout></p:ExecuteShellCommand_INPUT>]]></Input>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="WSMAN">
<Node ID="Sched" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>MicrosoftSystemCenterWSManagementLibrary!Microsoft.SystemCenter.WSManagement
.WSManData</OutputType>
</DataSourceModuleType>
</ModuleTypes>
<MonitorTypes>
<UnitMonitorType ID="Custom.Unix.Process.Monitoring.ProcMon.MonitorType"
Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="ERROR" NoDetection="false" />
<MonitorTypeState ID="SUCCESS" NoDetection="false" />
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="RaiseAlert" type="xsd:string" />
<xsd:element minOccurs="1" name="ProcessMinCount" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessMaxCount" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessNamePattern" type="xsd:string" />
</Configuration>
<MonitorImplementation>
<MemberModules>
<DataSource ID="ProcMon"
TypeID="Custom.Unix.Process.Monitoring.DataSource.MonitorProcess">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<RaiseAlert>$Config/RaiseAlert$</RaiseAlert>
<ProcessMinCount>$Config/ProcessMinCount$</ProcessMinCount>
<ProcessMaxCount>$Config/ProcessMaxCount$</ProcessMaxCount>
<ProcessNamePattern>$Config/ProcessNamePattern$</ProcessNamePattern>
</DataSource>
<ConditionDetection ID="CriticalFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='Description']</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value>No match</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="HealthyFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='Description']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">No match</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="ERROR">
<Node ID="CriticalFilter">
<Node ID="ProcMon" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="SUCCESS">
<Node ID="HealthyFilter">
<Node ID="ProcMon" />
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>
<UnitMonitorType ID="Custom.Unix.Process.Monitoring.ProcPerfMon.AIX.CPU.MonitorType"
Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="Critical" NoDetection="false" />
<MonitorTypeState ID="Warning" NoDetection="false" />
<MonitorTypeState ID="Success" NoDetection="false" />
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="Timeout" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessNamePattern" type="xsd:string" />
<xsd:element minOccurs="1" name="CollectProcessPerfData" type="xsd:string" />
<xsd:element minOccurs="1" name="RaisePerfAlert" type="xsd:string" />
<xsd:element minOccurs="1" name="CPUWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="CPUCriticalThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemCriticalThreshold" type="xsd:integer" />
</Configuration>
<MonitorImplementation>
<MemberModules>
<DataSource ID="Ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.AIX">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<Timeout>$Config/Timeout$</Timeout>
<ProcessNamePattern>$Config/ProcessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Config/CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Config/RaisePerfAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Config/CPUWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Config/CPUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Config/MemWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Config/MemCriticalThreshold$</MemCriticalThreshold>
</DataSource>
<ConditionDetection ID="CriticalFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedCPUState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Critical</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="WarningFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedCPUState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Warning</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="SuccessFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedCPUState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="Critical">
<Node ID="CriticalFilter">
<Node ID="Ds" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Warning">
<Node ID="WarningFilter">
<Node ID="Ds" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Success">
<Node ID="SuccessFilter">
<Node ID="Ds" />
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>
<UnitMonitorType ID="Custom.Unix.Process.Monitoring.ProcPerfMon.AIX.Mem.MonitorType"
Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="Critical" NoDetection="false" />
<MonitorTypeState ID="Warning" NoDetection="false" />
<MonitorTypeState ID="Success" NoDetection="false" />
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="Timeout" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessNamePattern" type="xsd:string" />
<xsd:element minOccurs="1" name="CollectProcessPerfData" type="xsd:string" />
<xsd:element minOccurs="1" name="RaisePerfAlert" type="xsd:string" />
<xsd:element minOccurs="1" name="CPUWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="CPUCriticalThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemCriticalThreshold" type="xsd:integer" />
</Configuration>
<MonitorImplementation>
<MemberModules>
<DataSource ID="ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.AIX">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<Timeout>$Config/Timeout$</Timeout>
<ProcessNamePattern>$Config/ProcessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Config/CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Config/RaisePerfAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Config/CPUWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Config/CPUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Config/MemWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Config/MemCriticalThreshold$</MemCriticalThreshold>
</DataSource>
<ConditionDetection ID="CriticalFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedMemoryState']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Critical</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="WarningFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedMemoryState']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Warning</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="SuccessFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedMemoryState']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="Critical">
<Node ID="CriticalFilter">
<Node ID="ds" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Warning">
<Node ID="WarningFilter">
<Node ID="ds" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Success">
<Node ID="SuccessFilter">
<Node ID="ds" />
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>
<UnitMonitorType ID="Custom.Unix.Process.Monitoring.ProcPerfMon.HPUX.CPU.MonitorType"
Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="Critical" NoDetection="false" />
<MonitorTypeState ID="Warning" NoDetection="false" />
<MonitorTypeState ID="Success" NoDetection="false" />
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="Timeout" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessNamePattern" type="xsd:string" />
<xsd:element minOccurs="1" name="CollectProcessPerfData" type="xsd:string" />
<xsd:element minOccurs="1" name="RaisePerfAlert" type="xsd:string" />
<xsd:element minOccurs="1" name="CPUWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="CPUCriticalThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemCriticalThreshold" type="xsd:integer" />
</Configuration>
<MonitorImplementation>
<MemberModules>
<DataSource ID="ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.HPUX">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<Timeout>$Config/Timeout$</Timeout>
<ProcessNamePattern>$Config/ProcessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Config/CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Config/RaisePerfAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Config/CPUWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Config/CPUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Config/MemWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Config/MemCriticalThreshold$</MemCriticalThreshold>
</DataSource>
<ConditionDetection ID="CriticalFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedCPUState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Critical</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="WarningFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedCPUState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Warning</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="SuccessFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedCPUState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="Critical">
<Node ID="CriticalFilter">
<Node ID="ds" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Warning">
<Node ID="WarningFilter">
<Node ID="ds" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Success">
<Node ID="SuccessFilter">
<Node ID="ds" />
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>
<UnitMonitorType ID="Custom.Unix.Process.Monitoring.ProcPerfMon.HPUX.Mem.MonitorType"
Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="Critical" NoDetection="false" />
<MonitorTypeState ID="Warning" NoDetection="false" />
<MonitorTypeState ID="Success" NoDetection="false" />
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="Timeout" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessNamePattern" type="xsd:string" />
<xsd:element minOccurs="1" name="CollectProcessPerfData" type="xsd:string" />
<xsd:element minOccurs="1" name="RaisePerfAlert" type="xsd:string" />
<xsd:element minOccurs="1" name="CPUWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="CPUCriticalThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemCriticalThreshold" type="xsd:integer" />
</Configuration>
<MonitorImplementation>
<MemberModules>
<DataSource ID="ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.HPUX">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<Timeout>$Config/Timeout$</Timeout>
<ProcessNamePattern>$Config/ProcessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Config/CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Config/RaisePerfAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Config/CPUWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Config/CPUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Config/MemWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Config/MemCriticalThreshold$</MemCriticalThreshold>
</DataSource>
<ConditionDetection ID="CriticalFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedMemoryState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Critical</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="WarningFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedMemoryState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Warning</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="SuccessFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedMemoryState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="Critical">
<Node ID="CriticalFilter">
<Node ID="ds" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Warning">
<Node ID="WarningFilter">
<Node ID="ds" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Success">
<Node ID="SuccessFilter">
<Node ID="ds" />
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>
<UnitMonitorType ID="Custom.Unix.Process.Monitoring.ProcPerfMon.RHEL.CPU.MonitorType"
Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="Critical" NoDetection="false" />
<MonitorTypeState ID="Warning" NoDetection="false" />
<MonitorTypeState ID="Success" NoDetection="false" />
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="Timeout" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessNamePattern" type="xsd:string" />
<xsd:element minOccurs="1" name="CollectProcessPerfData" type="xsd:string" />
<xsd:element minOccurs="1" name="RaisePerfAlert" type="xsd:string" />
<xsd:element minOccurs="1" name="CPUWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="CPUCriticalThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemCriticalThreshold" type="xsd:integer" />
</Configuration>
<MonitorImplementation>
<MemberModules>
<DataSource ID="DS"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.RHEL">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<Timeout>$Config/Timeout$</Timeout>
<ProcessNamePattern>$Config/ProcessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Config/CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Config/RaisePerfAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Config/CPUWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Config/CPUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Config/MemWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Config/MemCriticalThreshold$</MemCriticalThreshold>
</DataSource>
<ConditionDetection ID="CriticalFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedCPUState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Critical</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="WarningFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedCPUState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Warning</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="SuccessFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedCPUState'] </XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="Critical">
<Node ID="CriticalFilter">
<Node ID="DS" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Warning">
<Node ID="WarningFilter">
<Node ID="DS" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Success">
<Node ID="SuccessFilter">
<Node ID="DS" />
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>
<UnitMonitorType ID="Custom.Unix.Process.Monitoring.ProcPerfMon.RHEL.Mem.MonitorType"
Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="Critical" NoDetection="false" />
<MonitorTypeState ID="Warning" NoDetection="false" />
<MonitorTypeState ID="Success" NoDetection="false" />
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" />
<xsd:element minOccurs="1" name="TargetSystem" type="xsd:string" />
<xsd:element minOccurs="1" name="Timeout" type="xsd:integer" />
<xsd:element minOccurs="1" name="ProcessNamePattern" type="xsd:string" />
<xsd:element minOccurs="1" name="CollectProcessPerfData" type="xsd:string" />
<xsd:element minOccurs="1" name="RaisePerfAlert" type="xsd:string" />
<xsd:element minOccurs="1" name="CPUWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="CPUCriticalThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemWarnThreshold" type="xsd:integer" />
<xsd:element minOccurs="1" name="MemCriticalThreshold" type="xsd:integer" />
</Configuration>
<MonitorImplementation>
<MemberModules>
<DataSource ID="ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.RHEL">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<TargetSystem>$Config/TargetSystem$</TargetSystem>
<Timeout>$Config/Timeout$</Timeout>
<ProcessNamePattern>$Config/ProcessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Config/CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Config/RaisePerfAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Config/CPUWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Config/CPUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Config/MemWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Config/MemCriticalThreshold$</MemCriticalThreshold>
</DataSource>
<ConditionDetection ID="CriticalExpr" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedMemoryState']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Critical</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="WarningExpr" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedMemoryState']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Warning</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="SuccessExpr" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='UsedMemoryState']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="Critical">
<Node ID="CriticalExpr">
<Node ID="ds" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Warning">
<Node ID="WarningExpr">
<Node ID="ds" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="Success">
<Node ID="SuccessExpr">
<Node ID="ds" />
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>
</MonitorTypes>
</TypeDefinitions>
<Monitoring>
<Discoveries>
<Discovery ID="Custom.Unix.Process.Monitoring.Discovery.ReadConfigFile.AIX" Enabled="false"
Target="SC!Microsoft.SystemCenter.ManagementServer" ConfirmDelivery="true" Remotable="true"
Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Custom.Unix.Process.Monitoring.AIX.ConfigData" />
</DiscoveryTypes>
<DataSource ID="DSAIX" TypeID="Custom.Unix.Process.Monitoring.DataSource.ReadConfig.AIX">
<Interval>600</Interval>
<ConfigFilePath>\\xxxx\Unix_Process_Monitoring_Config.csv</ConfigFilePath>
</DataSource>
</Discovery>
<Discovery ID="Custom.Unix.Process.Monitoring.Discovery.ReadConfigFile.HPUX" Enabled="false"
Target="SC!Microsoft.SystemCenter.ManagementServer" ConfirmDelivery="true" Remotable="true"
Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Custom.Unix.Process.Monitoring.HPUX.ConfigData" />
</DiscoveryTypes>
<DataSource ID="MDHPUX"
TypeID="Custom.Unix.Process.Monitoring.DataSource.ReadConfig.HPUX">
<Interval>600</Interval>
<ConfigFilePath>\\xxxx\Unix_Process_Monitoring_Config.csv</ConfigFilePath>
</DataSource>
</Discovery>
<Discovery ID="Custom.Unix.Process.Monitoring.Discovery.ReadConfigFile.RHEL" Enabled="false"
Target="SC!Microsoft.SystemCenter.ManagementServer" ConfirmDelivery="true" Remotable="true"
Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Custom.Unix.Process.Monitoring.RHEL.ConfigData" />
</DiscoveryTypes>
<DataSource ID="MDRHEL"
TypeID="Custom.Unix.Process.Monitoring.DataSource.ReadConfig.RHEL">
<Interval>600</Interval>
<ConfigFilePath>\\xxxx\Unix_Process_Monitoring_Config_2.csv</ConfigFilePath>
</DataSource>
</Discovery>
</Discoveries>
<Rules>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.AvgCPUUsed.AIX" Enabled="true"
Target="Custom.Unix.Process.Monitoring.AIX.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.AIX">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/PerfmonI
nterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Proc
essNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/C
ollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/RaisePerfAl
ert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
CriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="map"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>CPU</ObjectName>
<CounterName><![CDATA[Avg %CPU Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Avg_CPU_Used_AIX']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="W2DB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="W2DW"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.AvgCPUUsed.HPUX" Enabled="true"
Target="Custom.Unix.Process.Monitoring.HPUX.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="DS"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.HPUX">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/RaisePer
fAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/CP
UWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/C
PUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="mapper"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>CPU</ObjectName>
<CounterName><![CDATA[Avg %CPU Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Avg_CPU_Used_HPUX']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="w2db" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="w2dw"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.AvgCPUUsed.RHEL" Enabled="true"
Target="Custom.Unix.Process.Monitoring.RHEL.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="perfRHEL"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.RHEL">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/RaisePerf
Alert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CP
UCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="perfdatamapper"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>CPU</ObjectName>
<CounterName><![CDATA[Avg %CPU Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Avg_CPU_Used_Linux']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Write2DB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="Write2DW"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.AvgMemUsed.AIX" Enabled="true"
Target="Custom.Unix.Process.Monitoring.AIX.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="DS"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.AIX">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/PerfmonI
nterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Proc
essNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/C
ollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/RaisePerfAl
ert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
CriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="map"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>Memory</ObjectName>
<CounterName><![CDATA[Avg %Memory Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Avg_Memory_Used_AIX']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="w2db" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="w2dw"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.AvgMemUsed.HPUX" Enabled="true"
Target="Custom.Unix.Process.Monitoring.HPUX.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.HPUX">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/RaisePer
fAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/CP
UWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/C
PUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="map"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>Memory</ObjectName>
<CounterName><![CDATA[Avg %Memory Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Avg_Memory_Used_HPUX']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="w2db" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="w2dw"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.AvgMemUsed.RHEL" Enabled="true"
Target="Custom.Unix.Process.Monitoring.RHEL.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="dsperf"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.RHEL">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/RaisePerf
Alert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CP
UCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="mapper"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>Memory</ObjectName>
<CounterName><![CDATA[Avg %Memory Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Avg_Memory_Used_Linux']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Write2DB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="Write2DW"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.MaxCPUUsed.AIX" Enabled="true"
Target="Custom.Unix.Process.Monitoring.AIX.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.AIX">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/PerfmonI
nterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Proc
essNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/C
ollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/RaisePerfAl
ert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
CriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="map"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>CPU</ObjectName>
<CounterName><![CDATA[Max %CPU Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Max_CPU_Used_AIX']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="w2db" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="w2dw"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.MaxCPUUsed.HPUX" Enabled="true"
Target="Custom.Unix.Process.Monitoring.HPUX.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.HPUX">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/RaisePer
fAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/CP
UWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/C
PUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="mapper"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>CPU</ObjectName>
<CounterName><![CDATA[Max %CPU Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Max_CPU_Used_HPUX']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="w2db" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="w2dw"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.MaxCPUUsed.RHEL" Enabled="true"
Target="Custom.Unix.Process.Monitoring.RHEL.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="perfds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.RHEL">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/RaisePerf
Alert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CP
UCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="map"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>CPU</ObjectName>
<CounterName><![CDATA[Max %CPU Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Max_CPU_Used_Linux']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Wirte2DB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="Write2DW"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.MaxMemUsed.AIX" Enabled="true"
Target="Custom.Unix.Process.Monitoring.AIX.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.AIX">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/PerfmonI
nterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Proc
essNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/C
ollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/RaisePerfAl
ert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
CriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="mp"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>Memory</ObjectName>
<CounterName><![CDATA[Max %Memory Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Max_Memory_Used_AIX']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="w2db" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="w2dw"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.MaxMemUsed.HPUX" Enabled="true"
Target="Custom.Unix.Process.Monitoring.HPUX.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.HPUX">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/RaisePer
fAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/CP
UWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/C
PUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="Map"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>Memory</ObjectName>
<CounterName><![CDATA[Max %Memory Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Max_Memory_Used_HPUX']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="w2db" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="w2dw"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.MaxMemUsed.RHEL" Enabled="true"
Target="Custom.Unix.Process.Monitoring.RHEL.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="ds"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.RHEL">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/RaisePerf
Alert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CP
UCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</DataSource>
</DataSources>
<ConditionDetection ID="map"
TypeID="SystemPerformanceLibrary!System.Performance.DataGenericMapper">
<ObjectName>Memory</ObjectName>
<CounterName><![CDATA[Max %Memory Used]]></CounterName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
<Value>$Data/Property[@Name='Max_Memory_Used_Linux']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Write2DB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" />
<WriteAction ID="Write2DW"
TypeID="MicrosoftSystemCenterDataWarehouseLibrary!Microsoft.SystemCenter.DataWarehouse.Publis
hPerformanceData" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.PerfMon.RunTOP.HPUX" Enabled="true"
Target="Custom.Unix.Process.Monitoring.HPUX.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="RunTOPDS"
TypeID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.RunTop.HPUX">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
</DataSource>
</DataSources>
<ConditionDetection ID="eventMapper" TypeID="System!System.Event.GenericDataMapper">
<EventOriginId>$Target/Id$</EventOriginId>
<PublisherId>$MPElement$</PublisherId>
<PublisherName>SCOM</PublisherName>
<Channel>SCOM</Channel>
<LoggingComputer>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Pri
ncipalName$</LoggingComputer>
<EventNumber>0</EventNumber>
<EventCategory>0</EventCategory>
<EventLevel>0</EventLevel>
<UserName />
<Params>
<Param>$Target/Property[Type="System!System.Entity"]/DisplayName$</Param>
</Params>
</ConditionDetection>
<WriteActions>
<WriteAction ID="LogEvent" TypeID="SC!Microsoft.SystemCenter.CollectEvent" />
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.ProcessMon.AIX" Enabled="false"
Target="Custom.Unix.Process.Monitoring.AIX.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="AIXDS" TypeID="Custom.Unix.Process.Monitoring.DataSource.MonitorProcess">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Monitori
ngInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<RaiseAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/RaiseAlert$</R
aiseAlert>
<ProcessMinCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
MinCount$</ProcessMinCount>
<ProcessMaxCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
MaxCount$</ProcessMaxCount>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Proc
essNamePattern$</ProcessNamePattern>
</DataSource>
</DataSources>
<ConditionDetection ID="filter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='Description']</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value>No match</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="AIXAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="AlertMessageID7000d72b32364140b1883fc16ada2fbe"]$</Alert
MessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/AlertKey
$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
Name$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
MinCount$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
MaxCount$</AlertParameter4>
</AlertParameters>
<Suppression>
<SuppressionValue>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Hostna
me$$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/AlertKey$$Target/Prop
erty[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/ProcessName$$Target/Property[Type="C
ustom.Unix.Process.Monitoring.AIX.ConfigData"]/ProcessNamePattern$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.ProcessMon.HPUX" Enabled="false"
Target="Custom.Unix.Process.Monitoring.HPUX.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="ProcMonHPUX"
TypeID="Custom.Unix.Process.Monitoring.DataSource.MonitorProcess">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Monito
ringInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<RaiseAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/RaiseAlert$<
/RaiseAlert>
<ProcessMinCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proce
ssMinCount$</ProcessMinCount>
<ProcessMaxCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proc
essMaxCount$</ProcessMaxCount>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
</DataSource>
</DataSources>
<ConditionDetection ID="fltr" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='Description']</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value>No match</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="AlertMessageID50dafac6df9941c5aaf6c586c9beedef"]$</Alert
MessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/AlertK
ey$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proces
sName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proces
sMinCount$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proces
sMaxCount$</AlertParameter4>
</AlertParameters>
<Suppression>
<SuppressionValue>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Host
name$$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/AlertKey$$Target/
Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/ProcessName$$Target/Property[T
ype="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/ProcessNamePattern$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>
<Rule ID="Custom.Unix.Process.Monitoring.ProcessMon.RHEL" Enabled="false"
Target="Custom.Unix.Process.Monitoring.RHEL.ConfigData" ConfirmDelivery="true" Remotable="true"
Priority="Normal" DiscardLevel="100">
<Category>Custom</Category>
<DataSources>
<DataSource ID="rhelid" TypeID="Custom.Unix.Process.Monitoring.DataSource.MonitorProcess">
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Monito
ringInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<RaiseAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/RaiseAlert$</
RaiseAlert>
<ProcessMinCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proce
ssMinCount$</ProcessMinCount>
<ProcessMaxCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proce
ssMaxCount$</ProcessMaxCount>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
</DataSource>
</DataSources>
<ConditionDetection ID="filter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Property[@Name='Description']</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value>No match</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="alertrhel" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="AlertMessageID841bbd7451644957be8087eb9d2c11f2"]$</Aler
tMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/AlertK
ey$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proces
sName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proces
sMinCount$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proces
sMaxCount$</AlertParameter4>
</AlertParameters>
<Suppression>
<SuppressionValue>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Hostn
ame$$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/AlertKey$$Target/Pr
operty[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/ProcessName$$Target/Property[Typ
e="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/ProcessNamePattern$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>
</Rules>
<Monitors>
<UnitMonitor ID="Custom.Unix.Process.Monitoring.ProcMonitor.AIX" Accessibility="Internal"
Enabled="true" Target="Custom.Unix.Process.Monitoring.AIX.ConfigData"
ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal"
TypeID="Custom.Unix.Process.Monitoring.ProcMon.MonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings
AlertMessage="Custom.Unix.Process.Monitoring.ProcMonitor.AIX_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/AlertKey
$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
Name$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
MinCount$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
MaxCount$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId374f97e9f5fa42248968a096f847151c"
MonitorTypeStateID="ERROR" HealthState="Error" />
<OperationalState ID="UIGeneratedOpStateId0f79b74595f04294a95d1aa9f685b106"
MonitorTypeStateID="SUCCESS" HealthState="Success" />
</OperationalStates>
<Configuration>
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Monitori
ngInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<RaiseAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/RaiseAlert$</R
aiseAlert>
<ProcessMinCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
MinCount$</ProcessMinCount>
<ProcessMaxCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
MaxCount$</ProcessMaxCount>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Proc
essNamePattern$</ProcessNamePattern>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="Custom.Unix.Process.Monitoring.ProcMonitor.HPUX" Accessibility="Internal"
Enabled="true" Target="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal"
TypeID="Custom.Unix.Process.Monitoring.ProcMon.MonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings
AlertMessage="Custom.Unix.Process.Monitoring.ProcMonitor.HPUX_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/AlertK
ey$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proces
sName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proces
sMinCount$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proces
sMaxCount$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateIdbb891a748bba4f7889418796591ce1d8"
MonitorTypeStateID="ERROR" HealthState="Error" />
<OperationalState ID="UIGeneratedOpStateId3c317a9b55a64521825089f57255c74b"
MonitorTypeStateID="SUCCESS" HealthState="Success" />
</OperationalStates>
<Configuration>
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Monito
ringInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<RaiseAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/RaiseAlert$<
/RaiseAlert>
<ProcessMinCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proce
ssMinCount$</ProcessMinCount>
<ProcessMaxCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proc
essMaxCount$</ProcessMaxCount>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="Custom.Unix.Process.Monitoring.ProcMonitor.RHEL" Accessibility="Internal"
Enabled="true" Target="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal"
TypeID="Custom.Unix.Process.Monitoring.ProcMon.MonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings
AlertMessage="Custom.Unix.Process.Monitoring.ProcMonitor.RHEL_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/AlertK
ey$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proces
sName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proces
sMinCount$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proces
sMaxCount$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId329f4badc22a46f8b7c0e0dc2ca43c31"
MonitorTypeStateID="ERROR" HealthState="Error" />
<OperationalState ID="UIGeneratedOpStateIdb06f10c9404e4912835eaa27492e8ea3"
MonitorTypeStateID="SUCCESS" HealthState="Success" />
</OperationalStates>
<Configuration>
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Monito
ringInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<RaiseAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/RaiseAlert$</
RaiseAlert>
<ProcessMinCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proce
ssMinCount$</ProcessMinCount>
<ProcessMaxCount>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proce
ssMaxCount$</ProcessMaxCount>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.AIX" Accessibility="Internal"
Enabled="true" Target="Custom.Unix.Process.Monitoring.AIX.ConfigData"
ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal"
TypeID="Custom.Unix.Process.Monitoring.ProcPerfMon.AIX.CPU.MonitorType"
ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings
AlertMessage="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.AIX_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/AlertKey
$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
Name$</AlertParameter2>
<AlertParameter3>$Data/Property[@Name='Max_CPU_Used_AIX']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateIdb23bbf4f4d034504a737eeed56b9314d"
MonitorTypeStateID="Critical" HealthState="Error" />
<OperationalState ID="UIGeneratedOpStateIdc0d3582fb2254a9cbe3788016194b297"
MonitorTypeStateID="Warning" HealthState="Warning" />
<OperationalState ID="UIGeneratedOpStateIda13eed3f77fd4b9a8d3aa22dd6051633"
MonitorTypeStateID="Success" HealthState="Success" />
</OperationalStates>
<Configuration>
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/PerfmonI
nterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Proc
essNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/C
ollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/RaisePerfAl
ert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
CriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryCriticalThreshold$</MemCriticalThreshold>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.HPUX" Accessibility="Internal"
Enabled="true" Target="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal"
TypeID="Custom.Unix.Process.Monitoring.ProcPerfMon.HPUX.CPU.MonitorType"
ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings
AlertMessage="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.HPUX_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/AlertK
ey$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proces
sName$</AlertParameter2>
<AlertParameter3>$Data/Property[@Name='Max_CPU_Used_HPUX']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateIdcec6a19a0c0742a48f92196eec11fe51"
MonitorTypeStateID="Critical" HealthState="Error" />
<OperationalState ID="UIGeneratedOpStateId45e3693711284adbb2b7e02ee53ed0a6"
MonitorTypeStateID="Warning" HealthState="Warning" />
<OperationalState ID="UIGeneratedOpStateId3a5933bd3cf348249067a36cba8ecaca"
MonitorTypeStateID="Success" HealthState="Success" />
</OperationalStates>
<Configuration>
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/RaisePer
fAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/CP
UWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/C
PUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.RHEL" Accessibility="Internal"
Enabled="true" Target="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal"
TypeID="Custom.Unix.Process.Monitoring.ProcPerfMon.RHEL.CPU.MonitorType"
ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings
AlertMessage="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.RHEL_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/AlertK
ey$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proces
sName$</AlertParameter2>
<AlertParameter3>$Data/Property[@Name='Max_CPU_Used_Linux']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId5f1ba05631714f00846087bb046775a4"
MonitorTypeStateID="Critical" HealthState="Error" />
<OperationalState ID="UIGeneratedOpStateId1478081235744cb593c9d6b8f12636ea"
MonitorTypeStateID="Warning" HealthState="Warning" />
<OperationalState ID="UIGeneratedOpStateIda24d5f597dda4fd889ca40633e6c9283"
MonitorTypeStateID="Success" HealthState="Success" />
</OperationalStates>
<Configuration>
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/RaisePerf
Alert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CP
UCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.AIX" Accessibility="Internal"
Enabled="true" Target="Custom.Unix.Process.Monitoring.AIX.ConfigData"
ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal"
TypeID="Custom.Unix.Process.Monitoring.ProcPerfMon.AIX.Mem.MonitorType"
ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings
AlertMessage="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.AIX_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/AlertKey
$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Process
Name$</AlertParameter2>
<AlertParameter3>$Data/Property[@Name='Max_CPU_Used_AIX']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId466a0c97af40466da49c36b613416c4e"
MonitorTypeStateID="Critical" HealthState="Error" />
<OperationalState ID="UIGeneratedOpStateId3386c49a267644eab5e4ccc2d717cd4f"
MonitorTypeStateID="Warning" HealthState="Warning" />
<OperationalState ID="UIGeneratedOpStateId75ed0879969b44fd957efe3843db1b71"
MonitorTypeStateID="Success" HealthState="Success" />
</OperationalStates>
<Configuration>
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/PerfmonI
nterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Proc
essNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/C
ollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/RaisePerfAl
ert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/CPU
CriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.AIX.ConfigData"]/Me
moryCriticalThreshold$</MemCriticalThreshold>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.HPUX"
Accessibility="Internal" Enabled="true" Target="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal"
TypeID="Custom.Unix.Process.Monitoring.ProcPerfMon.HPUX.Mem.MonitorType"
ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings
AlertMessage="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.HPUX_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/AlertK
ey$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Proces
sName$</AlertParameter2>
<AlertParameter3>$Data/Property[@Name='Max_Memory_Used_HPUX']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateIdeb42630f31a54e9f897f964f1f97325c"
MonitorTypeStateID="Critical" HealthState="Error" />
<OperationalState ID="UIGeneratedOpStateId3a8a893c0e664559850c570551c19a37"
MonitorTypeStateID="Warning" HealthState="Warning" />
<OperationalState ID="UIGeneratedOpStateId2a7ec86dc5c24e0b8d3e7d0032af688d"
MonitorTypeStateID="Success" HealthState="Success" />
</OperationalStates>
<Configuration>
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/RaisePer
fAlert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/CP
UWarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/C
PUCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.HPUX.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.RHEL"
Accessibility="Internal" Enabled="true" Target="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal"
TypeID="Custom.Unix.Process.Monitoring.ProcPerfMon.RHEL.Mem.MonitorType"
ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings
AlertMessage="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.RHEL_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/AlertK
ey$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Proces
sName$</AlertParameter2>
<AlertParameter3>$Data/Property[@Name='Max_Memory_Used_Linux']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateIdfa03a01ad693406599524c18d9d445e1"
MonitorTypeStateID="Critical" HealthState="Error" />
<OperationalState ID="UIGeneratedOpStateIdf3eba7e929304d8381bde217188e96f9"
MonitorTypeStateID="Warning" HealthState="Warning" />
<OperationalState ID="UIGeneratedOpStateId7fa35792547c45f6a83a9cb2508b6c8c"
MonitorTypeStateID="Success" HealthState="Success" />
</OperationalStates>
<Configuration>
<IntervalSeconds>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Perfmo
nInterval$</IntervalSeconds>
<TargetSystem>$Target/Host/Property[Type="MicrosoftUnixLibrary!Microsoft.Unix.Computer"]/Princip
alName$</TargetSystem>
<Timeout>150</Timeout>
<ProcessNamePattern>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/Pr
ocessNamePattern$</ProcessNamePattern>
<CollectProcessPerfData>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
CollectProcessPerfData$</CollectProcessPerfData>
<RaisePerfAlert>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/RaisePerf
Alert$</RaisePerfAlert>
<CPUWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CPU
WarnThreshold$</CPUWarnThreshold>
<CPUCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/CP
UCriticalThreshold$</CPUCriticalThreshold>
<MemWarnThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/M
emoryWarnThreshold$</MemWarnThreshold>
<MemCriticalThreshold>$Target/Property[Type="Custom.Unix.Process.Monitoring.RHEL.ConfigData"]/
MemoryCriticalThreshold$</MemCriticalThreshold>
</Configuration>
</UnitMonitor>
</Monitors>
</Monitoring>
<Presentation>
<Views>
<View ID="View_1ddf8142680547e4aa4e6e984a65211e" Accessibility="Public" Enabled="true"
Target="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
TypeID="SC!Microsoft.SystemCenter.StateViewType" Visible="true">
<Category>Operations</Category>
<Criteria>
<InMaintenanceMode>false</InMaintenanceMode>
</Criteria>
<Presentation>
<ColumnInfo Index="0" SortIndex="0" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Descending">
<Name>State</Name>
<Id>Custom.Unix.Process.Monitoring.RHEL.ConfigData</Id>
</ColumnInfo>
<ColumnInfo Index="3" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Maintenance Mode</Name>
<Id>InMaintenanceMode</Id>
</ColumnInfo>
<ColumnInfo Index="4" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Name</Name>
<Id>Name</Id>
</ColumnInfo>
<ColumnInfo Index="5" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Path</Name>
<Id>Path</Id>
</ColumnInfo>
<ColumnInfo Index="1" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Hostname</Name>
<Id>Hostname</Id>
</ColumnInfo>
<ColumnInfo Index="6" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Alert Key</Name>
<Id>AlertKey</Id>
</ColumnInfo>
<ColumnInfo Index="7" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Raise Alert</Name>
<Id>RaiseAlert</Id>
</ColumnInfo>
<ColumnInfo Index="8" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Monitoring Interval</Name>
<Id>MonitoringInterval</Id>
</ColumnInfo>
<ColumnInfo Index="9" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Process Min Count</Name>
<Id>ProcessMinCount</Id>
</ColumnInfo>
<ColumnInfo Index="10" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Process Max Count</Name>
<Id>ProcessMaxCount</Id>
</ColumnInfo>
<ColumnInfo Index="11" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Collect PerfData</Name>
<Id>CollectProcessPerfData</Id>
</ColumnInfo>
<ColumnInfo Index="12" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Raise Perf Alert</Name>
<Id>RaisePerfAlert</Id>
</ColumnInfo>
<ColumnInfo Index="13" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>CPU Warning Threshold</Name>
<Id>CPUWarnThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="14" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>CPU Critical Threshold</Name>
<Id>CPUCriticalThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="15" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Memory Warning Threshold</Name>
<Id>MemoryWarnThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="16" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Memory Critical Threshold</Name>
<Id>MemoryCriticalThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="17" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Process Name Pattern</Name>
<Id>ProcessNamePattern</Id>
</ColumnInfo>
<ColumnInfo Index="2" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Process Name</Name>
<Id>ProcessName</Id>
</ColumnInfo>
<ColumnInfo Index="18" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Perfmon Interval</Name>
<Id>PerfmonInterval</Id>
</ColumnInfo>
<ColumnInfo Index="19" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Display Name</Name>
<Id>DisplayName</Id>
</ColumnInfo>
</Presentation>
<Target />
</View>
<View ID="View_33a654a32b8745ae955a05cd4824e73c" Accessibility="Public" Enabled="true"
Target="System!System.Entity" TypeID="SC!Microsoft.SystemCenter.AlertViewType" Visible="true">
<Category>Operations</Category>
<Criteria>
<Name>Unix Process Alerts</Name>
</Criteria>
<Presentation>
<ColumnInfo Index="0" SortIndex="0" Width="22" Grouped="true" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Severity</Name>
<Id>Severity</Id>
</ColumnInfo>
<ColumnInfo Index="1" SortIndex="-1" Width="54" Grouped="false" Sorted="false"
IsSortable="false" Visible="true" SortOrder="Ascending">
<Name>Icon</Name>
<Id>Icon</Id>
</ColumnInfo>
<ColumnInfo Index="2" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Path</Name>
<Id>MonitoringObjectPath</Id>
</ColumnInfo>
<ColumnInfo Index="3" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Source</Name>
<Id>MonitoringObjectDisplayName</Id>
</ColumnInfo>
<ColumnInfo Index="4" SortIndex="-1" Width="22" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Maintenance Mode</Name>
<Id>MonitoringObjectInMaintenanceMode</Id>
</ColumnInfo>
<ColumnInfo Index="5" SortIndex="-1" Width="250" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Name</Name>
<Id>Name</Id>
</ColumnInfo>
<ColumnInfo Index="6" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Resolution State</Name>
<Id>ResolutionState</Id>
</ColumnInfo>
<ColumnInfo Index="8" SortIndex="-1" Width="150" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Created</Name>
<Id>TimeRaised</Id>
</ColumnInfo>
<ColumnInfo Index="9" SortIndex="1" Width="100" Grouped="false" Sorted="true"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Age</Name>
<Id>Age</Id>
</ColumnInfo>
<ColumnInfo Index="10" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Type</Name>
<Id>Category</Id>
</ColumnInfo>
<ColumnInfo Index="11" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Owner</Name>
<Id>Owner</Id>
</ColumnInfo>
<ColumnInfo Index="12" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Priority</Name>
<Id>Priority</Id>
</ColumnInfo>
<ColumnInfo Index="13" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Latency</Name>
<Id>Latency</Id>
</ColumnInfo>
<ColumnInfo Index="7" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Description</Name>
<Id>Description</Id>
</ColumnInfo>
<ColumnInfo Index="14" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Connector</Name>
<Id>ConnectorId</Id>
</ColumnInfo>
<ColumnInfo Index="15" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Forwarding Status</Name>
<Id>ConnectorStatus</Id>
</ColumnInfo>
<ColumnInfo Index="16" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Class</Name>
<Id>Class</Id>
</ColumnInfo>
<ColumnInfo Index="17" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Time in State</Name>
<Id>TimeInState</Id>
</ColumnInfo>
<ColumnInfo Index="18" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Custom Field 1</Name>
<Id>CustomField1</Id>
</ColumnInfo>
<ColumnInfo Index="19" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Custom Field 2</Name>
<Id>CustomField2</Id>
</ColumnInfo>
<ColumnInfo Index="20" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Custom Field 3</Name>
<Id>CustomField3</Id>
</ColumnInfo>
<ColumnInfo Index="21" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Custom Field 4</Name>
<Id>CustomField4</Id>
</ColumnInfo>
<ColumnInfo Index="22" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Custom Field 5</Name>
<Id>CustomField5</Id>
</ColumnInfo>
<ColumnInfo Index="23" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Custom Field 6</Name>
<Id>CustomField6</Id>
</ColumnInfo>
<ColumnInfo Index="24" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Custom Field 7</Name>
<Id>CustomField7</Id>
</ColumnInfo>
<ColumnInfo Index="25" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Custom Field 8</Name>
<Id>CustomField8</Id>
</ColumnInfo>
<ColumnInfo Index="26" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Custom Field 9</Name>
<Id>CustomField9</Id>
</ColumnInfo>
<ColumnInfo Index="27" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Custom Field 10</Name>
<Id>CustomField10</Id>
</ColumnInfo>
<ColumnInfo Index="28" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Resolved By</Name>
<Id>ResolvedBy</Id>
</ColumnInfo>
<ColumnInfo Index="29" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Time Resolved</Name>
<Id>TimeResolved</Id>
</ColumnInfo>
<ColumnInfo Index="30" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Last State Change</Name>
<Id>TimeResolutionStateLastModified</Id>
</ColumnInfo>
<ColumnInfo Index="31" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Last Modified</Name>
<Id>LastModified</Id>
</ColumnInfo>
<ColumnInfo Index="32" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Last Modified By</Name>
<Id>LastModifiedBy</Id>
</ColumnInfo>
<ColumnInfo Index="33" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Management Group</Name>
<Id>ManagementGroup</Id>
</ColumnInfo>
<ColumnInfo Index="34" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Site</Name>
<Id>SiteName</Id>
</ColumnInfo>
<ColumnInfo Index="35" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Repeat Count</Name>
<Id>RepeatCount</Id>
</ColumnInfo>
<ColumnInfo Index="36" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Ticket ID</Name>
<Id>TicketId</Id>
</ColumnInfo>
</Presentation>
<Target />
</View>
<View ID="View_560f769bba0042a08321faf688bf049b" Accessibility="Public" Enabled="true"
Target="Custom.Unix.Process.Monitoring.AIX.ConfigData"
TypeID="SC!Microsoft.SystemCenter.PerformanceViewType" Visible="true">
<Category>Operations</Category>
<Criteria />
<Presentation>
<SortedColumnIndex>0</SortedColumnIndex>
<SortOrder>0</SortOrder>
<StartTime>2012-10-23T10:21:28.418625-04:00</StartTime>
<EndTime>2012-10-24T10:21:28.418625-04:00</EndTime>
<DynamicTimeTicks>864000000000</DynamicTimeTicks>
<IsDynamic>true</IsDynamic>
<Is3DMode>false</Is3DMode>
<ShowAlerts>false</ShowAlerts>
<ShowMaintenanceMode>false</ShowMaintenanceMode>
<BaselineMode>false</BaselineMode>
<ShowPointLabels>false</ShowPointLabels>
<EnableSmartLabels>true</EnableSmartLabels>
<RightAngleAxes>false</RightAngleAxes>
<ClusterSeries>false</ClusterSeries>
<Title />
<TitleFont>Microsoft Sans Serif,12,Regular</TitleFont>
<ChartFont>Microsoft Sans Serif,8.25,Regular</ChartFont>
<ShowBands>false</ShowBands>
<BandColor>-1579033</BandColor>
<ChartType>Line</ChartType>
<Depth>100</Depth>
<GapDepth>100</GapDepth>
<Perspective>10</Perspective>
<GraphXRotation>0</GraphXRotation>
<GraphYRotation>0</GraphYRotation>
<XLabelAngle>0</XLabelAngle>
<LabelColor>-16777216</LabelColor>
<LabelFont>Microsoft Sans Serif,8.25,Regular</LabelFont>
<XAxisVisible>True</XAxisVisible>
<XShowMajorGridlines>false</XShowMajorGridlines>
<XShowMinorGridlines>false</XShowMinorGridlines>
<ShowInterlaceStrips>false</ShowInterlaceStrips>
<XInterlaceColor>16777215</XInterlaceColor>
<XShowSideMargin>true</XShowSideMargin>
<XAxisFont>Microsoft Sans Serif,8.25,Regular</XAxisFont>
<AutoAxis>true</AutoAxis>
<AxisMax>100</AxisMax>
<AxisMin>0</AxisMin>
<YAxisVisible>True</YAxisVisible>
<YShowMajorGridlines>true</YShowMajorGridlines>
<YShowMinorGridlines>false</YShowMinorGridlines>
<YShowInterlaceStrips>false</YShowInterlaceStrips>
<YShowSideMargin>true</YShowSideMargin>
<YAxisFont>Microsoft Sans Serif,8.25,Regular</YAxisFont>
<BackgroundColor1>-1</BackgroundColor1>
<BackgroundColor2>-1</BackgroundColor2>
<GradientType>None</GradientType>
<Series />
</Presentation>
<Target />
</View>
<View ID="View_8d56252bbf324794837d4904a7811c6c" Accessibility="Public" Enabled="true"
Target="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
TypeID="SC!Microsoft.SystemCenter.PerformanceViewType" Visible="true">
<Category>Operations</Category>
<Criteria />
<Presentation>
<SortedColumnIndex>0</SortedColumnIndex>
<SortOrder>0</SortOrder>
<StartTime>2012-10-23T10:25:29.949875-04:00</StartTime>
<EndTime>2012-10-24T10:25:29.949875-04:00</EndTime>
<DynamicTimeTicks>864000000000</DynamicTimeTicks>
<IsDynamic>true</IsDynamic>
<Is3DMode>false</Is3DMode>
<ShowAlerts>false</ShowAlerts>
<ShowMaintenanceMode>false</ShowMaintenanceMode>
<BaselineMode>false</BaselineMode>
<ShowPointLabels>false</ShowPointLabels>
<EnableSmartLabels>true</EnableSmartLabels>
<RightAngleAxes>false</RightAngleAxes>
<ClusterSeries>false</ClusterSeries>
<Title />
<TitleFont>Microsoft Sans Serif,12,Regular</TitleFont>
<ChartFont>Microsoft Sans Serif,8.25,Regular</ChartFont>
<ShowBands>false</ShowBands>
<BandColor>-1579033</BandColor>
<ChartType>Line</ChartType>
<Depth>100</Depth>
<GapDepth>100</GapDepth>
<Perspective>10</Perspective>
<GraphXRotation>0</GraphXRotation>
<GraphYRotation>0</GraphYRotation>
<XLabelAngle>0</XLabelAngle>
<LabelColor>-16777216</LabelColor>
<LabelFont>Microsoft Sans Serif,8.25,Regular</LabelFont>
<XAxisVisible>True</XAxisVisible>
<XShowMajorGridlines>false</XShowMajorGridlines>
<XShowMinorGridlines>false</XShowMinorGridlines>
<ShowInterlaceStrips>false</ShowInterlaceStrips>
<XInterlaceColor>16777215</XInterlaceColor>
<XShowSideMargin>true</XShowSideMargin>
<XAxisFont>Microsoft Sans Serif,8.25,Regular</XAxisFont>
<AutoAxis>true</AutoAxis>
<AxisMax>100</AxisMax>
<AxisMin>0</AxisMin>
<YAxisVisible>True</YAxisVisible>
<YShowMajorGridlines>true</YShowMajorGridlines>
<YShowMinorGridlines>false</YShowMinorGridlines>
<YShowInterlaceStrips>false</YShowInterlaceStrips>
<YShowSideMargin>true</YShowSideMargin>
<YAxisFont>Microsoft Sans Serif,8.25,Regular</YAxisFont>
<BackgroundColor1>-1</BackgroundColor1>
<BackgroundColor2>-1</BackgroundColor2>
<GradientType>None</GradientType>
<Series />
</Presentation>
<Target />
</View>
<View ID="View_a9fae1e03bae4d54b9fd157e2b3e6ac5" Accessibility="Public" Enabled="true"
Target="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
TypeID="SC!Microsoft.SystemCenter.PerformanceViewType" Visible="true">
<Category>Operations</Category>
<Criteria />
<Presentation>
<SortedColumnIndex>0</SortedColumnIndex>
<SortOrder>0</SortOrder>
<StartTime>2012-10-23T10:27:05.981125-04:00</StartTime>
<EndTime>2012-10-24T10:27:05.981125-04:00</EndTime>
<DynamicTimeTicks>864000000000</DynamicTimeTicks>
<IsDynamic>true</IsDynamic>
<Is3DMode>false</Is3DMode>
<ShowAlerts>false</ShowAlerts>
<ShowMaintenanceMode>false</ShowMaintenanceMode>
<BaselineMode>false</BaselineMode>
<ShowPointLabels>false</ShowPointLabels>
<EnableSmartLabels>true</EnableSmartLabels>
<RightAngleAxes>false</RightAngleAxes>
<ClusterSeries>false</ClusterSeries>
<Title />
<TitleFont>Microsoft Sans Serif,12,Regular</TitleFont>
<ChartFont>Microsoft Sans Serif,8.25,Regular</ChartFont>
<ShowBands>false</ShowBands>
<BandColor>-1579033</BandColor>
<ChartType>Line</ChartType>
<Depth>100</Depth>
<GapDepth>100</GapDepth>
<Perspective>10</Perspective>
<GraphXRotation>0</GraphXRotation>
<GraphYRotation>0</GraphYRotation>
<XLabelAngle>0</XLabelAngle>
<LabelColor>-16777216</LabelColor>
<LabelFont>Microsoft Sans Serif,8.25,Regular</LabelFont>
<XAxisVisible>True</XAxisVisible>
<XShowMajorGridlines>false</XShowMajorGridlines>
<XShowMinorGridlines>false</XShowMinorGridlines>
<ShowInterlaceStrips>false</ShowInterlaceStrips>
<XInterlaceColor>16777215</XInterlaceColor>
<XShowSideMargin>true</XShowSideMargin>
<XAxisFont>Microsoft Sans Serif,8.25,Regular</XAxisFont>
<AutoAxis>true</AutoAxis>
<AxisMax>100</AxisMax>
<AxisMin>0</AxisMin>
<YAxisVisible>True</YAxisVisible>
<YShowMajorGridlines>true</YShowMajorGridlines>
<YShowMinorGridlines>false</YShowMinorGridlines>
<YShowInterlaceStrips>false</YShowInterlaceStrips>
<YShowSideMargin>true</YShowSideMargin>
<YAxisFont>Microsoft Sans Serif,8.25,Regular</YAxisFont>
<BackgroundColor1>-1</BackgroundColor1>
<BackgroundColor2>-1</BackgroundColor2>
<GradientType>None</GradientType>
<Series />
</Presentation>
<Target />
</View>
<View ID="View_bd07a3b66ffa4b71bdbb4548ba137fb5" Accessibility="Public" Enabled="true"
Target="Custom.Unix.Process.Monitoring.AIX.ConfigData"
TypeID="SC!Microsoft.SystemCenter.StateViewType" Visible="true">
<Category>Operations</Category>
<Criteria>
<InMaintenanceMode>false</InMaintenanceMode>
</Criteria>
<Presentation>
<ColumnInfo Index="0" SortIndex="0" Width="100" Grouped="false" Sorted="true"
IsSortable="true" Visible="true" SortOrder="Descending">
<Name>State</Name>
<Id>Custom.Unix.Process.Monitoring.AIX.ConfigData</Id>
</ColumnInfo>
<ColumnInfo Index="3" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Maintenance Mode</Name>
<Id>InMaintenanceMode</Id>
</ColumnInfo>
<ColumnInfo Index="4" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Name</Name>
<Id>Name</Id>
</ColumnInfo>
<ColumnInfo Index="5" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Path</Name>
<Id>Path</Id>
</ColumnInfo>
<ColumnInfo Index="1" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Hostname</Name>
<Id>Hostname</Id>
</ColumnInfo>
<ColumnInfo Index="6" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Alert Key</Name>
<Id>AlertKey</Id>
</ColumnInfo>
<ColumnInfo Index="7" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Raise Alert</Name>
<Id>RaiseAlert</Id>
</ColumnInfo>
<ColumnInfo Index="8" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Monitoring Interval</Name>
<Id>MonitoringInterval</Id>
</ColumnInfo>
<ColumnInfo Index="9" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Process Min Count</Name>
<Id>ProcessMinCount</Id>
</ColumnInfo>
<ColumnInfo Index="10" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Process Max Count</Name>
<Id>ProcessMaxCount</Id>
</ColumnInfo>
<ColumnInfo Index="11" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Collect Process Perf Data</Name>
<Id>CollectProcessPerfData</Id>
</ColumnInfo>
<ColumnInfo Index="12" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Raise Perf Alert</Name>
<Id>RaisePerfAlert</Id>
</ColumnInfo>
<ColumnInfo Index="13" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>CPU Warning Threshold</Name>
<Id>CPUWarnThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="14" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>CPU Critical Threshold</Name>
<Id>CPUCriticalThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="15" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Memory Warning Threshold</Name>
<Id>MemoryWarnThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="16" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Memory Critical Threshold</Name>
<Id>MemoryCriticalThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="17" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Process Name REGEX</Name>
<Id>ProcessNamePattern</Id>
</ColumnInfo>
<ColumnInfo Index="18" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>PerfMon Interval</Name>
<Id>PerfmonInterval</Id>
</ColumnInfo>
<ColumnInfo Index="2" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Process Name</Name>
<Id>ProcessName</Id>
</ColumnInfo>
<ColumnInfo Index="19" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Display Name</Name>
<Id>DisplayName</Id>
</ColumnInfo>
</Presentation>
<Target />
</View>
<View ID="View_f7eeb2dda14847bd946d5638773532dd" Accessibility="Public" Enabled="true"
Target="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
TypeID="SC!Microsoft.SystemCenter.StateViewType" Visible="true">
<Category>Operations</Category>
<Criteria>
<InMaintenanceMode>false</InMaintenanceMode>
</Criteria>
<Presentation>
<ColumnInfo Index="0" SortIndex="0" Width="100" Grouped="false" Sorted="true"
IsSortable="true" Visible="true" SortOrder="Descending">
<Name>State</Name>
<Id>Custom.Unix.Process.Monitoring.HPUX.ConfigData</Id>
</ColumnInfo>
<ColumnInfo Index="1" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Maintenance Mode</Name>
<Id>InMaintenanceMode</Id>
</ColumnInfo>
<ColumnInfo Index="2" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Name</Name>
<Id>Name</Id>
</ColumnInfo>
<ColumnInfo Index="3" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="true" SortOrder="Ascending">
<Name>Path</Name>
<Id>Path</Id>
</ColumnInfo>
<ColumnInfo Index="4" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Hostname</Name>
<Id>Hostname</Id>
</ColumnInfo>
<ColumnInfo Index="5" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Alert Key</Name>
<Id>AlertKey</Id>
</ColumnInfo>
<ColumnInfo Index="6" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Rasie Alert</Name>
<Id>RaiseAlert</Id>
</ColumnInfo>
<ColumnInfo Index="7" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>MonitoringInterval</Name>
<Id>MonitoringInterval</Id>
</ColumnInfo>
<ColumnInfo Index="8" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Process Minimum Count</Name>
<Id>ProcessMinCount</Id>
</ColumnInfo>
<ColumnInfo Index="9" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Process Max Count</Name>
<Id>ProcessMaxCount</Id>
</ColumnInfo>
<ColumnInfo Index="10" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Collect Performance Data</Name>
<Id>CollectProcessPerfData</Id>
</ColumnInfo>
<ColumnInfo Index="11" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Raise Performance Alert</Name>
<Id>RaisePerfAlert</Id>
</ColumnInfo>
<ColumnInfo Index="12" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>CPU Warning Threshold</Name>
<Id>CPUWarnThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="13" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>CPU Critical Threshold</Name>
<Id>CPUCriticalThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="14" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Memory Warning Threshold</Name>
<Id>MemoryWarnThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="15" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Memory Critical Threshold</Name>
<Id>MemoryCriticalThreshold</Id>
</ColumnInfo>
<ColumnInfo Index="16" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Process Name REGEX</Name>
<Id>ProcessNamePattern</Id>
</ColumnInfo>
<ColumnInfo Index="17" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Perfmon Interval</Name>
<Id>PerfmonInterval</Id>
</ColumnInfo>
<ColumnInfo Index="18" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Process Name</Name>
<Id>ProcessName</Id>
</ColumnInfo>
<ColumnInfo Index="19" SortIndex="-1" Width="100" Grouped="false" Sorted="false"
IsSortable="true" Visible="false" SortOrder="Ascending">
<Name>Display Name</Name>
<Id>DisplayName</Id>
</ColumnInfo>
</Presentation>
<Target />
</View>
</Views>
<Folders>
<Folder ID="Folder_2c1530bcb2704c9ab0a550fcd713d8d5" Accessibility="Public"
ParentFolder="Folder_2f7bc0e0af6d4d16a256c31d5f8f14d6" />
<Folder ID="Folder_2f7bc0e0af6d4d16a256c31d5f8f14d6" Accessibility="Public"
ParentFolder="SC!Microsoft.SystemCenter.Monitoring.ViewFolder.Root" />
<Folder ID="Folder_b6ec10b23c6440f2a5d73102fa35f95a" Accessibility="Public"
ParentFolder="Folder_2f7bc0e0af6d4d16a256c31d5f8f14d6" />
<Folder ID="Folder_f638314d0c16413ca0030ef86674b692" Accessibility="Public"
ParentFolder="Folder_2f7bc0e0af6d4d16a256c31d5f8f14d6" />
</Folders>
<FolderItems>
<FolderItem ElementID="View_1ddf8142680547e4aa4e6e984a65211e"
Folder="Folder_b6ec10b23c6440f2a5d73102fa35f95a" />
<FolderItem ElementID="View_33a654a32b8745ae955a05cd4824e73c"
Folder="Folder_2f7bc0e0af6d4d16a256c31d5f8f14d6" />
<FolderItem ElementID="View_560f769bba0042a08321faf688bf049b"
Folder="Folder_f638314d0c16413ca0030ef86674b692" />
<FolderItem ElementID="View_8d56252bbf324794837d4904a7811c6c"
Folder="Folder_2c1530bcb2704c9ab0a550fcd713d8d5" />
<FolderItem ElementID="View_a9fae1e03bae4d54b9fd157e2b3e6ac5"
Folder="Folder_b6ec10b23c6440f2a5d73102fa35f95a" />
<FolderItem ElementID="View_bd07a3b66ffa4b71bdbb4548ba137fb5"
Folder="Folder_f638314d0c16413ca0030ef86674b692" />
<FolderItem ElementID="View_f7eeb2dda14847bd946d5638773532dd"
Folder="Folder_2c1530bcb2704c9ab0a550fcd713d8d5" />
</FolderItems>
<StringResources>
<StringResource ID="AlertMessageID50dafac6df9941c5aaf6c586c9beedef" />
<StringResource ID="AlertMessageID68932e37a3784a99a856e10d1a2f9b0c" />
<StringResource ID="AlertMessageID7000d72b32364140b1883fc16ada2fbe" />
<StringResource ID="AlertMessageID841bbd7451644957be8087eb9d2c11f2" />
<StringResource ID="AlertMessageID8527916e630342aabda394895a5597e6" />
<StringResource ID="AlertMessageIDca923e54d96c40768937208269336d34" />
<StringResource ID="Custom.Unix.Process.Monitoring.ProcMonitor.AIX_AlertMessageResourceID"
/>
<StringResource ID="Custom.Unix.Process.Monitoring.ProcMonitor.HPUX_AlertMessageResourceID"
/>
<StringResource ID="Custom.Unix.Process.Monitoring.ProcMonitor.RHEL_AlertMessageResourceID"
/>
<StringResource
ID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.AIX_AlertMessageResourceID" />
<StringResource
ID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.HPUX_AlertMessageResourceID" />
<StringResource
ID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.RHEL_AlertMessageResourceID" />
<StringResource
ID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.AIX_AlertMessageResourceID" />
<StringResource
ID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.HPUX_AlertMessageResourceID" />
<StringResource
ID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.RHEL_AlertMessageResourceID" />
<StringResource
ID="Custom.Unix.Process.Monitoring.ProcPerfMonitor.CPU.RHEL_AlertMessageResourceID" />
</StringResources>
</Presentation>
<LanguagePacks>
<LanguagePack ID="ENU" IsDefault="true">
<DisplayStrings>
<DisplayString ElementID="AlertMessageID50dafac6df9941c5aaf6c586c9beedef">
<Name>Unix Process Alert</Name>
<Description>{0}:Unix process {1} is either NOT running or has breached the thresholds of
minimum count {2} and maximum count {3}</Description>
</DisplayString>
<DisplayString ElementID="AlertMessageID68932e37a3784a99a856e10d1a2f9b0c">
<Name>Unix Process NOT found/running</Name>
<Description>{0}:Unix process {1} is either not running or has breached the instance threshold of
minimum {2} and maximum {3}</Description>
</DisplayString>
<DisplayString ElementID="AlertMessageID7000d72b32364140b1883fc16ada2fbe">
<Name>Unix Process Alert</Name>
<Description>{0}:Unix process {1} is either NOT running or has breached the thresholds of
minimum count {2} and maximum count {3}</Description>
</DisplayString>
<DisplayString ElementID="AlertMessageID841bbd7451644957be8087eb9d2c11f2">
<Name>Unix Process Alert</Name>
<Description>{0}:Unix process {1} is either NOT running or has breached the thresholds of
minimum count {2} and maximum count {3}</Description>
</DisplayString>
<DisplayString ElementID="AlertMessageID8527916e630342aabda394895a5597e6">
<Name>Unix Process NOT Found or NOT Running</Name>
<Description>{0}:Unix process {1} NOT found or NOT running</Description>
</DisplayString>
<DisplayString ElementID="AlertMessageIDca923e54d96c40768937208269336d34">
<Name>Unix Process NOT Running</Name>
<Description>{0}:Unix process "{1}" is either not running or has breached the threshold of process
count of minimum {2} and maximum {3}</Description>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring">
<Name>Custom Unix Process Monitoring</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData">
<Name>Custom Unix Process Monitoring AIX ConfigData</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="AlertKey">
<Name>Alert Key</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="CollectProcessPerfData">
<Name>Collect Process Perf Data</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="CPUCriticalThreshold">
<Name>CPU Critical Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="CPUWarnThreshold">
<Name>CPU Warning Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="Hostname">
<Name>Hostname</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="MemoryCriticalThreshold">
<Name>Memory Critical Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="MemoryWarnThreshold">
<Name>Memory Warning Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="MonitoringInterval">
<Name>Monitoring Interval</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="PerfmonInterval">
<Name>PerfMon Interval</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="ProcessMaxCount">
<Name>Process Max Count</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="ProcessMinCount">
<Name>Process Min Count</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="ProcessName">
<Name>Process Name</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="ProcessNamePattern">
<Name>Process Name REGEX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="RaiseAlert">
<Name>Raise Alert</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData"
SubElementID="RaisePerfAlert">
<Name>Raise Perf Alert</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.AIX">
<Name>Custom Unix Process Monitoring DataSource GetPerformanceData AIX</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.HPUX">
<Name>Custom Unix Process Monitoring DataSource GetPerformanceData HPUX</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.RHEL">
<Name>Custom Unix Process Monitoring DataSource GetPerformanceData RHEL</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.DataSource.GetPerformanceData.RunTop.HPUX">
<Name>Custom Unix Process Monitoring DataSource GetPerformanceData RunTop HPUX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.DataSource.MonitorProcess">
<Name>Custom Unix Process Monitoring DataSource MonitorProcess</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.DataSource.ReadConfig.AIX">
<Name>Custom Unix Process Monitoring DataSource ReadConfig AIX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.DataSource.ReadConfig.HPUX">
<Name>Custom Unix Process Monitoring DataSource ReadConfig HPUX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.DataSource.ReadConfig.RHEL">
<Name>Custom Unix Process Monitoring DataSource ReadConfig RHEL</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.DataSource.RunShellCommand">
<Name>Custom Unix Process Monitoring DataSource RunShellCommand</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.Discovery.ReadConfigFile.AIX">
<Name>Custom Unix Process Monitoring Discovery ReadConfigFile AIX</Name>
<Description />
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.Discovery.ReadConfigFile.HPUX">
<Name>Custom Unix Process Monitoring Discovery ReadConfigFile HPUX</Name>
<Description />
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.Discovery.ReadConfigFile.RHEL">
<Name>Custom Unix Process Monitoring Discovery ReadConfigFile RHEL</Name>
<Description />
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData">
<Name>Custom Unix Process Monitoring HPUX ConfigData</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="AlertKey">
<Name>Alert Key</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="CollectProcessPerfData">
<Name>Collect Performance Data</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="CPUCriticalThreshold">
<Name>CPU Critical Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="CPUWarnThreshold">
<Name>CPU Warning Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="Hostname">
<Name>Hostname</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="MemoryCriticalThreshold">
<Name>Memory Critical Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="MemoryWarnThreshold">
<Name>Memory Warning Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="MonitoringInterval">
<Name>MonitoringInterval</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="PerfmonInterval">
<Name>Perfmon Interval</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="ProcessMaxCount">
<Name>Process Max Count</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="ProcessMinCount">
<Name>Process Minimum Count</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="ProcessName">
<Name>Process Name</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="ProcessNamePattern">
<Name>Process Name REGEX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="RaiseAlert">
<Name>Rasie Alert</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData"
SubElementID="RaisePerfAlert">
<Name>Raise Performance Alert</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgCPUUsed.AIX">
<Name>Custom Unix Process Monitoring PerfMon AvgCPUUsed AIX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgCPUUsed.HPUX">
<Name>Custom Unix Process Monitoring PerfMon AvgCPUUsed HPUX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgCPUUsed.RHEL">
<Name>Custom Unix Process Monitoring PerfMon AvgCPUUsed RHEL</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgMemUsed.AIX">
<Name>Custom Unix Process Monitoring PerfMon AvgMemUsed AIX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgMemUsed.HPUX">
<Name>Custom Unix Process Monitoring PerfMon AvgMemUsed HPUX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgMemUsed.RHEL">
<Name>Custom Unix Process Monitoring PerfMon AvgMemUsed RHEL</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxCPUUsed.AIX">
<Name>Custom Unix Process Monitoring PerfMon MaxCPUUsed AIX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxCPUUsed.HPUX">
<Name>Custom Unix Process Monitoring PerfMon MaxCPUUsed HPUX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxCPUUsed.RHEL">
<Name>Custom Unix Process Monitoring PerfMon MaxCPUUsed RHEL</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxMemUsed.AIX">
<Name>Custom Unix Process Monitoring PerfMon MaxMemUsed AIX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxMemUsed.HPUX">
<Name>Custom Unix Process Monitoring PerfMon MaxMemUsed HPUX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxMemUsed.RHEL">
<Name>Custom Unix Process Monitoring PerfMon MaxMemUsed RHEL</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.PerfMon.RunTOP.HPUX">
<Name>Custom Unix Process Monitoring PerfMon RunTOP HPUX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcessMon.AIX">
<Name>Custom Unix Process Monitoring ProcessMon AIX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcessMon.HPUX">
<Name>Custom Unix Process Monitoring ProcessMon HPUX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcessMon.RHEL">
<Name>Custom Unix Process Monitoring ProcessMon RHEL</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcMon.MonitorType">
<Name>Custom Unix Process Monitoring ProcMon MonitorType</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.AIX">
<Name>Custom Unix.Process.Monitoring.ProcMonitor.AIX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.AIX"
SubElementID="UIGeneratedOpStateId0f79b74595f04294a95d1aa9f685b106">
<Name>SUCCESS</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.AIX"
SubElementID="UIGeneratedOpStateId374f97e9f5fa42248968a096f847151c">
<Name>ERROR</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.AIX_AlertMessageResourceID">
<Name>Unix Process Alerts</Name>
<Description>{0}:Unix process {1} is either NOT running or has breached the thresholds of
minimum count {2} and maximum count {3}</Description>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.HPUX">
<Name>Custom Unix Process Monitoring ProcMonitor HPUX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.HPUX"
SubElementID="UIGeneratedOpStateId3c317a9b55a64521825089f57255c74b">
<Name>SUCCESS</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.HPUX"
SubElementID="UIGeneratedOpStateIdbb891a748bba4f7889418796591ce1d8">
<Name>ERROR</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.HPUX_AlertMessageResourceID">
<Name>Unix Process Alerts</Name>
<Description>{0}:Unix process {1} is either NOT running or has breached the thresholds of
minimum count {2} and maximum count {3}</Description>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.RHEL">
<Name>Custom Unix Process Monitoring ProcMonitor RHEL</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.RHEL"
SubElementID="UIGeneratedOpStateId329f4badc22a46f8b7c0e0dc2ca43c31">
<Name>ERROR</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.RHEL"
SubElementID="UIGeneratedOpStateIdb06f10c9404e4912835eaa27492e8ea3">
<Name>SUCCESS</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.RHEL_AlertMessageResourceID">
<Name>Unix Process Alerts</Name>
<Description>{0}:Unix process {1} is either NOT running or has breached the thresholds of
minimum count {2} and maximum count {3}</Description>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.AIX.CPU.MonitorType">
<Name>Custom Unix Process Monitoring ProcPerfMon AIX CPU MonitorType</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.AIX.Mem.MonitorType">
<Name>Custom Unix Process Monitoring ProcPerfMon AIX Mem MonitorType</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.AIX">
<Name>Custom Unix Process Monitoring ProcPerfMon CPU AIX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.AIX"
SubElementID="UIGeneratedOpStateIda13eed3f77fd4b9a8d3aa22dd6051633">
<Name>Success</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.AIX"
SubElementID="UIGeneratedOpStateIdb23bbf4f4d034504a737eeed56b9314d">
<Name>Critical</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.AIX"
SubElementID="UIGeneratedOpStateIdc0d3582fb2254a9cbe3788016194b297">
<Name>Warning</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.AIX_AlertMessageResourceID">
<Name>Unix Process Performance Alert</Name>
<Description><![CDATA[{0}:%CPU used by Unix Process {1} has exceeded threshold. %CPU
utilization is {2}]]></Description>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.HPUX">
<Name>Custom Unix Process Monitoring ProcPerfMon CPU HPUX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.HPUX"
SubElementID="UIGeneratedOpStateId3a5933bd3cf348249067a36cba8ecaca">
<Name>Success</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.HPUX"
SubElementID="UIGeneratedOpStateId45e3693711284adbb2b7e02ee53ed0a6">
<Name>Warning</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.HPUX"
SubElementID="UIGeneratedOpStateIdcec6a19a0c0742a48f92196eec11fe51">
<Name>Critical</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.HPUX_AlertMessageResourceID">
<Name>Unix Process Performance Alert</Name>
<Description><![CDATA[{0}:%CPU used by Unix Process {1} has exceeded threshold. %CPU
utilization is {2}%]]></Description>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.RHEL">
<Name>Custom Unix Process Monitoring ProcPerfMon CPU RHEL</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.RHEL"
SubElementID="UIGeneratedOpStateId1478081235744cb593c9d6b8f12636ea">
<Name>Warning</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.RHEL"
SubElementID="UIGeneratedOpStateId5f1ba05631714f00846087bb046775a4">
<Name>Critical</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.RHEL"
SubElementID="UIGeneratedOpStateIda24d5f597dda4fd889ca40633e6c9283">
<Name>Success</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.RHEL_AlertMessageResourceID">
<Name>Unix Process Performance Alert</Name>
<Description><![CDATA[{0}:%CPU used by Unix Process {1} has exceeded threshold. %CPU
utilization is {2}]]></Description>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.HPUX.CPU.MonitorType">
<Name>Custom Unix Process Monitoring ProcPerfMon HPUX CPU MonitorType</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.HPUX.Mem.MonitorType">
<Name>Custom Unix Process Monitoring ProcPerfMon HPUX Mem MonitorType</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.AIX">
<Name>Custom Unix Process Monitoring ProcPerfMon Mem AIX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.AIX"
SubElementID="UIGeneratedOpStateId3386c49a267644eab5e4ccc2d717cd4f">
<Name>Warning</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.AIX"
SubElementID="UIGeneratedOpStateId466a0c97af40466da49c36b613416c4e">
<Name>Critical</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.AIX"
SubElementID="UIGeneratedOpStateId75ed0879969b44fd957efe3843db1b71">
<Name>Success</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.AIX_AlertMessageResourceID">
<Name>Unix Process Performance Alert</Name>
<Description><![CDATA[{0}:%Memory used by Unix Process {1} has exceeded threshold. %Memory
utilization is {2}]]></Description>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.HPUX">
<Name>Custom Unix Process Monitoring ProcPerfMon Mem HPUX</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.HPUX"
SubElementID="UIGeneratedOpStateId2a7ec86dc5c24e0b8d3e7d0032af688d">
<Name>Success</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.HPUX"
SubElementID="UIGeneratedOpStateId3a8a893c0e664559850c570551c19a37">
<Name>Warning</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.HPUX"
SubElementID="UIGeneratedOpStateIdeb42630f31a54e9f897f964f1f97325c">
<Name>Critical</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.HPUX_AlertMessageResourceID">
<Name>Unix Process Performance Alert</Name>
<Description><![CDATA[{0}:%Memory used by Unix Process {1} has exceeded threshold. %Memory
utilization is {2}]]></Description>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.RHEL">
<Name>Custom Unix Process Monitoring ProcPerfMon Mem RHEL</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.RHEL"
SubElementID="UIGeneratedOpStateId7fa35792547c45f6a83a9cb2508b6c8c">
<Name>Success</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.RHEL"
SubElementID="UIGeneratedOpStateIdf3eba7e929304d8381bde217188e96f9">
<Name>Warning</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.RHEL"
SubElementID="UIGeneratedOpStateIdfa03a01ad693406599524c18d9d445e1">
<Name>Critical</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.RHEL_AlertMessageResourceID">
<Name>Unix Process Performance Alert</Name>
<Description><![CDATA[{0}:%Memory used by Unix Process {1} has exceeded threshold. %Memory
utilization is {2}]]></Description>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.RHEL.CPU.MonitorType">
<Name>Custom Unix Process Monitoring ProcPerfMon RHEL CPU MonitorType</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.RHEL.Mem.MonitorType">
<Name>Custom Unix Process Monitoring ProcPerfMon RHEL Mem MonitorType</Name>
</DisplayString>
<DisplayString
ElementID="Custom.Unix.Process.Monitoring.ProcPerfMonitor.CPU.RHEL_AlertMessageResourceID">
<Name>Unix Process Performance Alert</Name>
<Description><![CDATA[{0}:Unix Process '{1}' is using {2} %CPU]]></Description>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData">
<Name>Custom Unix Process Monitoring RHEL ConfigData</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="AlertKey">
<Name>Alert Key</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="CollectProcessPerfData">
<Name>Collect PerfData</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="CPUCriticalThreshold">
<Name>CPU Critical Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="CPUWarnThreshold">
<Name>CPU Warning Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="Hostname">
<Name>Hostname</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="MemoryCriticalThreshold">
<Name>Memory Critical Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="MemoryWarnThreshold">
<Name>Memory Warning Threshold</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="MonitoringInterval">
<Name>Monitoring Interval</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="PerfmonInterval">
<Name>Perfmon Interval</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="ProcessMaxCount">
<Name>Process Max Count</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="ProcessMinCount">
<Name>Process Min Count</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="ProcessName">
<Name>Process Name</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="ProcessNamePattern">
<Name>Process Name Pattern</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="RaiseAlert">
<Name>Raise Alert</Name>
</DisplayString>
<DisplayString ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData"
SubElementID="RaisePerfAlert">
<Name>Raise Perf Alert</Name>
</DisplayString>
<DisplayString ElementID="Folder_2c1530bcb2704c9ab0a550fcd713d8d5">
<Name>HPUX</Name>
</DisplayString>
<DisplayString ElementID="Folder_2f7bc0e0af6d4d16a256c31d5f8f14d6">
<Name>Custom Unix Process Monitoring</Name>
</DisplayString>
<DisplayString ElementID="Folder_b6ec10b23c6440f2a5d73102fa35f95a">
<Name>Linux</Name>
</DisplayString>
<DisplayString ElementID="Folder_f638314d0c16413ca0030ef86674b692">
<Name>AIX</Name>
</DisplayString>
<DisplayString ElementID="View_1ddf8142680547e4aa4e6e984a65211e">
<Name>Process State</Name>
</DisplayString>
<DisplayString ElementID="View_33a654a32b8745ae955a05cd4824e73c">
<Name>Alerts</Name>
</DisplayString>
<DisplayString ElementID="View_560f769bba0042a08321faf688bf049b">
<Name>Process Performance</Name>
</DisplayString>
<DisplayString ElementID="View_8d56252bbf324794837d4904a7811c6c">
<Name>Process Performance</Name>
</DisplayString>
<DisplayString ElementID="View_a9fae1e03bae4d54b9fd157e2b3e6ac5">
<Name>Process Performance</Name>
</DisplayString>
<DisplayString ElementID="View_bd07a3b66ffa4b71bdbb4548ba137fb5">
<Name>Process State</Name>
</DisplayString>
<DisplayString ElementID="View_f7eeb2dda14847bd946d5638773532dd">
<Name>Process State</Name>
</DisplayString>
</DisplayStrings>
<KnowledgeArticles>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>The Custom Unix Process Monitoring management pack enables monitoring and
performance data collection of unix processes.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>The management pack is configured to read a central config file that contains
information about unix processes to be monitored and is located in a shared location accessible from
the management servers. All discoveries are targetted to Management Servers and are disabled by
default. In order to enable them, they need to be overriden for one specific management server in the
management group </maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Additional</maml:title>
<maml:para>Management Pack Designed and Developed by Nikhil Chordia.
www.techordian.com / [email protected]</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.AIX.ConfigData" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This class defines process monitoring configuration parameters for all AIX servers
only. It is instantiated after reading the lines from the central config file. Each instance of this class
corresponds to a line in the config file. </maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.Discovery.ReadConfigFile.AIX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This discovery reads from the central config file and creates instances of the
Custom Unix Process Monitoring AIX ConfigData Class and is DISABLED BY DEFAULT.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>This discovery needs to be overriden for a specific object of class Management
Server. The override will enable the discovery and provide the correct path of the config file. Please note
that the discovery needs to be overridden for each Management Group as the Management Server it
targets will change.</maml:para>
<maml:para>Configurable parameters are the discovery interval and the path to central
config.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.Discovery.ReadConfigFile.HPUX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This discovery reads from the central config file and creates instances of the
Custom Unix Process Monitoring HPUX ConfigData Class and is DISABLED BY DEFAULT</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>This discovery needs to be overriden for a specific object of class Management
Server. The override will enable the discovery and provide the correct path of the config file. Please note
that the discovery needs to be overridden for each Management Group as the Management Server it
targets will change.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.Discovery.ReadConfigFile.RHEL"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This discovery reads from the central config file and creates instances of the
Custom Unix Process Monitoring AIX ConfigData Class and is DISABLED BY DEFAULT</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>This discovery needs to be overriden for a specific object of class Management
Server. The override will enable the discovery and provide the correct path of the config file. Please note
that the discovery needs to be overridden for each Management Group as the Management Server it
targets will change.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.HPUX.ConfigData" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This class defines process monitoring configuration parameters for all HPUX servers
only. It is instantiated after reading the lines from the central config file. Each instance of this class
corresponds to a line in the config file. </maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgCPUUsed.AIX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Avg %CPU used for processes on AIX servers.
]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgCPUUsed.HPUX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Avg %CPU used for processes on HPUX
servers]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgCPUUsed.RHEL"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Avg %CPU used for processes on Linux
servers]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgMemUsed.AIX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Avg %Memory used for processes on AIX
servers]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgMemUsed.HPUX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Avg %Memory used for processes on HPUX
servers]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.AvgMemUsed.RHEL"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Avg %Memory used for processes on HPUX
servers]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxCPUUsed.AIX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Max %CPU used for processes on AIX
servers]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxCPUUsed.HPUX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Max %CPU used for processes on HPUX
servers]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxCPUUsed.RHEL"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Max %CPU used for processes on Linux
servers]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxMemUsed.AIX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Max %Memory used for processes on AIX
servers]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxMemUsed.HPUX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Max %Memory used for processes on HPUX
servers]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.MaxMemUsed.RHEL"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This rule collects Max %Memory used for processes on Linux
servers]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.PerfMon.RunTOP.HPUX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This rule runs TOP command on all HPUX servers and stores the output to a
file.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcessMon.AIX" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This rule is similar to the process monitor. It also alerts if the thresholds of
minimum and maximum instance counts are breached.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>This rule will alert if a process breached the thresholds of minimum and maximum
process instances.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Additional</maml:title>
<maml:para>NOTE : This rule is disabled by default as it may cause a lot of noise and end up
generating a lot of alerts. It should be enabled if and only if the requirments change to generate multiple
alerts per service down.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcessMon.HPUX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This rule is similar to the process monitor. It also alerts if the thresholds of
minimum and maximum instance counts are breached.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>This rule will alert if a process breached the thresholds of minimum and maximum
process instances.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Additional</maml:title>
<maml:para>NOTE : This rule is disabled by default as it may cause a lot of noise and end up
generating a lot of alerts. It should be enabled if and only if the requirments change to generate multiple
alerts per service down.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcessMon.RHEL"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This rule is similar to the process monitor. It also alerts if the thresholds of
minimum and maximum instance counts are breached.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>This rule will alert if a process breached the thresholds of minimum and maximum
process instances.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Additional</maml:title>
<maml:para>NOTE : This rule is disabled by default as it may cause a lot of noise and end up
generating a lot of alerts. It should be enabled if and only if the requirments change to generate multiple
alerts per service down.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.AIX" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This monitor looks for unix processes on AIX servers and alerts if a thresholds of
minimum or maximum process instances are breached.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>If this monitor is in Critical condition, it implies that either the process is not
running or it has breached the thresholds for minimum and maximum instances.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>Login to the server and check why the process is not running or why did it
terminate unexpectedly. Mostly it will be resolved by restarting the process/service. </maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.HPUX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This monitor looks for unix processes on HPUX servers and alerts if a thresholds of
minimum or maximum process instances are breached.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>If this monitor is in Critical condition, it implies that either the process is not
running or it has breached the thresholds for minimum and maximum instances.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>Login to the server and check why the process is not running or why did it
terminate unexpectedly. Mostly it will be resolved by restarting the process/service.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcMonitor.RHEL"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This monitor looks for unix processes on Linux servers and alerts if a thresholds of
minimum or maximum process instances are breached.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>If this monitor is in Critical condition, it implies that either the process is not
running or it has breached the thresholds for minimum and maximum instances.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>Login to the server and check why the process is not running or why did it
terminate unexpectedly. Mostly it will be resolved by restarting the process/service.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.AIX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This monitor looks for unix processes on AIX servers and alerts if the
%CPU utilization of the process exceeds thresholds.]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>Below are the states and reasons for this monitor: </maml:para>
<maml:para><![CDATA[WARNING : %CPU utilization of the unix process exceeds the warning
threshold.]]></maml:para>
<maml:para><![CDATA[CRITICAL : %CPU utilization of the unix process exceeds the critical
threshold.]]></maml:para>
<maml:para />
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>Login to the server and see why this process is taking such high CPU. Common
resolution would be to bounce the process.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.HPUX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This monitor looks for unix processes on HPUX servers and alerts if the
%CPU utilization of the process exceeds thresholds.]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>Below are the states and reasons for this monitor:</maml:para>
<maml:para><![CDATA[WARNING : %CPU utilization of the unix process exceeds the warning
threshold.]]></maml:para>
<maml:para><![CDATA[CRITICAL : %CPU utilization of the unix process exceeds the critical
threshold.]]></maml:para>
<maml:para />
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>Login to the server and see why this process is taking such high CPU. Common
resolution would be to bounce the process.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.CPU.RHEL"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This monitor looks for unix processes on Linux servers and alerts if the
%CPU utilization of the process exceeds thresholds.]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>Below are the states and reasons for this monitor:</maml:para>
<maml:para><![CDATA[WARNING : %CPU utilization of the unix process exceeds the warning
threshold.]]></maml:para>
<maml:para><![CDATA[CRITICAL : %CPU utilization of the unix process exceeds the critical
threshold. ]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>Login to the server and see why this process is taking such high CPU. Common
resolution would be to bounce the process.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.AIX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This monitor looks for unix processes on AIX servers and alerts if the
%Memory utilization of the process exceeds thresholds.]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>Below are the states and reasons for this monitor:</maml:para>
<maml:para><![CDATA[WARNING : %Memory utilization of the unix process exceeds the
warning threshold.]]></maml:para>
<maml:para><![CDATA[CRITICAL : %Memory utilization of the unix process exceeds the critical
threshold.]]></maml:para>
<maml:para />
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>Login to the server and see why this process is taking such high Memory. Common
resolution would be to bounce the process.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.HPUX"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This monitor looks for unix processes on HPUX servers and alerts if the
%Memory utilization of the process exceeds thresholds.]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>Below are the states and reasons for this monitor:</maml:para>
<maml:para><![CDATA[WARNING : %Memory utilization of the unix process exceeds the
warning threshold.]]></maml:para>
<maml:para><![CDATA[CRITICAL : %Memory utilization of the unix process exceeds the critical
threshold. ]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>Login to the server and see why this process is taking such high Memory. Common
resolution would be to bounce the process.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.ProcPerfMon.Mem.RHEL"
Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para><![CDATA[This monitor looks for unix processes on AIX servers and alerts if the
%Memory utilization of the process exceeds thresholds.]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Configuration</maml:title>
<maml:para>All the configuration parameters are controlled by a central config
file.</maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Causes</maml:title>
<maml:para>Below are the states and reasons for this monitor:</maml:para>
<maml:para><![CDATA[WARNING : %Memory utilization of the unix process exceeds the
warning threshold.]]></maml:para>
<maml:para><![CDATA[CRITICAL : %Memory utilization of the unix process exceeds the critical
threshold. ]]></maml:para>
</maml:section>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Resolutions</maml:title>
<maml:para>Login to the server and see why this process is taking such high memory. Common
resolution would be to bounce the process.</maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
<KnowledgeArticle ElementID="Custom.Unix.Process.Monitoring.RHEL.ConfigData" Visible="true">
<MamlContent>
<maml:section xmlns:maml="http://schemas.microsoft.com/maml/2004/10">
<maml:title>Summary</maml:title>
<maml:para>This class defines process monitoring configuration parameters for all Linux servers
only. It is instantiated after reading the lines from the central config file. Each instance of this class
corresponds to a line in the config file. </maml:para>
</maml:section>
</MamlContent>
</KnowledgeArticle>
</KnowledgeArticles>
</LanguagePack>
</LanguagePacks>
</ManagementPack>