一、SNMP服务的安装
SNMP简单介绍
Simple Network Management Protocol。简单网络管理协议
使用snmp协议可以方便我们监控服务器、交换机、路由器等
SNMP监控实战说明
监控Linux、Windows服务器建议使用Agent
网络设备一般使用SNMP,监控网络接口存活和网络接口流量
使用SNMP监控说明
被监控服务器需要安装snmp服务
路由器、交换机开启SNMP服务器(有命令可以直接开启),需要自己设置SNMP的密码
Zabbix服务器通过snmp协议去监控
Snmp的版本
v1基于community进行控制访问
v2c也是基于community进行控制访问,但比v1增强了部分功能。实战中使用v2c
v3加强了认证
实战
Zabbix服务器:192.168.237.49
被监控的服务器:192.168.237.50
Centos Snmp服务器安装(被监控服务器安装)
yum install -y net-snmp net-snmp-utils
Snmp的配置/etc/snmp/snmpd.conf
com2sec notConfigUser default shijiangepwd
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 [email protected]
dontLogTCPWrappersConnects yes
Snmp配置详解
com2sec notConfigUser default shijiangepwd #用户名、访问IP白名单(default代表所有ip访问)、密码
group notConfigGroup v2c notConfigUser #组名、SNMP版本、用户名
view systemview included .1.3.6.1 #视图名称、包含(incl/excl)、subtree
access notConfigGroup "" any noauth exact systemview none none #组名、内容、SNMP版本any所有、认证等级、systemview读权限、无写权限、无trapper权限
Snmp开启
systemctl start snmpd
systemctl enable snmpd
验证Snmp服务
进程
端口
日志
二、SNMP服务的OID和MIB
SNMP的监控基于OID
OID,Object Identifier对象标识符
OID由数字组成比较难记
使用Oid获取监控数据
snmpwalk -v 2c -c shijiangepwd 192.168.237.50 .1.3.6.1.4.1.2021.10.1.3 #监控cpuload
.1.3.6.1.2.1.2 #监控网卡信息
SNMP基于Oid,Oid树图的理解有助于权限的开通
Oid的难点
难记,数字都比较难记。例如IP一般我们记不住,记域名
类似我们会记得www.baidu.com,不会去记IP
但实际访问却是基于IP的,实际监控是基于OID的
MIB库
由于Oid的难记,产生了MIB。类似DNS服务器,把域名和IP的关系对应上
MIB,Management Information Base,管理信息库。把oid跟名字对应起来
MIB库有多个,网络相关的mib,系统相关的mib库
使用名字获取监控信息
laLoad
ifDescr
ifOperStatus
ifHCOutOctets 网口出的总流量(byte)
ifHCInOctets 网口入的总流量
bps(单位时间)
网卡流量监控注意,建议使用64位的去监控
32位比较容易溢出,2^32 4294967296
64位的监控准(ifHCInOctets、ifHCOutOctets)
路由器、交换机通常监控重点:
网口的状态、网口的流量
三、ZABBIX使用SNMP监控实战
Zabbix添加主机有多种接口
Agent
Jmx
Ipmi
SNMP,Zabbix的SNMP帮我们封装好的,能够直接获取监控值
使用SNMP接口监控服务器实战,交换机路由器类似
使用Snmp接口
端口使用默认161端口
Snmp密码修改(默认public,community修改)
管理-> 一般->宏定义
{$SNMP_COMMUNITY} = shijiangepwd
Snmp监控的添加
ifDescr: 1.3.6.1.2.1.2.2.1.2.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
Zabbix使用SNMP监控
网卡名测试
网卡流量、网卡存活
添加一个网口,网口是否开启
四、ZABBIX使用SNMP的自动发现
为什么需要自动发现
假如说交换机有10+个物理网口
需要批量监控所有网口的状态和网口的流量
手动添加监控
ifOperStatus: 1.3.6.1.2.1.2.2.1.8 .1 .2 .3等等,网口状态
ifHCInOctets: 1.3.6.1.2.1.31.1.1.1.6
ifHCOutOctets: 1.3.6.1.2.1.31.1.1.1.10
比较麻烦,名字还无法对应
Zabbix使用snmp自动发现
discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2]
snmp自动发现自动添加索引变量:{#SNMPINDEX}
Zabbix使用自动发现监控网卡状态和流量
discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2]
ifOperStatus:1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}
ifHCInOctets:1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}
ifHCOutOctets:1.3.6.1.2.1.31.1.1.1.10.{#SNMPINDEX}
使用模板监控
Zabbix默认有提供SNMP的模板
Linux SNMP的模板
Cisco SNMP的模板
模板监控规范可参照zabbix监控模板