liujiandong
作者liujiandong·2021-08-20 16:28
系统分析师·rongsinfo

zabbix 5系列之snmp监控详解

字数 5448阅读 3159评论 0赞 1
  1. SNMP概念:

在前面我们主要讲到怎么监控服务器,用的是agent程序。但是如果想监控如打印机、交换机、路由器等设备,前面的方式是不可行的,因为在这些设备上安装完整的操作系统和Zabbix agent是不可能的。

所以,这个时候我们需要借助snmp协议来获取网络设备的相关数据。

SNMP是英文"Simple Network Management Protocol"的缩写,即“简单网络管理协议"。它属于 TCP/IP 协议中的 应用层协议 ,主要用于管理网络设备的协议。

下面我们先进行功能实现,后面在进行知识点的补充,避免被概念吓退了。

实验环境:
系统:centos 7
监控端:192.168.75.121
被监控端;192.168.75.122
  1. 部署snmp服务:

这里我们是直接在centos 7上部署snmp服务,模拟监控网络设备,真实环境的监控方式一样,因为监控服务器本来也是支持基于snmp协议的。

在被监控端(122服务器)部署snmp程序:

yum install net-snmp net-snmp-utils -y
​
### 修改snmp配置文件如下:
[root@localhost ~]# grep "^[a-Z]" /etc/snmp/snmpd.conf
# 设置团体名,默认为public,可以自定义
com2sec notConfigUser  default       public
# 设置组,将团体名称中的 notConfigUser 关联至组 notConfigGroup,提供v1,v2c协议
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.25.1.1
# 参照上面的格式,自定义视图OID权限(能获取网络设备的那些数据)
view    systemview    included   .1.3.6.1 
# 将组notConfigGroup关联至systemview,定义组的访问权限
access  notConfigGroup ""      any       noauth    exact  systemview  none none
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root  (configure /etc/snmp/snmp.local.conf)
dontLogTCPWrappersConnects yes
​
### 启动snmp服务:
systemctl  start snmpd 
### 检查进程:
[root@localhost ~]# ps -ef | grep snmpd
root       1227      1  3 21:50 ?        00:00:00 /usr/sbin/snmpd -LS0-6d -f
root       1230   1097  0 21:50 pts/0    00:00:00 grep --color=auto snmpd
​
### 检查端口:
[root@localhost ~]# netstat -nulp  | grep 161
udp        0      0 0.0.0.0:161             0.0.0.0:*                           1227/snmpd          
​
  1. 测试:

在监控端部署snmp组件:

yum install net-snmp-utils -y
​
### 在监控端(121)采集被控端(122)服务器的数据:
[root@localhost ~]# snmpwalk -v 2c -c public 192.168.75.122  if
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: ens32
IF-MIB::ifType.1 = INTEGER: softwareLoopback(24)
IF-MIB::ifType.2 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifMtu.1 = INTEGER: 65536
IF-MIB::ifMtu.2 = INTEGER: 1500
IF-MIB::ifSpeed.1 = Gauge32: 10000000
IF-MIB::ifSpeed.2 = Gauge32: 1000000000
...
IF-MIB::ifOutQLen.1 = Gauge32: 0
IF-MIB::ifOutQLen.2 = Gauge32: 0
IF-MIB::ifSpecific.1 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.2 = OID: SNMPv2-SMI::zeroDotZero
​
​
ps:能查看则表示部署没问题,可以在web端配置snmp监控了。
  1. web端配置snmp监控:

点击 配置 --> 主机 --> 创建主机 :

点击 监测 --> 最新数据 --> 选择主机 :

到这里实验就做完了,相信大家对snmp监控也有一个直观的感受,但是其中肯定会有很多困惑,特别是对配置文件中的参数定义。下面就对snmp的相关配置与概念进行一个补充。

  1. 知识扩展:

5.1 snmp架构:

snmp架构由 网络管理站 与 代理程序 组成。

其中, 代理程序 是网络设备上的一个守护进程,负责接收、处理来自网络管理站的请求报文。如果接口状态发生改变,代理也会主动通知网络管理站。

网络管理站 是SNMP管理程序的工作站,是SNMP网络的管理者。

通信过程:

get-request:     从代理进程处提取一个或多个参数值。
get-response:    返回的一个或多个参数值。这个操作是由代理进程发出的。
get-next-request:从代理进程处提取一个或多个参数的下一个参数值。
set-request:     设置代理进程的一个或多个参数值。
trap:            代理进程主动发出的报文,通知管理进程有某些事情发生。
​
网络管理站与代理端通过MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现了相应的MIB对象,使得双方可以识别对方的数据,实现通信。管理站向代理申请MIB中定义的数据,代理识别后,将管理设备提供的相关状态或参数等数据转换为MIB定义的格式,应答给管理站,完成一次管理操作。

5.2 snmp常见名词概念:

MIB(Management Information Base):管理信息库,该库包含代理进程的所有可被查询和修改的参数。它是一个整数序列,中间以点.连接。这些整数构成一个树型结构。MIB被划分为若干个组,如system、interfaces、at(地址转换)和ip组等,例如:`.iso.org.dod.internet.private.enterprises 用数据表示就是1.3.6.1.4.1`,这个标识,是给厂家自定义而预留的,比如华为的是1.3.6.1.4.1.2011,华三的是1.3.6.1.4.1.25506。

信息管理信息库/对象命名树:

OID(Object Identifiers):每个OID是唯一的键值对,用于标识具体某一个设备的某个具体信息(对象标识),如端口信息、设备名称等。
​
### 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
​
# 内存使用:
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
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
​
系统信息:
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 信息:
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

监控不同的网络设备,只需要用不同的模板即可,原理是一样的。

更多精彩Zabbix文章 、 技术交流 、免费 技术培训 加微 号 Nate IT

Zaibbix监控MySQL数据库

Zaibbix监控 M S SQL SERVER数据库

Zaibbix监控 O RACLE数据库

Zaibbix监控 Linux、W indows 、A IX 、H P-UX 、Solaris操作系统

Zaibbix监控中间件

Zaibbix监控网络设备

Zaibbix监控存储设备

葡萄运维助手(英文为 Netpod)是一款新一代I T监控系统 ,具有成本低、技术门槛低,容易上手的特点, 适用于传统型的数据中心 、 机房 、 私有云 、 公有云场景 ,快速实现各行各业I T系统高效 、 便捷运维的能力 。

运维助手提供对服务器 、虚拟化、 云主机 、网络设备、存储设备、 数据库 、 中间件 、业务系统的报警、性能、配置监控,提供W eb端的监控大屏以及 A PP客户端 ,让你在办公室中享受运维监控大屏,在会议中、出差中、家中以及其它场合中通过A PP 随时、随地掌控I T系统的运行情况 ,并且通过 运维助手 A PP轻松实现远程 I T 系统监控、 工单创建 、 知识查询 、 业务控制 、 数据备份 、 日志查询等工作 。

官网 : http://ywzs.hanyunintel.com



故障报修

工单处理

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广