使用代理进行系统管理 让Net-SNMP做你的“执事”

日期: 2011-06-07 作者:Jeff Gehlbach翻译:孙少忆 来源:TechTarget中国 英文

现今,在多数GNU/Linux系统中都安装了一个强大的系统管理工具,名为Net-SNMP。但对于不太熟悉SNMP的系统管理员来讲, Net-SNMP的功能可能难以理解。SNMP已逐渐地代表了互联网工程任务(IETF)系统管理框架的全部内容。篇幅有限,本文不足以展示SNMP全貌,旨在说明对Net-SNMP代理深入了解的重要性。

  SNMP与其它常用的TCP/IP协议的重要区别在于它的协议格式。与以往可读取的ASCII编码指令不同,在SNMP中所有信息交流都是通过二进制格式进行,这样可以做到程序大小最优化。另一个区别是,在IP网络上,SNMP把无连接用户数据的协议作为默认的基础传输协议,而不是更……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

现今,在多数GNU/Linux系统中都安装了一个强大的系统管理工具,名为Net-SNMP。但对于不太熟悉SNMP的系统管理员来讲, Net-SNMP的功能可能难以理解。SNMP已逐渐地代表了互联网工程任务(IETF)系统管理框架的全部内容。篇幅有限,本文不足以展示SNMP全貌,旨在说明对Net-SNMP代理深入了解的重要性。

  SNMP与其它常用的TCP/IP协议的重要区别在于它的协议格式。与以往可读取的ASCII编码指令不同,在SNMP中所有信息交流都是通过二进制格式进行,这样可以做到程序大小最优化。另一个区别是,在IP网络上,SNMP把无连接用户数据的协议作为默认的基础传输协议,而不是更常用的连接型TCP协议。以上两点就表明了SNMP与简单邮件传输协议(SMTP)的不同,人们使用单一的Telnet工具时,不能在SNMP上进行远程故障排除或说明指导。

  Net-SNMP项目通常附带有一组独立的命令行工具。在Red Hat Enterprise Linux和类似系统里,它们就在名为Net-SNMP的工具包当中。当然还要有系统元件,通常叫做Net-SNMP。如需实现Net-SNMP系统最低程度配置,请参照我之前的说明文章。

  Net-SNMP的发展简史

  二十世纪八十年代晚期,卡内基梅隆大学和惠普公司发起了Net-SNMP研究项目。当时被松散地称作CMU SNMP,并在很多已经普及的专有UNIX系统上运行过,其中包括HP-UX 和 SunOS 4.x。之后,加州大学的Davis接管了这个项目,重命名为UCD-SNMP,但依然可以看出管理信息库(MIBs)的特征。当项目主要负责人Wes Hardaker 离开研究队伍去一家私人企业任职后,剩下的团队人员也逐渐疏远了与大学的联系,之后出现了Net-SNMP这个叫法。现在,一个由Hardaker领导的全球性编码员团队在协同维护这个被视作开放源的Net-SNMP软件项目。

  Net-SNMP最新的捆绑版本是5.5或5.6。由于修补了许多漏洞,该版本是目前为止功能最多、互操作性最强的版本。但是与不使用Net-SNMP协议库的SNMP应用程序进行交流时,早期版本会出现一些怪异的漏洞。

  Net-SNMP能起到什么作用呢?

  Net-SNMP代理能够提供关于所在系统的大量有用信息,包括最基础的系统和网络界面的统计数据。网络界面数据主要来源于一组IETF标准MIB,包括MIB-II及其它标准的扩展用MIB。关于CPU、内存使用、平均负载等系统级信息存于MIB组,该组作为IETF主机资源的MIB和UCD时期加入。回顾历史,这些MIB库几乎全都被应用到各种分布系统的配置之中。

  近几年,支持Net-SNMP 特定MIB表的分布式客户端越来越普遍,这些特定的表中记录着文件系统空间使用(dskTable)磁盘输入输出(diskIOTable)的统计值. dskTable默认不包含任何项目,需要你在配置文件/etc/snmp/snmpd.conf中添加了一个或多个磁盘指令,或者添加适用所有情形的includeAllDisks指令。此文件的手册页说明了这些指令的语法。

  一经设置,Net-SNMP代理就能向每个配置文件系统提供以千字节和百分比方式显示的信息,包括总容量、可用空间、已用空间。同时,也能提供等效统计数据,用于追踪文件系统分配节点的利用情况(有时叫作inodes)。这些新近出现的数值一旦被拥有SNMP能力的系统管理框架(例如OpenNMS)所采用和追踪,就可以用作性能数据阀值,并会成为系统性能的救命稻草。在与重要文件系统节点分配资源耗尽的斗争中,每个经验丰富的系统管理员都有自己的故事。

  需要更多数据?那就要扩展

  如果你清楚Net-SNMP代理的各种内置MIBs还是有局限性,并不能提供所有你感兴趣的关键应用所需信息,你也不需要因此选择另一种技术。Net-SNMP代理一直都支持好几种扩展系统。如果遇到更难办的情形,还可以选择自己在C语言或Perl语言中写入扩展或子代理,与Net-SNMP直接连接,或是通过标准AgentX协议与Net-SNMP相连。

  如果囿于时间或技能而不能深入了解,那么可以利用pass和pass persist指令通过轻量级协议获得脚本或程序值。到目前为止,最容易执行的扩展机制是经过适当命名的指令,由sh或exec指令改进而来。

  如果能够用你选择的语言编写一个小脚本去检索数据,接着就可以利用扩展功能把脚本所得值“粘贴”到Net-SNMP的MIB上。在默认情况下,Net-SNMP对脚本值缓存5秒钟,避免接二连三的请求出现时对重要操作系统造成过大压力。

  系统管理加固

  多年来,在许多人心目中,SNMP总是与安全问题联系在一起。主要因为早期的SNMP协议不支持管理者和代理之间的数据加密。唯一的内置安全措施是被叫作“字符串”的明文钥匙,起到密码的作用。第二个版本曾试图加强对安全的支持,但由于对SNMPv2进行最后复核时发现改进的安全架构出现了致命缺陷,而不得不放弃。正因如此,SNMP第二个版本的正确名字应该是“SNMPv2c” 或者叫“社区安全型SNMPv2”。

  SNMPv3作为SNMP的第三个版本,兼容强认证和加密术,阻止回放攻击,并能保护SNMP数据在网络上的传输安全。最近,IETF建议附加部分安全机制以简化和提升SNMPv3的安全性能。

相关推荐