我正在尝试通过 Nagios 的 check_snmp 插件在启用 SNMP 版本 3 的 UPS 上检查正常运行时间。
我能够使用正确的凭据执行指定版本 3 的 snmpget 调用并从 UPS 获得正确的响应,因此我知道它在那里设置正确。
nagios check_snmp 插件文档显示它有支持 v3 的选项。
然而,在 Nagios 配置文件中,我发现的唯一示例显示“-C public”
我在 nagios 配置文件中找不到为 check_snmp 插件指定版本 3 的位置,无论是在主机配置文件、commands.cfg 中,还是在其他地方。
我尝试用主机配置 .cfg 中的版本 3 身份验证数据替换“-C public”,但目前还没有成功。
答案1
当我意识到这个问题在 ServerFault 上更合适时,我就把它发布了,并且我把我解决的答案放在这里和那里。
再次查看手册页,正如 ServerFault 上的 Zoredache 所建议的那样,我意识到 snmpget 和 check_snmp 之间的选项标志的大小写在用户名和 authPriv 安全级别上有所不同
对于 snmpget,用户为小写“u”,对于 check_snmp,用户为大写“U”,对于 snmpget/check_snmp,安全级别分别为“l”和“L”。
协议规范也从 -v3 变为 --protocol=3
在objects / hostservice.cfg文件中我更改了
check_command check_snmp!-C public -o sysUpTime.0
到
check_command check_snmp!--protocol=3 -U [user] -L [noAuthNoPriv|authNoPriv|authPriv] -a [MD5|SHA] -A [password] -x [DES|AES] -X [password] -o sysUpTime.0
现在我得到了正确的回应