系统管理员工具包: 使用 SNMP 数据
2008-11-13 08:29:29 来源:WEB开发网要在第一时间找到该属性,您可以使用 snmptranslate 来转储所有已知的属性。通过使用 grep 筛选转储结果,我们可以看到以下所需的信息: $ snmptranslate -Ts |grep dsk。
要获取数字值,可以使用 snmptranslate 并使用 –On 选项来提供名称(请参见清单 9)。
清单 9. 使用 snmptranslate
$ snmptranslate -On UCD-SNMP-MIB::dskAvail
.1.3.6.1.4.1.2021.9.1.7
运行该脚本,我们将获取指定主机上的磁盘空间使用累计情况(以及警告)。请参见清单 10。
清单 10. 自动监视磁盘空间
$ perl diskspace-auto.pl tweedledum
tweedledum Ok (50319024)
WARNING: tweedledum has lost 2.67% diskspace)
tweedledum Ok (48976392)
WARNING: tweedledum has lost 1.65% diskspace)
tweedledum Ok (48166292)
tweedledum Ok (48166292)
tweedledum Ok (48166292)
tweedledum Ok (48166292)
从这个输出中可以看到,指定主机上的该磁盘损失了大量的可用空间。要监视更多主机,只需在命令行上添加更多主机名称。
通过 SNMP 代理发布信息
SNMP 软件包包括一个守护进程 snmpd,可以配置此守护进程使用 SNMP 协议来公开各种各样的信息。要公开的信息的配置使用 /etc/snmpd.conf 文件进行控制。
例如,清单 11 显示了在本文前面的示例中使用的主机上的 snmpd.conf 文件。
清单 11. 示例 snmpd.conf 文件
syslocation serverroom
proc imapd 20 10
disk / 100000
load 5 10 10
此文件中的每一行填充了不同的信息。在此示例中,我们设置了计算机的位置,然后配置了一些要监视的特定项目。
proc 部分监视某个特定进程,这里显示的是用于邮件服务的 IMAP 守护进程的监视器。该选项后面的数字指定允许运行的最大进程数量,以及应该运行的最小进程数量。可以使用这个部分来确保某个特定的服务正在运行,并且没有超出可能指示错误的容量。当进程计数超过 MAX 值时,则会生成 SNMP 消息。
对于磁盘,您将指定要监视的目录的路径,以及磁盘应该具有的最小空闲空间大小(以 KB 为单位)。同样,如果磁盘空间降至此值以下,则会触发 SNMP 消息的生成。
最后,负载信息显示了应该报告的 1、5 和 15 分钟中的 CPU 的最大负载。这等效于 uptime 命令的输出,它显示了在这些时间间隔内的进程负载。与其他已配置的限制一样,超过这些限制时会引发 SNMP 消息。
手动设置此信息并不是非常困难,但也不是非常理想。如果需要设置用于该配置的更简单方法,可以使用基于菜单的简单解决方案 snmpconf。
总结
监视服务器和设备可能是非常复杂的过程,当网络中的设备数量增加时尤其如此。SNMP 是用于公开和报告该信息的高效和可扩展的方法。由于该接口在所有设备中保持一致,您可以跨多个主机使用相同方法来获取正常运行时间、网络统计数据、磁盘空间甚至进程监视信息。
在本文中,我们研究了 SNMP 的基础,同时还研究了如何从不同的主机读取特定的值。使用 Net::SNMP Perl 模块,我们还研究了使用基于一次性和连续监视的解决方案来读取信息的方法。最后,我们研究了用于配置系统上要公开的附加信息的方法,以便您在使用 snmpd 守护进程时,能够自定义和监视网络中的所需系统。
更多精彩
赞助商链接