1、前言

SNMP,即简单网络管理协议,是目前广泛采用的一种,实现对IT基础设施进行统一监控、管理的一种网络协议。随着诸如机房、数据中心等建设日益复杂,对IT设备的统一管理成为必须所具备的一个模块,因此为解决这个需求,SNMP出现在大家的视野中。本文将从Linux+SNMP+zabbix这样的一个简单实验来阐述SNMP的一些基础知识。

2、SNMP基本概念

2.1、SNMP分类

2.1.1、按照版本划分

SNMP分为v1、v2c和v3三个版本,这三个版本主要是管理的粗细程度和SNMP客户端与服务端之间验证方式的区别,可以用以下列表概括:

  • SNMPv1:适用于较小规模网络,基于团体字进行明文验证,安全性较低,支持错误码少;
  • SNMPv2c:适用于较大规模网络,基于团体字进行明文验证,安全性较低,在v1基础上扩充更多错误码;
  • SNMPv3:适用于不同规模网络,基于安全用户名或安全上下文进行加密验证,安全性较高,错误码支持较多。

目前在实际环境内,考虑到运维难度等方面的原因,使用v2c版本的情况是最多的。

2.1.2、按照SNMP模块类型划分

  • agent:运行在被管理设备上的一个SNMP代理模块;
  • NMS:管理IT设备的网络管理系统,如:zabbix、weAdmin和华为eSight等。

2.2、SNMP协议中PDU报文的交互

【本小节内容来源:华为AR接入路由器产品文档】

  • get-request:从代理进程处提取一个或多个参数值。
  • get-next-request:从代理进程处提取紧跟当前参数值的下一个参数值。
  • set-request:设置代理进程的一个或多个参数值。
  • get-response:返回的一个或多个参数值。这个操作是由代理进程发出的,它是对前面3种操作的响应。
  • trap:代理进程主动发出的报文,通知管理进程有某些事件发生

前面3种操作由NMS向Agent发出,后面2种操作由Agent向NMS发出。

2.3、MIB基本介绍

MIB,即管理信息数据库,是由agent维护的,用于被NMS读取的一些数据对象。通常情况下,NMS所展现出的,例如CPU、内存占用率等数值都是读取自MIB。
MIB是一种树状的数据结构,它包含不同标准组织所定义数据对象,较为完整的树状图如下所示:

通常情况下,我们以对象后面的数字来定义某一个数据对象,这被称为OID。SNMP协议所管理的对象,是图中internet节点(表示为1.3.6.1或iso.3.6.1)的下面所有部分(图中阴影部分),这一点可以在运行SNMP的Linux设备中,通过snmpwalk命令体现出来,而对于其他设备,例如运行SNMP的路由交换设备,则可以用wireshark工具查看SNMP协议交互的PDU报文体现,如下图所示:


站在SNMP运维的角度,MIB可分为公有MIB和私有MIB两大部分,公有MIB是绝大多数IT设备都必须支持的标准,而私有MIB则定位在MIB树状结构的private(1.3.6.1.4)部分,如1.3.6.1.4.1.2代表的是IBM公司的私有节点,1.3.6.1.4.1.9代表的是思科公司的私有节点。

2.4、带外管理和带内管理

在对IT设备进行管理的方式上,大体上分为带外管理和带内管理两种。其中带外管理指的是管理流量业务流量物理隔离,走不同的网络链路;而带内管理指的是管理流量和业务流量共同使用同一条网络链路。
绝大多数情况下,采用的方式都是带外管理,带外管理的优点在于管理流量不会占用业务的网络带宽资源,另外在业务网络中断的情况下,独立的带外管理链路可以作为远程维护的一个“逃生通道”。

3、实验

3.1、实验拓扑与zabbix官方安装方法链接

本文将采用三台Linux服务器来进行实验,其中一台Linux服务器已经部署了zabbix,另外两台是被zabbix管理的Linux服务器,具体的部署步骤可以参阅zabbix官网,并根据实际的Linux发行版进行安装步骤,相关链接为:https://www.zabbix.com/cn/download 。

3.2、配置SNMPv2c(以UOS企业版/Ubuntu/debian为例)

(1)输入“sudo apt install snmpd”命令,在debian系Linux上安装snmpd;
(2)输入“sudo vim /etc/snmp/snmpd.conf”命令编辑配置文件,进行下列修改:
找到agentaddress字段,将IP地址从127.0.0.1修改为0.0.0.0


找到“view systemonly included”字段,根据实际情况添加所需要监控的OID数值,通常情况下,为方便配置,都是在该位置添加view systemonly included .1这样的配置”


(3)SNMP的配置文件修改完成后,输入命令“systemctl restart snmpd”重启SNMP服务,重启完成后,配置生效;

(4)通过命令”snmpwalk -v 2c -c public 192.168.68.139 .1”测试SNMP的MIB能否通过192.168.68.139这个地址读取到,如果读取到,则说明SNMP配置无误;

(5)登录zabbix,选择“配置—>主机”,然后选择“创建主机”;

(6)随后,在弹出的对话框的“主机”选项卡中,根据实际情况填入如下信息

(7)在对话框的模板选项卡中添加Linux的SNMP模板,并保存;

(8)等待一段时间后,发现“SNMP”标志变为绿色后,则表示SNMP所有配置完成并对接成功;

3.3、配置SNMPv3(以UOS欧拉版、龙晰版/openEuler/CentOS为例)

(1)输入命令“sudo yum install net-snmp-utils net-snmp”安装SNMP服务;
(2)输入命令“systemctl stop snmpd”确保SNMP的服务处于停止的状态;
(3)输入命令“net-snmp-create-v3-user -ro -A authpasswd -a MD5 -X privpasswd -x DES yanmuhuan”设置SNMPv3的密码、完整性校验方式、加密密钥、加密方式和安全用户名等(需注意的是,debian系Linux的SNMP并不带有net-snmp-create-v3-user命令,如要使用,则需要通过命令“sudo apt install libsnmp-dev”额外安装libsnmp-dev);

(4)”net-snmp-create-v3-user”命令配置成功的反馈如下:

(5)输入命令“systemctl start snmpd”重新启动SNMP服务;
(6)输入命令“snmpwalk -v 3 -u yanmuhuan -a MD5 -A authpasswd -x DES -X privpasswd -l authPriv 192.168.68.136”,验证SNMP是否配置成功,如果配置成功,则会表现如下:

(7)配置zabbix的部分和配置SNMPv2c的部分大体相同,只不过在添加主机时,弹出的对话框应选择SNMPv3,并做如下配置,注意模板仍旧选择Linux的SNMP模板:


上图中,zabbix面板出现了安全级别这样的一个选项,该项有三个选项可供选择,分别为noAuthNoPriv(不认证不加密)、authNoPriv(认证但不加密)和authPriv(既认证又加密),此处我们选择authPriv。
(8)所有配置完成后,等待一段时间,直到SNMP标志变为绿色。

4、注意事项

4.1、通用环境下

(1)在根据zabbix官方网站安装zabbix时,应该尽可能使用新的普通版本或新的LTS版本,否则将很可能出现zabbix和数据库版本不一致的情况,从而安装失败。这是因为所有Linux公网上的软件仓库都是该Linux发行版的最新版本,此时如果使用旧版zabbix,就会因为数据库版本过新而不兼容;
(2)配置SNMPv3的密码时,位数默认不要少于8位数,否则将出现以下错误:

(3)要保证被管理设备的161端口可以正常访问。

4.2、针对部分最小化安装的Linux发行版(如UOS企业版)在内网环境且没有软件仓库的情况下

针对这样的情况,通行的做法是,使用另一台同CPU架构且可以连接互联网的主机,安装同版本操作系统后,来拉取SNMP的安装包和依赖。需要注意的是,部分Linux发行版(如UOS企业版)在选择最小化安装和基本安装两种方式下,系统所自带的依赖是不同的,因此,如果需要在最小化安装的Linux系统上离线安装SNMP,那么用于在线拉取的Linux也应该是最小化安装,否则在最小化系统上进行离线安装时,将出现依赖不全的情况。

通过Linux+SNMP+zabbix的实验理解SNMP协议相关推荐

  1. zabbix 5系列之snmp监控详解

    更多精彩Zabbix文章.技术交流.免费技术培训加微号NateIT,免费获取zabbix安装.配置.优化技术培训视频 官网:http://ywzs.hanyunintel.com 首先,谢谢原作者: ...

  2. 在RedHat Linux系统中安装和配置snmp服务

    在RedHat Linux系统中安装和配置snmp服务 检查系统是否安装snmp服务 # rpm -qa|grep snmp net-snmp-5.3.2.2-17.el5 net-snmp-perl ...

  3. linux系统snmpd服务内存偏高,Red Hat Enterprise Linux 5.4 64位系统SNMP内存泄漏(上)

    1.SNMP的内存泄漏问题 SNMP的内存泄漏问题,我最早是在CDN的一台负载均衡调度机上看到的.一个snmpd进程,占用的VIRT将近4G.重启snmpd后VIRT降到150M左右,机器为Red H ...

  4. 简单研究用于监控数通设备的Zabbix模板:Template Module Interfaces SNMP与Template Module EtherLike-MIB SNMP

    本人的工作环境中已经有一套Zabbix平台用于监控1000台数量以上的交换机,该运维平台主要有如下作用: 查找某个区域的某台设备IP地址以方便管理员远程登录.查看/修改设备配置: 通过SNMP检测设备 ...

  5. 华为HCNA之SNMP基础配置实验

    导语: SNMP 是专门设计用于在 IP 网络管理网络节点(服务器.工作站.路由器.交换机及HUBS等)的一种标准协议,它是一种应用层协议. SNMP 使网络管理员能够管理网络效能,发现并解决网络问题 ...

  6. linux文件系统只有几k,关于Linux文件系统的的简单理解和认识

    关于Linux文件系统的的简单理解和认识 关于文件系统的运作,这与操作系统带的档案数据有关.例如Linux操作系统的档案权限(rwx)与文件属性(拥有者,群组,时间参数等).文件系统通常会将这两部分的 ...

  7. Linux 文件区块连续吗,关于Linux文件系统的的简单理解和认识

    关于Linux文件系统的的简单理解和认识 关于文件系统的运作,这与操作系统带的档案数据有关.例如Linux操作系统的档案权限(rwx)与文件属性(拥有者,群组,时间参数等).文件系统通常会将这两部分的 ...

  8. 【正点原子Linux连载】第六十四章 Linux 多点电容触摸屏实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  9. Linux分布式应用 Zabbix监控配置[添加主机 自定义监控内容 邮件报警 自动发现/注册 代理服务器 高可用集群]

    -------------------- 添加 zabbix 客户端主机 -------------------- 关闭防火墙 systemctl disable --now firewalld se ...

  10. c++ 共享内存_关于Linux共享内存的实验 [二] - 原因

    关于Linux共享内存的实验 [一] 上文采用的"删文件"和"杀进程"的方法主要是为了快速演示实验现象,但这种做法不利于通过调试手段进一步探究其内在的逻辑.为此 ...

最新文章

  1. 【Android 安全】DEX 加密 ( Application 替换 | 分析 BroadcastReceiver 组件中调用 getApplication() 获取的 Application )
  2. cpu烤机工具_MySQL常用工具选择和建议
  3. 英语语法---名词详解
  4. “宜小搭”萌新报到,请多关照!
  5. 计算机不同用户信息互通吗,迷你世界电脑版和手机版通用吗 二者账号数据互通吗...
  6. 两周内股指见底概率大
  7. 失控的热潮:为什么说特斯拉的“电池日”名副其实?
  8. 安全站点导航(感谢backlion整理)
  9. 精细化运营探索:基于响应模型场景化应用
  10. 那些让我印象深刻的bug--05
  11. pdfkit批量转换html文件为pdf
  12. 诺基亚Symbian算不算智能手机?
  13. linux打开80端口及80端口占用解决办法
  14. 无法定位程序输入点 except_电脑定时程序
  15. 场景中配置阴影(个人笔记)
  16. 金豺优化(GJO)算法(含MATLAB代码)
  17. 计算机按维修级别,什么是“计算机一级维修”
  18. 如何监测大数据舆情信息动态的方法技巧
  19. JVM 源码解读之 CMS 何时会进行 Full GC
  20. HTML标记【表格的建立】!

热门文章

  1. MacOS 10.15编译openjdk8u详细过程
  2. 笔记本Win10 装 ubuntu 20.04双系统踩坑记录:装Ubuntu系统+装显卡驱动(华硕天选2 配置intel i9+ RTX 3060+1T固态硬盘(两块512G固态硬盘))
  3. 企业信息化将推动企业组织结构和管理模式的变革
  4. bitbake的原理介绍, 使用方法, 编译脚本的编写方法
  5. 凑数算法 c语言,算法题解 - 牛客编程巅峰赛S1第4场 - 黄金钻石组
  6. android jpeg图片变圆,Android 将一张图片变为圆形图片
  7. qq 能上但是打不开网页
  8. 透明网桥的自学习算法
  9. PdgCntEditor一键生成PDF书签目录
  10. git 拉取最新代码覆盖本地