Как удаленно контролировать службу Windows LPD из Nagios
У нас есть компьютер под управлением Windows Server 2003 R2, на котором запущена служба LPD для реализации ERP. Я использую Nagios для мониторинга сети и уже настроил этот хост. Сейчас я пытаюсь настроить службу для наблюдения за службой Windows LPD, которая работает на этом хосте и гарантирует, что в очереди ничего не остается слишком долго. Я нашел http://exchange.nagios.org/directory/Plugins/Operating-Systems/Linux/check_lpstat/details но чувствую, что схожу с ума, пытаясь его настроить!
Nagios работает на Ubuntu 10.04. Мне нужен был пакет с lpstat, поэтому я попробовал cups-client. lpstat -h [servername]
только вернулся lpstat: transport endoint is not connected
и Google ничего не дал мне в сообщении об ошибке, кроме редких отчетов об ошибках для несвязанных ситуаций (в основном связанных с установкой), поэтому я попытался lprng, который хотел, чтобы я сначала сгенерировал /etc/printcap
, но я не заинтересован в коробке Nagios, предлагающей услуги печати, поэтому я отказался от этого тоже. Я начал искать другую опцию и установил пакет lpr, надеясь использовать lpq
Команда, которую я видел в некоторых из моих поисков Google. К сожалению, то, что я видел, должно было быть для другой реализации, потому что она не принимала опцию -H (или что-то еще, что я мог видеть для указания удаленного хоста).
Очевидно, я не иду по правильному пути здесь. Я знаю, я могу просто telnet [servername] 515
и убедитесь, что я установил соединение, но это просто скажет мне, что порт открыт, верно? Это может привести к успеху, но при этом в очереди будет ошибка, верно? (серьезно, потому что, если я ошибаюсь в последних двух пунктах, я делаю это излишне сложно).
1 ответ
Вы правы, простое TCP-соединение не будет надежно сообщать вам, что система работает.
lpstat
Я попытаюсь подключиться к порту IPP, я полагаю, что служба LPD в Windows предоставляет только стандартный Unix lpr на порт 515 (см. http://technet.microsoft.com/en-us/library/cc728404.aspx).
NagiosExchange check_lpq
здесь не очень хорошее решение Вы могли бы иметь возможность сойти с рук с помощью check_grep
как обёртка lpq
Вам либо понадобится lpq
который будет подключаться напрямую к принтеру или к тому, который можно подключить через работающий CUPS или lpr-ng.
Это, вероятно, ваш лучший выбор: http://planet.pks.mpg.de/trac/site/browser/src/nagios/plugins/check_lpr.pl?rev=178&order=name
(нажмите ссылку "Исходный формат" под источником, чтобы загрузить только исходный код). Вам понадобится рабочий Perl и Net::LPR
модуль. Возможно, вам придется немного взломать его, особенно если вам нужно добавить логику для обнаружения зависших заданий. Я не могу сказать, что я использовал это интенсивно, но он работал хорошо для меня с реальными принтерами и lpd
(lpr-ng), хотя я не использовал его с Windows/LPD.
$ perl check_lpr.pl -v -H hp1f01 -P Auto
OK - JetDirect lpd: no jobs queued on the port Auto
Вы также можете рассмотреть возможность использования check_nrpe
а также nrpe_nt
(или аналогичный) с проверками службы / процесса в системе Windows, чтобы убедиться, что службы работают правильно; или некоторый PowerShell для непосредственного запроса очередей печати (например, через WMI).