如何远程监控Nagios的Windows LPD服务

作为ERP实施的一部分,我们有一台运行LPD服务的Windows Server 2003 R2机器。 我使用Nagios监视networking,并已经build立了这个主机。 我现在试图设置一个服务来监视在这个主机上运行的Windows LPD服务,并确保没有任何东西在队列中坐得太久。 我发现http://exchange.nagios.org/directory/Plugins/Operating-Systems/Linux/check_lpstat/details,但我觉得我失去了我的想法试图configuration它!

Nagios在Ubuntu 10.04上运行。 我需要一个包含lpstat的包,所以我尝试了cups-client。 lpstat -h [servername]刚刚返回lpstat: transport endoint is not connected ,并且google没有给我提供任何关于错误消息的信息,除了稀疏的bug情况报告(主要是相关的安装),所以我尝试了lprng,它要求我先生成/etc/printcap ,但是我对提供打印服务的Nagios盒子不感兴趣,所以我也放弃了这一点。 我开始寻找另一个选项,并安装了lpr软件包,希望利用我在一些谷歌search中看到的lpq命令。 不幸的是,我所看到的必须是不同的实现,因为它不接受-H选项(或者我可以看到的任何指定远程主机的东西)。

很明显,我不会在这里走正确的道路。 我知道我可以telnet [servername] 515 ,并确保我build立连接,但是这只是告诉我端口是开放的,对不对? 这可能会返回成功,仍然有一个错误持有一个队列,对不对? (认真的,因为如果我在最后两个数字上是错误的,那么我就会不必要地做这个)。

你是正确的,一个简单的TCP连接不会可靠地告诉你系统是可操作的。

lpstat将尝试连接到IPP端口,我相信在Windows上的LPD服务提供了一个标准的端口515上的unix lpr (请参阅http://technet.microsoft.com/en-us/library/cc728404.aspx )。

NagiosExchange check_lpq在这里不是一个好的解决scheme。 你也许可以使用check_grep作为lpq的包装,你可能需要一个直接连接到打印机的lpq ,或者一个可以通过工作的CUPS或lpr-ng连接的打印机。

这可能是你最好的select: 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 

您还可以考虑在Windows系统上使用check_nrpenrpe_nt (或类似的)进行服务/进程检查,以确保服务正常运行; 或者一些powershell直接查询打印队列(例如通过WMI)。