6-zabbix监控snmp设备

6-zabbix监控snmp设备

系统:Centos7.6

IP:

10.0.0.13-Centos7.6-4

Zabbix-server5.0-10.0.0.81

SNMP 即 Simple Network Management Protocol 简单网络管理协议,属于TCP/IP五层协议中的应用层协议,用于网络管理的协议,SNMP主要用于网络设备的管理。SNMP的基本思想:为不同种类的设备、不同厂家生产的设备、不同型号的设备,定义为一个统一的接口和协议,使得管理员可以是使用统一的外观面对这些需要管理的网络设备进行管理。通过网络,管理员可以管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。通常一线的网络硬件厂商的设备都支持SNMP协议,如:华为,华三,思科,锐捷等,另外Linux,Unix,Windows,Mac OS等也都支持SNMP协议在1988年被制定,并被Internet体系结构委员会(IAB,Internet Architecture Board)采纳作为一个短期的网络管理解决方案,由于SNMP的简单性,在Internet时代得到了蓬勃的发展,1992年发布了SNMPv2版本,以增强SNMPv1的安全性和功能,SNMP的协议版本目前有SNMP v1、SNMPV 2c

和 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之间的通信提供更高的安全性。此版本安全性高,但效率不高.

SNMP 工作原理

SNMP网络设备分为NMS和Agent两种:

NMS(Network Management Station,网络管理站)是SNMP网络的管理者,NMS是运行SNMP客户端管理程序的工作站,能够提供非常友好的人机交互界面,方便网络管理员完成绝大多数的网络管理工作。

Agent是SNMP网络的被管理者。Agent是驻留在设备上的一个进程,负责接收、处理来自NMS的请求报文。在一些紧急情况下,如接口状态发生改变等,Agent也会主动通知NMS。

NMS和Agent之间通过SNMP协议来交互管理信息。

SNMP管理进程与代理进程之前为了交互信息,定义了5种报文:

get-request操作:这个操作是由管理进程发起,向代理进程处请求提取一个或多个参数值。
get-next-request操作:这个操作是由管理进程发起,向从代理进程处提取一个或多个参数的下一个参数
值。
get-response操作:这个操作是由代理进程发出的,向管理进程返回的一个或多个参数值。
set-request操作:这个操作是由管理进程发起,对代理进程设置一个或多个参数值。
trap操作:这个操作是由代理进程主动发出的报文,通知管理进程有某些事情发生。


SNMP 组成

基于TCP/IP的SNMP网络管理包含以下组成部分:

管理信息库MIB(Management Information Base): 管理信息库包含所有代理进程的所有可被查询和修改的参数。RFC 1213 [McCloghrie and Rose 1991]定义了第二版的MIB,叫做MIB-II。

OID(object identifiers): 是与对象相关联的用来无歧义地标识对象的全局唯一的值,一个OID是一个唯一的键值对,用于标识具体某一个设备的某个具体信息(对象标识),如端口信息、设备名称等。即一个OID就是网络通信中对象的身份证。

管理信息结构SMI(Structure of Management Information): 关于MIB的一套公用的结构和表示符号。这个在RFC 1155 [Rose and McCloghrie 1990]中定义。SMI 是一种语言,是为了确保网络管理数据的语法和语义明确和无二义性而定义的语言。它是定义被管理网络实体中特定数据的语言。

它定义了数据类型、对象模型,以及写入和修改管理信息的规则。比如: 支持INTEGER,OCTER STRING,DisplayString,IpAddress等数据类型

SNMP(Simple Network Management Protocol): 管理进程和代理进程之间的通信协议,叫做简单网络管理协议。在RFC 1157 [Case et al.1990]中定义。SNMP包括数据报交换的格式等。尽管可以在运输层采用各种各样的协议,但是在SNMP中,用得最多的协议还是UDP。

上述三部分相互独立,每部分都定义了单独标准(RFC)。SNMP定义通信的方式和格式,但不指明具体设备上的具体数据,每种设备的数据细节在MIB中定义,这样做达到了“控制与数据相分离”的目的,能提供很好的兼容性和可扩展性。而SMI又为保持MIB的简单性和可扩展性提供了很好的支持

MIB OID


管理信息库MIB可以分为公有MIB和私有MIB两种

公有MIB:一般由RFC定义,主要用来对各种公有协议进行结构化设计和接口标准化处理。例如:OSPF-MIB(RFC1850)/BGP4-MIB(RFC1657)都是典型的公有MIB。大多数的设备制造商都需要按照RFC的定义来提供SNMP接口。私有MIB:是公有MIB的必要补充,当公司自行开发私有协议或者特有功能时,可以利用私有MIB来完善SNMP接口的管理功能,同时对第三方网管软件管理存在私有协议或特有功能的设备提供支持。

MIB中存放了对每个对象都指定唯 一的对象标识OID, OID是一种数据类型,它指明一种“授权”命名的对象。“授权”的意思就是这些标识不是随便分配的,它是由一些权威机构进行管理和分配的。对象标识是一个整数序列,以点(“.”)分隔。这些整数构成一个树型结构,类似于DNS(图14-1)或Unix的文件系统。对象标识从树的顶部开始,顶部没有标识,以root表示树上的每个结点同时还有一个文字名。例如标识 .1.3.6.1.2.1和iso.org.dod.internet.memt.mib对应。

这主要是为了人们阅读方便。在实际应用中,也就是说在管理进程和代理进程进行数据报交互时,MIB变量名是以对象标识来标识的,都是以1.3.6.1.2.1开头的。一般情况下(如交换机、防火墙、PC)使用的路径如图中所示,iso-->org-->dod-->internet,所以这些

设备信息的oid必然以1.3.6.1开头,之后mgmt为公有库,包含了一些设备共同具备的信息,例如1.3.6.1.2.1.1.5为主机名,而private为私有库,再根据不同的公司,mib树继续扩展下去,最后到每一个具体值的叶子节点,例如1.3.6.1.4.1.2021.4.3.0为linux操作系统的交换区大小

下图显示了在SNMP中用到的这种树型结构。所有的MIB变量都从 .1.3.6.1.2.1这个标识开始。




oid-info是一个内容丰富的网站,包含了大量公有或私有的mib信息,在知道部分oid的情况,可以方便的进行节点具体信息的查看。但是树太过庞大,仅仅从网站上查看效率十分低下,直接从设备商处获取

mib库是最方便的做法。


参考链接:

http://www.oid-info.com/index.htm
注意:查询时无需输入最前面的.


系统信息:

sysDescr .1.3.6.1.2.1.1.1
sysobjectID .1.3.6.1.2.1.1.2
sysUpTime .1.3.6.1.2.1.1.3
syscontact .1.3.6.1.2.1.1.4
sysName .1.3.6.1.2.1.1.5


CPU负载:

l 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
15minute 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
percentages of system Cpu time: .1.3.6.1.4.1.2021.11.10.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 RAMFree: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Tota7 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
Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1
Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1


使用 SNMP**工具监控** SNMP 设备

Zabbix Agent 安装 SNMP 协议并配置

在centos7.6上安装snmp

[root@centos7 ~]# yum install net-snmp -y


修改配置文件,为了提高安全性,可以设置一个密码

vim /etc/snmp/snmpd.conf
源内容
om2sec notConfigUser  default       public
改后
om2sec notConfigUser  default       123456
添加一个密码123456
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
解释:
	监控.1.后门的内容,如果不添加此内容zabbix无法监控到


启动snmp并设置为开机自启动

[root@centos7 ~]# systemctl enable snmpd.service --now
Created symlink from /etc/systemd/system/multi-user.target.wants/snmpd.service to /usr/lib/systemd/system/snmpd.service.


查看端口是否监听,snmp监控端口为udp161

[root@centos7 ~]# ss -ntul
Netid  State      Recv-Q Send-Q                                      Local Address:Port                                                     Peer Address:Port              
udp    UNCONN     0      0                                                       *:161                                                                 *:*                  
udp    UNCONN     0      0                                               127.0.0.1:323                                                                 *:*                  
udp    UNCONN     0      0                                                     ::1:323                                                                :::*                  
tcp    LISTEN     0      128                                             127.0.0.1:199                                                                 *:*                  
tcp    LISTEN     0      128                                                     *:22                                                                  *:*                  
tcp    LISTEN     0      100                                             127.0.0.1:25                                                                  *:*                  
tcp    LISTEN     0      128                                                    :::22                                                                 :::*                  
tcp    LISTEN     0      100                                                   ::1:25                                                                 :::*


在zabbix-server上面安装snmp取值工具

#如果是CentOS安装SNMP工具包
[root@zabbix-server ~]#yum -y install net-snmp-utils

#如果是Ubuntu安装下面包
[root@zabbix-server ~]#apt -y install snmp
USAGE:snmpwalk[OPTIONS]AGENT[OID]
-h:显示帮助。
-v:指定snmp的版本,1或者2c或者3。
-c:指定连接设备SNMP密码。
—r:指定重次次数.默认为0次
-l:指定安全级别: noAuthNoPriv|authNoPriv|authPriv。
-a:验证协议:MD5|SHA。只有-l指定为authNoPriv或authPriv时才需要。
-A∶验证字符串。只有-1指定为authNoPriv或authPriv时才需要
-x:加密协议:DES。只有-l指定为authPriv时才需要
-x:加密字符串。只有-l指定为authPriv时才需要


监测10.0.0.13的主机名

root@zabbix-server:~# snmpwalk -v 2c -c123456 10.0.0.13 .1.3.6.1.2.1.1.5.0
iso.3.6.1.2.1.1.5.0 = STRING: "centos7.6-4"
解释:
	snmpwalk
		命令
		
	-v 2c
		指定snmp的版本
		
	-c123456
		指定密码
		
	10.0.0.13
		主机IP地址
		
	.1.3.6.1.2.1.1.5.0
		主机名


获取10.0.0.13系统信息

root@zabbix-server:~# snmpwalk -v 2c -c123456 10.0.0.13 .1.3.6.1.2.1.2.2.1.3
iso.3.6.1.2.1.2.2.1.3.1 = INTEGER: 24
iso.3.6.1.2.1.2.2.1.3.2 = INTEGER: 6


获取10.0.0.13获取接口MAC

root@zabbix-server:~# snmpwalk -v 2c -c123456 10.0.0.13 .1.3.6.1.2.1.2.2.1.6
iso.3.6.1.2.1.2.2.1.6.1 = ""
iso.3.6.1.2.1.2.2.1.6.2 = Hex-STRING: 00 0C 29 64 10 C7


获取10.0.0.13接口当前带宽[bps]

root@zabbix-server:~# snmpwalk -v 2c -c123456 10.0.0.13 .1.3.6.1.2.1.2.2.1.5
iso.3.6.1.2.1.2.2.1.5.1 = Gauge32: 10000000
iso.3.6.1.2.1.2.2.1.5.2 = Gauge32: 1000000000


获取10.0.0.13的IP地址

root@zabbix-server:~# snmpwalk -v 2c -c123456 10.0.0.13 1.3.6.1.2.1.4.20.1.1
iso.3.6.1.2.1.4.20.1.1.10.0.0.13 = IpAddress: 10.0.0.13
iso.3.6.1.2.1.4.20.1.1.127.0.0.1 = IpAddress: 127.0.0.1


获取10.0.0.13的内存大小

root@zabbix-server:~# snmpwalk -v 2c -c123456 10.0.0.13 .1.3.6.1.4.1.2021.4.5.0
iso.3.6.1.4.1.2021.4.5.0 = INTEGER: 2028116


利用 Zabbix 监控 SNMP 设备

创建主机

在配置中添加需要监控的SNMP代理端

image-20220727144413256.png


image-20220727144529244.png

image-20220727144601470.png



image-20220727144948635.png


先择一个模板作为监控项

image-20220727145201040.png


添加

image-20220727145227039.png


这样设置是监控不到的需要修改宏对应的密码

image-20220727150301559.png



image-20220727150317670.png


修改这里的密码,修改成123456


image-20220727150824763.png


把默认的密码修改成123456

image-20220727150859178.png


查看,可以看到SNMP为绿色说明监控到了

image-20220727151045129.png



Powered By Z-BlogPHP 1.7.3

 Theme By 优美模版

本博客为开源博客,本博客联系QQ:372097243