![使用 snmpv3 协议的 check_snmp 给出“未知报告消息”错误](https://linux22.com/image/539338/%E4%BD%BF%E7%94%A8%20snmpv3%20%E5%8D%8F%E8%AE%AE%E7%9A%84%20check_snmp%20%E7%BB%99%E5%87%BA%E2%80%9C%E6%9C%AA%E7%9F%A5%E6%8A%A5%E5%91%8A%E6%B6%88%E6%81%AF%E2%80%9D%E9%94%99%E8%AF%AF.png)
我正在尝试添加一个 nagios 命令以使用 snmpv3 来监控打印机状态消息。使用 check_snmp 命令时,我收到以下错误:
外部命令错误:snmpget:未知报告消息
这是我正在输入的命令:
./check_snmp -P 3 -H <hostname> -L authPriv -U snmpuser -A snmppassword -X snmppassword -o 1.3.6.1.4.1.11.2.4.3.1.2.0 -C public -d "STRING:" -a MD5
使用 snmpwalk 时,这些身份验证密钥、私钥、用户名等值均有效。有人能告诉我该错误消息的真正含义吗?
编辑:看起来 check_snmp 在传递给 snmpget 时没有接受我的 v3 凭据。这是我使用详细选项的输入:
./check_snmp -H <hostname> -o 1.3.6.1.2.1.2.2.1.10.1 -C public -m ALL -P 3 -L authPriv -U snmpuser -a MD5 -A snmppassword -x DES -X snmppassword -v
输出如下:
/usr/bin/snmpget -t 1 -r 5 -m ALL -v 3 [authpriv] <hostname>:161 1.3.6.1.2.1.2.2.1.10.1
External command error: snmpget: Unknown Report message
所以我想现在我的问题是:为什么 check_snmp 没有将所有命令行选项传递给 snmpget?
答案1
奇怪的是它没有为你传递所有参数。也许是 nagios-plugins 的旧版本?
幸运的是,您可能可以重新使用我刚刚整理的可以解决不同问题的东西。check_snmp 不遵循您的 smnp.conf 文件。
我编写了一个 check_snmp.pl 脚本,其行为与 check_snmp 类似,可与 snmp v3 配合使用,并使用 snmp.conf 文件中的值。以下是概要:
http://cormander.com/2011/11/a-nagios-snmp-plugin-that-obeys-snmp-conf/
并直接链接到 check_snmp.pl 脚本:
http://cormander.com/wp-content/uploads/2011/11/check_snmp.pl_.txt
希望有人觉得这有用。
答案2
我无法让 check_snmp 与 SNMP 版本 3 配合使用。为了解决我的问题,我根据以下 HP 打印机 SNMP 检查示例创建了自己的插件:
http://www.koders.com/c/fid3CAA98A63980B5952800E7C72CDDE8E2BAD3A0B9.aspx