我正在尝试在我的 CentOS 主机上配置 snmpd 来监控可用磁盘使用量的百分比。
如果我将 snmpd.conf 设置为
disk /
disk /var
,可以使用以下方式查询值
1.3.6.1.4.1.2021.9.1.1.1对于“/”和
1.3.6.1.4.1.2021.9.1.1.2为“/var”。
我有几台服务器没有单独的“/var”分区。因此磁盘布局不标准化。我发现 snmpd.conf 中的磁盘语句顺序决定了 snmp 查询结果的 dskIndex 编号。因此,如果我翻转“/”和“/var”,“/”将具有 dskIndex2。
在我的监控系统中,我必须为每台服务器分别配置每个 OID,因为它们可能不同。因此,我们的想法是为不存在的文件系统设置占位符。
是否可以使用占位符来人为地计算 dskIndex 或以某种方式在 snmpd.conf 中手动影响 dskIndex?
提前致谢
答案1
我不知道如何手动更改 dskIndex,但 snmpd 使用 snmpd.conf 文件中定义的顺序,因此它是可预测的。
如果您寻找其他解决方案,请阅读上述内容:
snmpd 提供有关磁盘索引的信息,如果您轮询 oid:1.3.6.1.2.1.25.2.3.1.3,系统将返回可用磁盘列表,例如:
$ snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.2.1.25.2.3.1.3
iso.3.6.1.2.1.25.2.3.1.3.1 = STRING: "Physical memory"
iso.3.6.1.2.1.25.2.3.1.3.3 = STRING: "Virtual memory"
iso.3.6.1.2.1.25.2.3.1.3.6 = STRING: "Memory buffers"
iso.3.6.1.2.1.25.2.3.1.3.7 = STRING: "Cached memory"
iso.3.6.1.2.1.25.2.3.1.3.8 = STRING: "Shared memory"
iso.3.6.1.2.1.25.2.3.1.3.10 = STRING: "Swap space"
iso.3.6.1.2.1.25.2.3.1.3.31 = STRING: "/"
iso.3.6.1.2.1.25.2.3.1.3.32 = STRING: "/sys/fs/fuse/connections"
iso.3.6.1.2.1.25.2.3.1.3.33 = STRING: "/dev"
iso.3.6.1.2.1.25.2.3.1.3.35 = STRING: "/media/KINGSTON"
最后一位数字是索引,因此您可以像这样请求 / 分区的大小:
snmpwalk-v 2c-c 公共 127.0.0.1 1.3.6.1.2.1.25.2.3.1.5。31
iso.3.6.1.2.1.25.2.3.1.5.31 = 整数:37458759
我不知道你使用哪种监控系统,但请阅读此脚本检查snmp_storage.pl,perl 脚本使用 SNMP 检索索引表并仅请求正确的 OID。它适用于 nagios,也许您可以将其改编为其他系统。