我在 SuperUser 上发布了此问题,但我意识到这个问题可能与此更相关。
我正在尝试通过 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
按照 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
现在我得到了正确的回应