SNMP(Simple Network Management Protocol)简单网络管理协议
SNMP是一种应用层协议,是TCP/IP协议族的一部分。它使网络设备之间能够方便地交换管理信息。能够让网络管理员管理网络的性能,发现和解决网络问题及进行网络的扩充。
SNMP 有三个版本SNMPv1,SNMPv2,SNMPv3
SNMPv1:所有安全机制基于communities 来实现
通知三种机制:
read-only
read-write
trap
默认的communities
public:只读的
private:读写的
MIB:(Management Information Base) 管理信息库
标准MIB库:MIB-II
MIB为何?
MIB就是设备名称与设备编号对应关系库
例如:每一对象设备的某个接口的编号(OID)可能的表示如上图所示
ckl.company.linuxSer1.if0
对应的设备OID:
1.6.3.1
设备号:
OID 与设备建立一个对应关系
能被监控的对象:
Fault Management:故障管理
Configuration Management:配置管理,能够件事配置的管理
Accounting Management:账户管理,登陆用户的管理
Performance Management:性能管理,监控服务器性能。
Security Management:安全管理
关于端口:
默认被监控端打开:161端口,UDP。
监控端只有在需要使用trap时才打开162端口,UDP
默认MID库,名称对应OID
system:1.3.6.1.2.1.1
定义系统对象列表,包括系统运行时间,系统联系方式,系统名称
interfac:1.3.6.1.2.1.2
定义接口的状态信息,发送包,接受包等等。
at:1.3.6.1.2.1.3
定义NAT相关的路由信息
ip:1.3.6.1.2.1.4
定义ip相关信息,ip路由等
icmp:1.3.6.1.2.1.5
定义icmp相关信息,错误,丢弃等等
tcp:1.3.6.1.2.1.6
定义tcp 连接状态,listing,Establish、closed等
udp:1.3.6.1.2.1.7
定义udp的状态
egp:1.3.6.1.2.1.4
transmission:1.3.6.1.2.1.4
snmp:1.3.6.1.2.1.4
SNMP 操作
get:获取对应具体节点的某个端口的信息
getnext:获取对应节点的信息
getbulk:或许某个域内的信息
set:将发起控制指令
getresponse:获取响应的信息,客户端传来的
trap
notification
inform
report
SNMP 安装
被监控端安装:net-snmp
监控端安装:net-snmp-utils、net-snmp(只有在需要trap才需要)
1.安装
# yum install net-snmp net-snmp-utils
2.启动服务
# /etc/init.d/snmpd start
3.执行命令获取信息
# snmpwalk -v 2c -c public localhost
-v 指定版本号
-c 指定communities
localhost 监控对象
SNMP 默认启用两个MIB库获取信息SNMPv2-MIB、HOST-RESOURCES-MIB
查看资源的信息:
# snmpget -v 2c -c public localhost HOST-RESOURCES-MIB::hrSystemUptime.0
4.查看tcp连接状态信息
查看tcp的MIB库的相关信息
#cd /usr/share/snmp/mibs
# more TCP-MIB.txt
....
tcp OBJECT IDENTIFIER ::= { mib-2 6 }
....
查看到tcp的MIB的OID编号为6
在配置文件增加有关TCP的配置信息
view systemview included .1.3.6.1.2.1.6
重启服务
# /etc/init.d/snmpd restart
查看tcp 连接信息
# snmpwalk -v 2c -c public localhost tcp
查看连接状态的数量
# snmpwalk -v 2c -c public localhost tcp | grep establish | wc -l
2
5.修改communities
# vi /etc/snmp/snmpd.conf
....
#com2sec notConfigUser default public #默认
com2sec notConfigUser 192.168.1.0 cklworld #修改后
重启服务:
# /etc/init.d/snmpd restart
测试默认的是否可以获取信息:
# snmpwalk -v 2c -c public 192.168.1.189 tcp 获取失败
使用新的communities 获取信息:
# snmpwalk -v 2c -c cklworld 192.168.1.189 tcp
snmpstatus 用法:
# snmpstatus -v 2C -c cklworld 192.168.1.189
[UDP: [192.168.1.189]:161->[0.0.0.0]]=>[Linux ckl 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64] Up: 1:52:35.85
Interfaces: 0, Recv/Trans packets: 0/0 | IP: 0/0