SNMP设备
监控 SNMP设备
- SNMP主要用于网络设备的管理
- SNMP代理进程使用的端口为 UDP的161
SNMP概述
- SNMP是简单网络管理协议,它属于TCP/IP五层协议中的应用层协议
SNMP的基本思想
- 为不同种类、型号和不同厂家生产的设备,定义一个统一的接口协议,使得管理员可以通过这个接口对网络设备进行统一管理
SNMP的协议版本
- SNMP v1:采用团体名(Community Name)认证,团体名用来定义 SNMP 与NMS或Agent的关系,如果SNMP报文携带的团体名没有得到设备的认可,该报文将被丢弃,团体名起到了类似密码的作用,用来限制SNMP 与NMS或Agent的访问
- SNMP v2c:也采用团体名认证,它在监控SNMP v1的同时又扩充了SNMP v1的功能,它提供了更丰富的错误代码且能够更细致的区分错误
- SNMP v3:提供了基于用户的安全模型的认证机制,用户可以设置认证和加密功能,认证用于验证报文发送方的合法性,避免非法用户的访问,加密是对NMS和Agent之间的传输报文进行加密,以免被窃听。通过有无认证和有无加密等功能组合 可以为SNMP 与NMS或Agent之间的通信提供更高的安全性
SNMP的组织机构
- SNMP网络元素分为NMS和Agent两种:
- NMS(Network Management Station)网络管理站,是运行SNMP客户端管理程序的工作站,能够提供非常友好的人机交互界面,方便网络管理员完成绝大多数的网络管理工作
- Agent 是驻留在设备上的一个进程,负责接受、处理来自NMS的请求报文。在一些紧急情况下 如接口状态发生改变等,Agent也会主动通知NMS
- SNMP、NMS、Agent三者间的关系:
- NMS是SNMP网络的管理者,Agent是SNMP网络的被管理者
- NMS和Agent之间通过SNMP协议来交互管理信息
- 一套完整的SNMP系统主要包括以下几个方面:
- SNMP报文协议
- SMI 管理信息结构,一套公用的结构和表示符号
- MIB 管理信息库,管理信息库包含所有代理进程的所有可被查询和修改的参数
- OID,一个OID是一个唯一的键值对,用于标识具体某一个设备的某个具体信息,如:交换机某个端口信息、设备名称等
SNMP MIB
-
MIB被划分为若干个组,如system、interface、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
-
这里以Centos主机来模拟SNMP设备
准备基于Centos的SNMP
#安装snmp
[root@snmp-dev ~]# dnf -y install net-snmp
--------------------------------------------------------------------------------
#修改配置文件
[root@snmp-dev ~]# vim /etc/snmp/snmpd.conf
...
com2sec notConfigUser default testcom #设置团体认证 默认为public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser #将团体名notConfigUser关联至组notConfigGroup
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1 #创建一个view,并对其授权可访问的OID范围
view systemview included .1. #自定义授权,否则zabbix server无法获取数据,
#.1.表示.1.开头的都授权
access notConfigGroup "" any noauth exact systemview none none #将组notConfigGroup关联至systemview 从而完成对组的授权
...
--------------------------------------------------------------------------------
#启动服务
[root@snmp-dev ~]# systemctl enable --now snmpd
--------------------------------------------------------------------------------
#观察udp/161端口是否开启
[root@snmp-dev ~]# ss -nul
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 0.0.0.0:161 0.0.0.0:*
...测试OID
- 使用snmpwalk测试
- snmpwalk是SNMP的一个工具,它使用SNMP的GET请求查询指定OID(协议中的对象标识),入口的所有OID树信息,并显示给用户
- 通过snmpwalk也可以查看支持SNMP协议的设备的一些其他信息,如:cisco交换机或路由器IP地址、内存使用率等,也可用来协助开发SNMP功能
安装snmpwalk包
#安装
[root@zabbix-server ~]# dnf -y install net-snmp-utils
#获取帮助
[root@zabbix-server ~]# snmpwalk -h
...测试SNMP数据采集
snmpwalk -v 2c -c testcom 10.0.0.28 .1.3.6.1.4.1.2021.10.1.3.1准备监控模板
- 这里以zabbix自带的Template OS Linux SNMP模板举例
- 配置 –> 模板 –> Template OS Linux SNMP –> 宏 –> 模板 宏
- 宏:{$SNMP_COMMUNITY}(替代默认继承模板的宏)
- 值:testcom(执行SNMP的团体名称)
web界面配置
- 配置 –> 主机
- 主机:
- 主机名称:如:test-switch(这个名称已经不重要了 因为设备上没有安装zabbix agent)
- 可见的名称:如:test-switch
- 群组:如:centos交换机
- Interfaces:类型:SNMP IP地址:10.0.0.28 端口:161 SNMP version:SNMPv2
- 模板:
- Link new templates:Template OS Linux SNMP
- 添加
- 主机:
web界面测试
…