Zabbix之八----Zabbix监控SNMP网络设备
SNMP协议介绍
1、SNMP 协议介绍
SNMP是英文“Simple Network Management Protocol”的缩写,中文意思是“简单网络管理协议,SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议,SNMP主要用于网络设备的管理。
SNMP的基本思想:为不同种类的设备、不同厂家生产的设备、不同型号的设备,定义为一个统一的接口和协议,使得管理员可以是使用统一的外观面对这些需要管理的网络设备进行管理。通过网络,管理员可以管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。
SNMP协议是TCP/IP协议簇的一个应用层协议,在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案,由于SNMP的简单性,在Internet时代得到了蓬勃的发展,1992年发布了SNMPv2版本,以增强SNMPv1的安全性和功能,SNMP的协议版本目前有SNMP v1、SNMP v2c和SNMP v3三种版本,其具体差别如下:
- SNMP v1采用团体名(Community Name)认证,团体名用来定义SNMP NMS和SNMP Agent的关系,如果SNMP报文携带的团体名没有得到设备的认可,该报文将被丢弃,团体名起到了类似于密码的作用,用来限制SNMP NMS对SNMP Agent的访问。
- SNMP v2c也采用团体名认证,它在兼容SNMP v1的同时又扩充了SNMP v1的功能,它提供了更多的操作类型(GetBulk和InformRequest)、支持更多的数据类型(Counter64等)、提供了更丰富的错误代码且能够更细致地区分错误。
- SNMP v3提供了基于用户的安全模型(USM,User-Based Security Model)的认证机制,用户可以设置认证和加密功能,认证用于验证报文发送方的合法性,避免非法用户的访问,加密则是对NMS和Agent之间的传输报文进行加密,以免被窃听。通过有无认证和有无加密等功能组合,可以为SNMP NMS和SNMP Agent之间的通信提供更高的安全性。
2、SNMP 工作机制
SNMP的工作机制SNMP网络元素分为NMS和Agent两种:
- NMS(Network Management Station,网络管理站)是运行SNMP客户端程序的工作站,能够提供非常友好的人机交互界面,方便网络管理员完成绝大多数的网络管理工作。
- Agent是驻留在设备上的一个进程,负责接收、处理来自NMS的请求报文。在一些紧急情况下,如接口状态发生改变等,Agent也会主动通知NMS。
- NMS是SNMP网络的管理者,Agent是SNMP网络的被管理者。NMS和Agent之间通过SNMP协议来交互管理信息。
3、SNMP数据交互
SNMP管理进程与代理进程之前为了交互信息,定义了5种报文: get -request操作:从代理进程处提取一个或多个参数值。 get -next -request操作:从代理进程处提取一个或多个参数的下一个参数值。 set -request操作:设置代理进程的一个或多个参数值。 get -response操作:返回的一个或多个参数值。这个操作是由代理进程发出的。 trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
4、SNMP 组织结构
一套完整的SNMP系统主要包括以下几个方面:
- SNMP报文协议。
- 管理信息结构(SMI,Structure ofManagementInformation),一套公用的结构和表示符号。
- 管理信息库(MIB,Management Information Base),管理信息库包含所有代理进程的所有可被查询和修改的参数。
- OID(Object Identifiers),一个OID是一个唯一的键值对,用于标识具体某一个设备的某个具体信息(对象标识),如端口信息、设备名称等。
5、SNMP MIB
所谓(MIB)管理信息库,就是所有代理进程包含的、并且能够被管理进程进行查询和设置的信息的集合。MIB是基于对象标识树的,对象标识是一个整数序列,中间以"."分割,这些整数构成一个树型结构,类似于D N S或U n ix的文件系统,M I B被划分为若干个组,如s y s t e m、in t e r f aces、at(地址转换)和ip组等。iso . org . dod . internet .private . enterp r is e s(1 . 3 . 6 . 1 . 4 . 1)这个标识,是给厂家自定义而预留的,比如华为的为1.3.6.1.4.1.2011,华三的为1.3.6.1.4.1.25506。
实战:Zabbix监控SNMP设备
1、安装并配置SNMP包
[root@node1 ~]# yum install net-snmp -y # 安装SNMP包
2、配置SNMP
[root@node1 ~]# vim /etc/snmp/snmpd.conf # 配置SNMP # sec.name source community com2sec notConfigUser default public # SNMP默认密码public,设置团体认证,登陆的SNMP密码可以修改。 # name incl/excl subtree mask(optional) view systemview included .1.3.6.1.2.1.1 # 默认有此地址 view systemview included .1.3.6.1.2.1.25.1.1 # 默认有此地址 view systemview included .1.3.6. # 添加一个可以访问的主机地址 access notConfigGroup "" any noauth exact systemview none none # 允许notConfigUser组名访问以上的IP地址信息。
3、SNMP配置文件的详细信息。
4、启动SNMP服务,设置为开机启动,此时由于SNMP是UDP协议,需要查看UDP监听端口:161
[root@node1 ~]# systemctl start snmpd [root@node1 ~]# systemctl enable snmpd
5、在客户端进行测试SNMP OID
[root@node1 ~]# yum -y install net-snmp-utils [root@node1 ~]# snmpwalk-h USAGE: snmpwalk[OPTIONS] AGENT [OID] –h:显示帮助。 –v:指定snmp的版本, 1或者2c或者3。 –c:指定连接设备SNMP密码。 –V:显示当前snmpwalk命令行版本。 –r:指定重试次数,默认为0次。 –t:指定每次请求的等待超时时间,单为秒,默认为3秒。 –l:指定安全级别:noAuthNoPriv|authNoPriv|authPriv。 –a:验证协议:MD5|SHA。只有-l指定为authNoPriv或authPriv时才需要。 –A:验证字符串。只有-l指定为authNoPriv或authPriv时才需要。 –x:加密协议:DES。只有-l指定为authPriv时才需要。 –X:加密字符串。只有-l指定为authPriv时才需要。
6、用客户端测试验证常用的OID,是否能够正常获取数据
[root@node1 ~]# snmpwalk -v 2c -c 123456 192.168.7.101 .1.3.6.1.4.1.2021.10.1.3.1 UCD-SNMP-MIB::laLoad.1 = STRING: 0.00 [root@node1 ~]# snmpwalk -v 2c -c 123456 192.168.7.101 .1.3.6.1.4.1.2021.10.1.3.2 UCD-SNMP-MIB::laLoad.2 = STRING: 0.03
Centos 部分常用的OID:
CPU 负载:
1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1
5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2
15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3
CPU信息:
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0
内存使用:
Total Swap Size: .1.3.6.1.4.1.2021.4.3.0
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0
硬盘使用:
Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1
Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1
Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1
Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1
Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1
2、在zabbix网页上添加SNMP主机
1、验证OID成功后,在zabbix网页上添加SNMP主机。
2、配置SNMP主机,添加一个主机到一个群组
3、将主机关联到SNMP模板上
4、如果上面的SNMP登陆密码更改后,就需要修改此Template OS Linux SNMPv2模板,将密码进行修改,默认密码是public
5、修改宏里边登陆SNMP密码
6、修改Template OS Linux SNMPv2模板的监控项间隔时间,全部选中后,点击最下面的批量更新即可
7、修改自动发现规则里边的间隔时间,不修改就会需要到一定的时间才会收集到数据,这里就演示修改几个配置项,生产中需要全部进行修改。
将监控项原型1的监控时间改为5s,生产中改为5m。
将监控项原型3的时间更新改为5s,生产中改为5m。
8、查看配置好的SNMP监控网络信息,已经变绿了,说明SNMP验证成功
9、查看此时的网络信息,已经采集到数据了