Отслеживание уровня чернил принтера и его использования

Примечание Данный пример приводится в целях иллюстрации, он не поддерживается. Техническая поддержка доступна для контекстного объекта, SNMP API и среды сценариев, но Ipswitch не предоставляет поддержку по JScript, VBScript или разработке и отладке мониторов и действий активного сценария. Для помощи по этому примеру или по написанию собственных сценариев, посетите сообщество пользователей WhatsUp Gold.

Активный монитор опрашивает объект MIB принтера для сбора данных об уровне чернил и расчета процента потребления чернил на принтере.

Активный монитор включает предупреждение, если потребление превышает значение, заданное в первой строке сценария.

Примечание Сценарий был протестирован на HP MIB.

Запустите инструмент SNMP MIB Walker, чтобы проверить OID двух опрошенных объектов и отрегулировать их экземпляр (1.1 в этом примере):

1.3.6.1.2.1.43.11.1.1.8.1.1 и 1.3.6.1.2.1.43.11.1.1.9.1.1.

Примечание Этот сценарий приводится только как пример кода. Для мониторинга принтеров используйте параметр Активный монитор принтера.

var nMarkerPercentUtilization = 70; // На этом принтере возникнет ошибка, если потребление чернил на принтере превысит это значение, заданное в %.
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 {
// опросить два счетчика
Context.LogMessage("Опросить максимальный уровень маркера");
var oResponse = oSnmpRqst.Get("1.3.6.1.2.1.43.11.1.1.8.1.1");
if (oResponse.Failed) {
Context.SetResult(1, oResponse.GetErrorMsg);
}
var prtMarkerSuppliesMaxCapacity = oResponse.GetValue;
Context.LogMessage("Success. Value=" + prtMarkerSuppliesMaxCapacity);

Context.LogMessage("Опрос текущего уровня маркера");
oResponse = oSnmpRqst.Get("1.3.6.1.2.1.43.11.1.1.9.1.1");
if (oResponse.Failed) {
Context.SetResult(1, oResponse.GetErrorMsg);
}
var prtMarkerSuppliesLevel = oResponse.GetValue;
Context.LogMessage("Success. Значение=" + prtMarkerSuppliesLevel);

var nPercentUtilization = 100 * prtMarkerSuppliesLevel / prtMarkerSuppliesMaxCapacity;

if (nPercentUtilization > nMarkerPercentUtilization) {
Context.SetResult(1, "Failure. Текущее использование (" + (nPercentUtilization + "%) превышает заданный порог (" + nMarkerPercentUtilization) + "%)");
}
else {
Context.SetResult(0, "Success. Текущее использование (" + (nPercentUtilization + "%) ниже заданного порога (" + nMarkerPercentUtilization) + "%)");
}
}

См. также

Пример активных мониторов активного сценария

Оповещение при выходе температуры за диапазон

Определение недопустимых действий учетной записи пользователя

Мониторинг использования полосы пропускания на интерфейсе

Мониторинг агента SNMP, работающего на нестандартном порте

Мониторинг неизвестных MAC-адресов