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

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

作为 ERP 实施的一部分,我们有一台运行 LPD 服务的 Windows Server 2003 R2 机器。我使用 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,而谷歌没有给我任何错误消息,除了不相关情况(主要与安装相关)的稀疏错误报告,因此我尝试了 lprng,它希望我首先生成/etc/printcap,但我对提供打印服务的 Nagios 框不感兴趣,因此我也放弃了它。我开始寻找另一个选项并安装了 lpr 包,希望利用lpq我在一些谷歌搜索中看到的命令。不幸的是,我所看到的一定是针对不同的实现,因为它不接受 -H 选项(或我看到的任何其他指定远程主机的选项)。

显然,我在这里走错了路。我知道我可以telnet [servername] 515确保建立连接,但这只是告诉我端口是开放的,对吧?这可能会返回成功,但仍然会出现队列持有错误,对吧?(说真的,因为如果我在最后两项上假设错误,那么我就把这件事变得毫无必要地困难了)。

答案1

你是对的,一个简单的 TCP 连接并不能可靠地告诉你系统是否正常运行。

lpstat将尝试连接到独立电力供应站端口,我相信 Windows 上的 LPD 服务仅提供标准的 unix车牌识别在端口 515 上(参见http://technet.microsoft.com/en-us/library/cc728404.aspx)。

NagiosExchangecheck_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。您可能需要对其进行一些修改,特别是如果您需要添加逻辑来检测卡住的作业。我不能说我经常使用它,但它在真正的打印机和(lpr-ng)上对我来说效果很好lpd,尽管我没有在 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)。

相关内容