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就是设备名称与设备编号对应关系库

snmp 简单说明及安装_第1张图片

 

     例如:每一对象设备的某个接口的编号(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