zabbix7 ---- SNMP
zabbix7 ---- SNMP
SNMP
SNMP是英文"Simple Network Management Protocol"的缩写,SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议, SNMP主要用于网络设备的管理。
SNMP的基本思想:为不同种类的设备、不同厂家生产的设备、不同型号的设备,定义为一个统一的接口和协议,使得管理员可以使用统一的外观对这些需要管理的网络设备进行管理。通过网络,管理员可以管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。
SNMP协议是TCP/IP协议簇的一个应用层协议,在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案,由于SNMP的简单性,在Internet时代得到了蓬勃的发展, 1992年发布了SNMPv2版本,以增强SNMPv1的安全性和功能, SNMP的协议版本目前有SNMP-1、 SNMPv2c和SNMP v3三种版本,其具体差别如下:
- SNMP-1采用团体名(Community Name)认证,团体名用来定义SNMP NMS和SNMP Agent的关系,如果SNMP报文携带的团体名没有得到设备的认可,该报文将被丢弃,团体名起到了类似子密码的作用,用来限制SNMP NMS对SNMP Agent的访问。
- SNMP -2c也采用团体名认证,它在兼容SNMP-1的同时又扩充了SNMP v1的功能,它提供了更多的操作类型(GetBuk和InformRequest) 、支持更多的数据类型(Counter64等) 、提供了更丰富的错误代码且能够更细致地区分错误。
- SNMPv3提供了基于用户的安全模型(USM, User-Based Security Model)的认证机制,用户可以设置认证和加密功能,认证用户验证报文发送方的合法性,避免非法用户的访问,加密则是对NMS和Agent之间的传输报文进行加密,以免被窃听。通过有无认证和有无加密等功能组合,可以为SNMP NMS和SNMP Agent之间的通信提供更高的安全性。
SNMP工作机制
SNMP的工作机制SNMP网络元素分为NMS和Agent两种:
- NMS (Network Management Station, 网络管理站)是运行SNMP客户端程序的工作站,能够提供非常友好的人机交互界面,方便网络管理员完成绝大多数的网络管理工作。
- Agent是驻留在设备上的一个进程,负责接收、处理来自NMS的请求报文。在一些紧急情况下:如接口状态发生改变等,Agent也会主动通知NMS。
- NMS是SNMP网络的管理者,Agent是SNMP网络的被管理者。NMS和Agent之间通过SNMP协议来交互管理信息。
SNMP数据交互
SNMP管理进程与代理进程之间为了交互信息,定义了5种报文:
- get-request操作:从代理进程处提取一个或多个参数值。
- get-next-request操作:从代理进程处提取一个或多个参数的下一个参数值。
- set-request操作:设置代理进程的一个或多个参数值。
- get-response操作:返回一个或多个参数值。这个操作是由代理进程发出的。
- trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
SNMP组织结构
一套完整的SNMP系统主要包括以下几个方面:
- SNMP报文协议。
- 管理信息结构(SMI, Structure ofManagement Information),一套公用的结构和表示符号。
- 管理信息库(MIB,Management Information Base),管理信息库包含所有代理进程的所有可被查询和修改的参数。
- OID (Object Identifers), 一个OID是一个唯一的键值对,用于标识具体某一个设备的某个具体信息(对象标识),如端口信息、设备名称等。
SNMP MIB
所谓MIB管理信息库,就是所有代理进程包含的、并且能够被管理进程进行查询和重置的信息的集合。MB是基于对象标识树的,对象标识是一个整数序列,中间以""分割,这些整数构成一个树型结构,类似于DNS或Unix的文件系统MIB被划分为若干个组,如 svstem、 inter faces、at(地址转换)和p组等。iso.org.dod. Internet private. enterprises(1.3.6.1.4.1)这个标识,是给厂家自定义而预留的,比如华为的为1.3.61.4.1.2011华三的为1.36.14.1.25506
SNMP OID
http://www.ttlsa.com/monitor/snmp-oid/
示例
net-snmp
vim /etc/snmp/snmpd.conf
com2sec notConfigUser default public #public设置一个密码,便于认证,无密码不安全
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser #notConfigUser关联至组notConfigUser
#view systemview included .1.3.6.1.2.1.1 #只有定义发view相关的值,可以采集相关的数据,若没有授权,则无法获取数据,也可以指定一定的范围
#view systemview included .1.3.6.1.2.1.25.1.1 #创建一个View,并对其授权可访问的OID范围
view systemview included .1
access notConfigGroup "" any noauth exact systemview none none #将notConfigGroup关联至systemview从未完成组授权
systemctl start snmpd
net-snmp-utils
snmpwalk -h
-h:显示帮助。
-v:指定SNMP的版本,1或者2c或者3。
-c:指定连接设备SNMP密码。
-v:显示当前snmpwak命令行版本。
-r:指定重试次数,默认为0次。
-t:指定每次请求的等待超时时间,单位为秒,默认为3秒。
-1:指定安全级别: noAuthNoPrix lauthNoPriv lathPriv-a:验证协议: MD51SHA,只有-1指定为authNoPrix或authPRix时才变为。
-A:验证字符串。只有-1指定为authNoPrivy或authPriv时才需要。
-x:加密协议: DES,只有-1指定为authPriv时才需要。
-X:加密字符串。只有-1指定为autPriv时才需要。
snmpbulkwalk -v 2c -c pass123
snmpbulkwalk -v 2c -c pass123 192.168.10.15
snmpbulkwalk -v 2c -c pass123 192.168.10.15 .1.3.6.1.2.1.1
snmpbulkwalk -v 2c -c pass123 192.168.10.15 .1
zabbix 修改模板snmp密码{$SNMP_COMMUNITY}
模板下面的子模块也需要更改
网络设备基本都采用SNMP V2协议去采集监控数据
关联的模板也需要更改密码
更改SNMP密码
配置snmp v2模板
zabbix web 添加一台主机使用snmp协议