31bf3856ad364e35 · 6.1.7000.277 31bf3856ad364e35

Post on 15-Mar-2020

0 views 0 download

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 / chordianikhil@gmail.com</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>