メモ この例は説明のために示されているに過ぎず、実際にはサポートされていません。Ipswitch は、Context オブジェクト、SNMP API、およびスクリプティング環境については、テクニカルサポートを提供しますが、JScript、VBScript、およびアクティブスクリプトのモニタとアクションの開発とデバッグについては、サポートを提供しません。この例および自社独自のスクリプトを作成することに関する援助については、WhatsUp Gold ユーザーコミュニティにアクセスしてください。
このアクティブモニタは SNMP 対応温度センサーをポーリングします。温度が設定されている許容範囲を超えるまたは下回るとアラートが発信されます。
// この jscript スクリプトは「稼働中のデバイス」 (www.uptimedevices.com) の SNMP 対応センサーから温度をポーリングします。
// 温度がすぐ下に設定されている範囲内に留まるようにするのが目的です。
// その温度デバイスの OID は 1.3.6.1.4.1.3854.1.2.2.1.16.1.14.1
var nMinAllowedTemp = 65;
var nMaxAllowedTemp = 75;
var oSnmpRqst = new ActiveXObject("CoreAsp.SnmpRqst");
var nDeviceID = Context.GetProperty("DeviceID");
var oComResult = oSnmpRqst.Initialize(nDeviceID);
if (oComResult.Failed) {
Context.SetResult(1, oComResult.GetErrorMsg);
}
else {
// 2 つのカウンターをポーリングする
Context.LogMessage("Polling the temperature");
var oResponse = oSnmpRqst.Get("1.3.6.1.4.1.3854.1.2.2.1.16.1.14.1");
if (oResponse.Failed) {
Context.SetResult(1, oResponse.GetErrorMsg);
}
else {
var nTemperature = oResponse.GetValue / 10.0;
// 温度を摂氏に変換するための次の行はコメントアウト。
//nTemperature = (nTemperature - 32) * 5 / 9;
Context.LogMessage("Success.Value=" + nTemperature + " degrees");
if (nTemperature < nMinAllowedTemp || nTemperature > nMaxAllowedTemp) {
Context.SetResult(1, "Polled temperature " + nTemperature + " is outside of the defined range " + nMinAllowedTemp + " - " + nMaxAllowedTemp);
}
else {
Context.SetResult(0, "Success");
}
}
}