一、介绍

1、SNMP简单介绍

  • Simple Network Management Protocol。简单网络管理协议
  • 使用snmp协议可以方便我们监控服务器、交换机、路由器等
  • 监控Linux、Windows服务器建议使用Agent
  • 网络设备一般使用SNMP,监控网络接口存活和网络接口流量

2、使用SNMP监控说明

  • 被监控服务器需要安装snmp服务
  • 路由器、交换机可以开启SNMP服务器,需要自己设置SNMP的密码
  • Zabbix服务器通过snmp协议去监控

3、SNMP的版本

  • v1基于community进行控制访问
  • v2c也是基于community进行控制访问,但比v1增强了部分功能。实战中使用v2c
  • v3加强了认证

4、本次实验环境

Zabbix服务器:10.0.0.104
被监控的服务器:10.0.0.102

二、SNMP服务安装

1、Centos Snmp服务器安装

yum install -y net-snmp net-snmp-utils

2、Snmp的配置/etc/snmp/snmpd.conf linux使用配置文件,交换机和路由器则使用命令行

先备份一下默认的配置文件,然后新建一个配置文件

mv  /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
vim /etc/snmp/snmpd.conf
com2sec notConfigUser  default   123456
group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser
view    systemview    included   .1.3.6.1
access  notConfigGroup ""      any       noauth    exact  systemview none none
syslocation hangzhou
syscontact module@hangzhou.com
dontLogTCPWrappersConnects yes

Snmp配置详解

com2sec notConfigUser  default     pwd  #用户名、访问IP白名单(default代表所有ip访问)、密码
group   notConfigGroup v2c           notConfigUser #组名、SNMP版本、用户名
view    systemview    included   .1.3.6.1   #视图名称、包含(incl/excl)、subtree oid使用数字表示,只有oid包含.1.3.6.1可以监控数据
access  notConfigGroup ""      any       noauth    exact  systemview none none  #组名、内容、SNMP版本any所有、认证等级、systemview读权限、无写权限、无trapper权限

3、Snmp开启

systemctl start snmpd
systemctl enable snmpd

验证服务
在这里插入图片描述

三、SNMP的OID和MIB

1、SNMP的监控基于OID

  • OID,Object Identifier对象标识符
  • OID由数字组成比较难记
  • SNMP基于Oid,Oid树图的理解有助于权限的开通

2、使用Oid获取监控数据

监控cpuload

snmpwalk -v 2c -c 123456 10.0.0.102 .1.3.6.1.4.1.2021.10.1.3 #监控cpuload

在这里插入图片描述

监控网卡信息

snmpwalk -v 2c -c 123456 10.0.0.102 .1.3.6.1.2.1.2

在这里插入图片描述
3、Oid的难点

  • 难记,数字都比较难记。例如IP一般我们记不住,记域名
  • 类似我们会记得www.baidu.com,不会去记IP
  • 但实际访问却是基于IP的,实际监控是基于OID的

4、MIB库

  • 由于Oid的难记,产生了MIB。类似DNS服务器,把域名和IP的关系对应上
  • MIB,Management Information Base,管理信息库。把oid跟名字对应起来
  • MIB库有多个,网络相关的mib,系统相关的mib库

5、使用名字获取监控信息

laLoad    #load信息
ifDescr   #网卡描述信息
ifOperStatus  #网卡开通状态
ifHCOutOctets #网口出的总流量(byte) bps=流量差值*8
ifHCInOctets #网口入的总流量(byte)

例如

snmpwalk -v 2c -c 123456 10.0.0.102 12.laLoad
snmpwalk -v 2c -c 123456 10.0.0.102 ifDescr
snmpwalk -v 2c -c 123456 10.0.0.102 ifOperStatus
snmpwalk -v 2c -c 123456 10.0.0.102 ifHCOutOctets
snmpwalk -v 2c -c 123456 10.0.0.102 ifHCInOctets

在这里插入图片描述
6、网卡流量监控建议使用64位的去监控,即ifHCOutOctets加HC的,32位比较容易溢出,2^32 4294967296,64位的监控准。

四、zabbix使用SNMP监控

1、添加一台主机,使用SNMP接口
在这里插入图片描述

2、修改snmp宏密码(community修改)
在(管理-> 一般->宏定义),密码默认是public,修改为上面snmp的密码123456
在这里插入图片描述
3、常用MIB和OID

ifDescr: .1.3.6.1.2.1.2.2.1.2
ifOperStatus: .1.3.6.1.2.1.2.2.1.8
ifHCInOctets: .1.3.6.1.2.1.31.1.1.1.6
ifHCOutOctets: .1.3.6.1.2.1.31.1.1.1.10

4、添加监控项获取网卡名,使用上面的ifDescr的OID,.2表示第二个网卡,即ens33

snmpwalk -v 2c -c 123456 10.0.0.102 1.3.6.1.2.1.2.2.1.2
snmpwalk -v 2c -c 123456 10.0.0.102 1.3.6.1.2.1.2.2.1.2.2

在这里插入图片描述

名称 get interface name
类型 SNMP V2客户端
键值 net.name[2]
SNMP OID .1.3.6.1.2.1.2.2.1.2.2 这里OID后加了.2表示第二个网卡ens33,最前面的.加不加都行
SNMP community 即密码  使用前面修改的宏{$SNMP_COMMUNITY}
信息类型为字符

在这里插入图片描述
添加监控项后查看更新一下数据,可以看到有监控数据,值为ens33

在这里插入图片描述

5、添加监控项获取网卡状态,使用上面的ifOperStatus的OID .2表示第三个网卡,即ens33的状态

snmpwalk -v 2c -c 123456 10.0.0.102 1.3.6.1.2.1.2.2.1.8
snmpwalk -v 2c -c 123456 10.0.0.102 1.3.6.1.2.1.2.2.1.8.2

在这里插入图片描述

名称 ens33 status
类型 SNMP V2客户端
键值 net.status[ens33]
SNMP OID .1.3.6.1.2.1.2.2.1.8.2 这里OID后加了.2表示第二个网卡ens33
SNMP community 即密码  使用前面修改的宏{$SNMP_COMMUNITY}
信息类型为数字,默认1为up,2为down

在这里插入图片描述
同样的再添加一个监控第三个网卡ens37的监控项,然后更新数据后查看,可以看到最新数据都是1,表示网口是开启的。可以配置触发器,当值不为1时告警,表示网卡down了。

在这里插入图片描述

6、添加监控项获取网卡出流量和入流量

使用上面的ifHCInOctets和ifHCOutOctets的OID .2表示第三个网卡,即ens33的流量

snmpwalk -v 2c -c 123456 10.0.0.102 1.3.6.1.2.1.31.1.1.1.6
snmpwalk -v 2c -c 123456 10.0.0.102 1.3.6.1.2.1.31.1.1.1.6.2

在这里插入图片描述
创建出流量监控项

名称 out traffic ens33 bps
类型 SNMP V2客户端
键值 net.if.out[ens33]
SNMP OID 1.3.6.1.2.1.31.1.1.1.6.2 这里OID后加了.2表示第二个网卡ens33
SNMP community 即密码  使用前面修改的宏{$SNMP_COMMUNITY}
信息类型为数字
单位为bps

在这里插入图片描述
因为是bps,所以需要设置预定步骤,每秒更改的值,并且乘以8
在这里插入图片描述

同样的添加一下入流量的监控项

名称 in traffic ens33 bps
类型 SNMP V2客户端
键值 net.if.in[ens33]
SNMP OID 1.3.6.1.2.1.31.1.1.1.10.2 这里OID后加了.2表示第二个网卡ens33
SNMP community 即密码  使用前面修改的宏{$SNMP_COMMUNITY}
信息类型为数字
单位为bps

在这里插入图片描述
添加后查看最新数据,有出入流量的监控数据
在这里插入图片描述

五、Zabbix SNMP自动发现

1、为什么需要自动发现

  • 假如说交换机有10+个物理网口
  • 需要批量监控所有网口的状态和网口的流量
  • 手动添加比较麻烦,名字还无法对应手动添加监控

2、网络端口发现可以参考系统自带模板Template Module Interfaces SNMPv2中的发现规则

在这里插入图片描述
一般可以直接用自带的snmp模板进行链接使用,这里没用到过先不记了。

Zabbix默认有提供SNMP的模板
Linux SNMP的模板
Cisco SNMP的模板

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐