1; 全称为simple network management protocol,中文为简单网络管理协议.
2; snmp协议的版本;
1; snmp v1(版本1); 有三个community认证, 分别是read-only( 只能获取信息 )、read-write( 能获取信息,也能发送控制指令 )、trap( agent主动联机nms );
2; snmp v2(版本2); 功能增强,但仍基于community的认证; 因此又称2c版本;
3; snmp v3(版本3); 这个版本认证加强,但少人用.
3; snmp的服务器;
1; snmp的服务器主要被人称为nms(network management station,网络管理工作站), 因为它可以用来收集各种信息;
2; snmp的服务器并不一定需要监听某个端口,因为一般来说,都是服务器主动去向客户端要求获取一些信息; 当服务器有监听端口的时候,那就是客户需要主动发送信息给服务器。这时信息的交流的主动双向的。
3; snmp服务器端可以做的操作;( get, getnext, getbulk, set, getresponse )
4; snmp的客户端;
1; snmp的客户端主要被人称为agent.
2; snmp的客户端相对于其它客户端来讲比较特殊,因为它需要监听某个端口(netstat -tlunp,snmp客户端主要监听的是161端口), 一般像ftp, http等服务都是服务器端才需要监听端口;
5: snmp的工作原理;
snmp的nms通过指令向正在监听某个端口的客户( agent )发送查询、控制指令;
6: snmp的mib( snmp的mib是比较难理解的一个方面 );
1; snmp获取信息最终是靠oid来获取的,oid类似于ip。 ip区别主机,oid区别资源。
2; ip比较难记,于是产生了dns服务器. oid也比较难记,于是有了mib,mib维护着oid和名字之间的对应关系;
3: mib的文件主要存放在/usr/share/snmp/mibs/这个目录中,其中,mib2的名字为SNMPv2-MIB.txt
实践部分:
1: 客户端
1: yum install net-snmp (安装snmp agent)
2: /etc/init.d/snmpd restart (启动snmp agent服务)
2: 服务器端
1: yum install net-snmp-utils (安装snmp nms)
2: snmpwalk -v 2c -c public localhost host (输入这条指令即可获取主机信息)
3: snmp客户端的配置
cat /etc/snmp/snmpd.conf | egrep -v '^#|^$' | less
default: 可以改为nms的ip,假如,只想让本地能够获取到机器的信息,就改成 127.0.0.1。如果想要让内网的nms可以获取信息,可以改成192.168.0.0/16、10.0.0.0/8等等
public: 就是snmpwalk 使用-c参数选择的community,一般这个默认要换掉,在公网上别人就比较难获取机器的信息。
view:就是允许nms能够获取您机器的哪些信息。
4: mib库的部分对应关系
名字 oid
system: 1.3.6.1.2.1.1
interfaces: 1.3.6.1.2.1.2
ip: 1.3.6.1.2.1.4
tcp: 1.3.6.1.2.1.6
udp: 1.3.6.1.2.1.7
snmp: 1.3.6.1.2.1.11
host: 1.3.6.1.2.1.25
要让上面的各个信息可以被收集得到,需要改被监控端snmp服务的配置文件,如下:
[root@2_16 ~]# cat /etc/snmp/snmpd.conf |egrep -v '^#|^$'
com2sec notConfigUser default public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.2
view systemview included .1.3.6.1.2.1.3
view systemview included .1.3.6.1.2.1.4
view systemview included .1.3.6.1.2.1.5
view systemview included .1.3.6.1.2.1.6
view systemview included .1.3.6.1.2.1.7
view systemview included .1.3.6.1.2.1.8
view systemview included .1.3.6.1.2.1.10
view systemview included .1.3.6.1.2.1.11
view systemview included .1.3.6.1.2.1.25
access notConfigGroup "" any noauth exact systemview none none
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
dontLogTCPWrappersConnects yes
然后重启服务/etc/init.d/snmpd restart ,最后使用snmpwalk即可获取到主机的额外的信息,截图如下(获取udp信息):
[root@2_16 ~]# snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.7