本文共 2922 字,大约阅读时间需要 9 分钟。
如果你是对SNMP完全不了解,或者只想学习如何使用现成的SNMP工具,那你找对了文章。但如果你希望深入了解SNMP具体协议内容,推荐阅读官方的RFC文档。
SNMP(Simple Network Management Protocol)是TCP/IP协议簇上的一个通用网络管理协议,为网络节点提供了统一的管理方法。对于系统维护人员来说,掌握SNMP是必不可少的技能。尤其是对于BMC工程师而言,SNMP常常会被部署在Linux系统中,用于管理BMC监视的硬件资源。
在深入了解SNMP之前,你必须先了解MIB。MIB的全称是Management Information Base,其主要作用是为所有被管理网络节点创建一个接口,类似于IP地址的一串数字。例如,在SNMP操作中,你可能会遇到如`.1.3.6.1.2.1.1.5.0`这样的数字串。
以下是这串数字的含义表:
| 数字位置 | 描述 |
|---|---|
| 1 | iso |
| 3 | org |
| 6 | dod |
| 1 | internet |
| 2 | mgmt |
| 1 | mib-2 |
| 5 | system |
| 0 | sysName |
| 0 | end |
这串数字实际上可以用来引用系统的名称。在实际使用中,我们通常使用更易读的方式来表示,比如SNMPv2-MIB::sysName.0。下载SNMP工具包时,会附带MIB包,提供节点的树形结构,方便查找和替换表达方式。或者,你也可以参考MIB转换工具来完成。
SNMP分为两部分:一个是用于节点管理,另一个是用于监测报警的Trap。可以将SNMP看作是一个客户机/服务器结构。在客户端,一般部署snmpd守护进程,管理端则下载SNMP工具包,包含管理客户端网络节点的工具,如get、set、translate等。
管理端通常会监听默认端口161,负责接收请求包。同时,管理端还会启动snmptrapd守护进程,监听Trap包,用于报警。一旦检测到被管理端的某个节点出现故障,系统会自动发送Trap包,通知管理员进行处理。
目前较为流行的SNMP工具有Net-SNMP和iReasoning MIB Browser。
4.1 Net-SNMPNet-SNMP是运行在Linux系统中的一个常用工具包。安装方法有多种,可以从官方网站下载,也可以通过Linux发行版包管理工具安装。安装完成后,可以通过修改/etc/snmp/snmpd.conf文件进行配置。
常用SNMP工具包括:
snmpd:SNMP守护进程,用于管理客户端,配置方式是通过修改snmpd.conf文件。可以通过命令sudo /etc/init.d/snmpd restart/start/stop控制进程状态。snmpget:用于获取远端节点的值。例如,使用snmpget -v 2c -c public localhost SNMPv2-MIB::sysName.0可以获取被管理端的系统名称。snmpset:用于设置节点值。例如,snmpset -v 2c -c public localhost SNMPv2-MIB::sysContact.0 s 'test'可以设置系统联系人信息。snmpwalk:用于遍历节点的所有子节点,获取所有管理信息。例如,snmpwalk -v 2c -c public localhost SNMPv2-MIB::system可以查看系统节点下的所有子节点信息。snmptranslate:用于将OID转换为对应的节点表示。例如,snmptranslate -Td SNMPv2-MIB::system可以获取system节点对应的数字OID。snmptrap:用于向管理端发送Trap包。例如,sudo snmptrap -v 2c -c public localhost "cxy" .1.3.6.1.2.1.1 SNMPv2-MIB::sysContact.0 s 'test'可以向管理端发送Trap包,通知系统发生了变化。4.2 MIB-BrowserMIB-Browser是一款图形化的SNMP工具,界面简单易用。它提供了Trap接收器和Trap发送器功能,适合需要管理多个网络节点的管理员使用。
以下是基于Ubuntu 16.04系统的Net-SNMP配置示例:
/etc/snmp/snmp.conf# As the snmp packages come without MIB files due to license reasons, loading# of MIBs is disabled by default. If you added the MIBs you can reenable# loading them by commenting out the following line.#mibs :
/etc/snmp/snmpd.conf## EXAMPLE-trap.conf:# An example configuration file for configuring the Net-SNMP snmptrapd agent.################################################################################### 这个文件只是作为示例使用,具体配置请根据需求调整。## 所有以#开头的行是注释,供你参考,其他行是配置命令。## 请参考`snmptrapd.conf(5)`手册进行详细配置。authCommunity log,execute,net private authCommunity log,execute,net public### 发送邮件通知事件traphandle default /usr/bin/traptoemail -s smtp.qq.com 1484652026@qq.com### 发送邮件通知链路下线traphandle .1.3.6.1.6.3.1.1.5.3 /usr/bin/traptoemail -s smtp.example.org foobar@example.org
以上配置文件可以根据实际需求进行调整,确保SNMP服务正常运行。
转载地址:http://vhakz.baihongyu.com/