Huawei.E9000.Snmp.Monitor.SnmpTrapBlade

Huawei.BladeServer.Huawei.E9000.Snmp.Monitor.SnmpTrapBlade (UnitMonitor)

Description for the new unit monitor.

Element properties:

TargetE9000.Blade
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveFalse
Monitor TypeHuawei.Server.EventTriggeredScriptMonitorType.3StateScriptMonitorType
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Huawei.BladeServer.Huawei.E9000.Snmp.Monitor.SnmpTrapBlade" Accessibility="Public" Enabled="true" Target="E9000.Blade" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Huawei.Server.EventTriggeredScriptMonitorType.3StateScriptMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Critical" MonitorTypeStateID="Critical" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IP>$Target/Host/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPAddress$</IP>
<CommunityString>$RunAs[Name="NetworkLibrary!System.NetworkManagement.Snmp.MonitoringAccount"]/CommunityString$</CommunityString>
<Version>$Target/Host/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPVersion$/</Version>
<!--<AllTraps>false</AllTraps>-->
<OIDProps>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.19</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.40</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.1</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.2</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.17</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.7</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.45</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.3</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.41</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.9</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.34</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.14</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.27</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.12</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.6</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.51</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.44</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.42</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.57</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.63</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.35</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.68</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.69</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.24</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.501.10.74</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.5</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.7</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.12</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.13</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.15</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.18</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.27</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.33</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.35</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.39</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.40</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.41</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.43</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.44</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.211</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.240.113</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.240.114</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.257</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.258</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.268</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.294</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.786</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.789</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.1042</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.1045</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.1051</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.1052</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.1825</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.1813</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.1831</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.1793</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.1830</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.1287</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.1292</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.781</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.791</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.793</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.806</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.775</OIDProp>
<OIDProp>1.3.6.1.4.1.2011.2.82.1.82.500.10.2824</OIDProp>
</OIDProps>
<ScriptName>BladeTrapEventMonitor.vbs</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Property[Type="NetworkLibrary!System.NetworkManagement.LogicalDevice"]/Index$ $RunAs[Name="NetworkLibrary!System.NetworkManagement.Snmp.MonitoringAccount"]/CommunityString$ $Target/Host/Property[Type="NetworkLibrary!System.NetworkManagement.Node"]/SNMPAddress$ </Arguments>
<ScriptBody><Script>
'**********************************************************************************
' Script Name - HuaweiServerMemoryUnit
' Author:
' Description:
' Determine Unit Monitor health for Server disk
'
' (c) Copyright Huawei Inc. 2013 - All rights reserved
'**********************************************************************************
Option Explicit
On Error Resume Next


Dim oArgs
Dim exePath, snmpVer, arr, host, ws, debugFlag
Dim bladeStatus,bladeNum,community,ipAddr,blade_HealthOID,blade_Health,CurrentTime,prmDeviceID

Set oArgs = WScript.Arguments
prmDeviceID = oArgs(1)
bladeNum = oArgs(2)
community = oArgs(3)
ipAddr = oArgs(4)


exePath = "C:\"&amp;"Program Files"&amp;"\Huawei\snmp\snmpget.exe"
snmpVer = "2c"
debugFlag = 0


Set ws = CreateObject("WScript.Shell")
host = WScript.FullName

If LCase( right(host, len(host)-InStrRev(host,"\")) ) = "wscript.exe" Then
ws.run "cscript """ &amp; WScript.ScriptFullName &amp; chr(34), 0
WScript.Quit
End If


MOMDebugLog("------------------pdMonitor start------------------")
blade_HealthOID = "1.3.6.1.4.1.2011.2.82.1.82.100.1.2001.1.3."&amp;bladeNum

blade_Health = getOidResult( blade_HealthOID)
MOMDebugLog("blade_Health:" &amp; blade_Health)

bladeStatus = blade_Health
IF len(bladeStatus)=0 or len(bladeStatus)&gt;2 or bladeStatus =chr(10) Then
bladeStatus = -1
Elseif bladeStatus = chr(13) Then
bladeStatus = -1
End IF
bladeStatus = bladeStatus

If bladeStatus = 2 Then
bladeStatus = "Warning"
MOMDebugLog( "Raw Status: " &amp; bladeStatus)
ElseIf bladeStatus = 3 OR bladeStatus = 4 OR bladeStatus = 5 OR bladeStatus = 6 OR bladeStatus = 7 Then
bladeStatus = "Critical"
MOMDebugLog(" Raw Status: " &amp; bladeStatus)
else
bladeStatus = "OK"
MOMDebugLog(" Raw Status: " &amp; bladeStatus)
End If


CurrentTime = Hour(Now)&amp; ":" &amp; Minute(Now) &amp;":" &amp;Second(Now)
MOMDebugLog("Target" &amp; prmDeviceID &amp; "SNMPAddr :" &amp; ipAddr &amp; "BladeNum :" &amp; BladeNum &amp; "CPUNum :" &amp; CPUNum &amp; "Raw Status: " &amp; CPUStatus &amp; "Currentime" &amp;Currentime )



MOMDebugLog("------------------pdMonitor end------------------")
Dim oAPI, oBag
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
Call oBag.AddValue("Status",bladeStatus)
Call oAPI.Return(oBag)
oBag = Nothing
'*****************************************************************
' Function getOidResult
' query OID value through snmp interface.
'*****************************************************************
Public Function getOidResult (ByVal Oid)
Dim cmd, result, getResult, arr

cmd = exePath &amp; " -v " &amp; snmpVer &amp; " -c " &amp; community &amp; " -r 3 -t 20 -O vq " &amp; ipAddr &amp; " " &amp; Oid
Set getResult = ws.Exec(cmd)
result = getResult.StdOut.ReadAll
Set getResult = Nothing
IF len(result )&gt;1 Then
IF (Mid(result ,1,1)=chr(34) And Mid(result ,len(result )-1,1)=chr(34)) Then
result = Mid(result ,2,len(result)-3) &amp; chr(32)
End IF
End IF
getOidResult = result

End Function


'*****************************************************************
' Function MOMDebugLog
' Add LogMessage Header - ScriptName and Time and Logging it.
'*****************************************************************
Public Function MOMDebugLog (ByVal strMessage)
IF debugFlag = 1 then
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso=CreateObject("Scripting.FileSystemObject")
if fso.folderExists("C:\scomLog") then
Dim fso, f
Set f = fso.OpenTextFile("c:\scomLog\BladeTrapMonitor.txt", ForAppending, True)
f.WriteLine strMessage
f.Close
End if
End if
End Function

</Script></ScriptBody>
<TimeoutSeconds>600</TimeoutSeconds>
<SuccessExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">OK</Value>
</ValueExpression>
</SimpleExpression>
</SuccessExpression>
<WarningExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Warning</Value>
</ValueExpression>
</SimpleExpression>
</WarningExpression>
<CriticalExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Critical</Value>
</ValueExpression>
</SimpleExpression>
</CriticalExpression>
</Configuration>
</UnitMonitor>