首页 科普 资讯 养生 问答 找医院 相关问答
首页> 问答

SNMP Exporter详细解析(1)

发布网友 发布时间:2024-09-29 17:02

我来回答

1个回答

热心网友 时间:2024-09-29 17:47

SNMP协议


SNMP协议,在此不做过多介绍,详情可参阅华为对SNMP协议的介绍。


support.huawei.com/ente...


具体RFC文档如下:SNMP相关的RFC很多,可根据实际需求查看,但在本文中不需要深入探讨。


rfc2cn.com/rfc3416.html


SNMP的组织结构


SNMP由三部分组成:SNMP内核、管理信息结构SMI和管理信息库MIB。


SNMP内核负责协议结构分析,根据分析结果执行网管动作;SMI是一种通用规则,用于命名对象、定义对象类型,以及编码对象和对象值;MIB在被管理实体中创建命名对象,即一个实例。SMI规定游戏规则,在规则基础上由MIB实现实例化,而SNMP则是实例化的终极执行BOSS。


常见术语:


企业码:组成OID对象的厂商遵守的标识


iana.org/assignments/en...


比如华为的企业码:2011


SMI编号结构


iana.org/assignments/sm...


如果需要深入研究SNMP协议,建议阅读TCP/IP详解卷1:协议


MIB介绍


MIB全称Management Information Base,其主要负责为所有的被管理网络节点建立一个接口,本质上类似于IP地址的一串数字。例如,在使用SNMP时,我们经常看到这样一组数字串:


在这串数字中,每个数字都代表一个节点,其含义可参考下表:


显然,这个数字串可以直接理解为系统的名字。在实际使用中,我们将其作为参数读取该节点的值,如果有写权限的话还可以更改该节点的值,因此,SNMP为系统管理员提供了一套极为便利的工具。但在一般使用中,我们一般不使用这种节点的表达方式,而是使用更为容易理解的方式,对于上面的例子,其往往可以使用SNMPv2-MIB::sysName.0所替代。你可能会想,系统能理解它的含义吗?那你就多虑了,一般在下载SNMP工具包的时候还会下载一个MIB文件包,其提供了所有节点的树形结构。在该结构中可以方便地查找对应的替换表达。


NetSNMP介绍


NetSNMP是一个简单的SNMP协议library库,提供支持SNMP的一套应用程序和开发库,包括代理端软件和管理端查询工具。通俗地理解,SNMP可以看作是一个C/S结构。在客户机中,一般会部署一个snmpd的守护进程,而在服务端(管理端)会下载一个SNMP工具包,这个包中包含了许多用于管理客户端网络节点的工具,例如get、set、translate等等。下图可能会帮助你更清晰地理解这个概念:


上图中,161表示的是双方进行通信时所用的默认端口号,被管理端会打开一个守护进程,负责监听161端口发来的请求;管理端会提供一个SNMP工具包,利用工具包中的命令可以向被管理端的161端口发送请求包,以获取响应。除此之外,管理端还会开启一个SNMPTrapd守护进程,用于接受被管理端向自己的162端口发送来的snmptrap请求,这一机制主要用于被管理端的自动报警中,一旦被管理端的某个节点出现故障,系统会自动发送snmptrap包,从而远端的系统管理员可以及时得知问题。


我们在Linux中,针对SNMP协议的操作(解析MIB文件)主要依赖这个NetSNMP库,相当于中间代理人的角色,下面我简单画出关于NetSNMP和SNMP Exporter以及配置生成器之间的关系。Telegraf默认支持NetSNMP和gosmi,默认使用gosmi,而SNMP Exporter默认使用NetSNMP的库,暂不支持gosmi。


SNMP Exporter读取snmp.yml配置文件信息,snmp.yml配置文件中定义了需要采集指标的OID信息和数据类型以及结构,但是有一点需要明确,手写snmp.yml是一个吃力不讨好的事情,对工程师非常不友好,那工具开发者其实也是想到了这一点,故提供了一套SNMP Exporter配置文件生成器工具,可以通过配置文件生成器生成自己需要的自定义的snmp.yml配置文件,通过自己自定义指标可以得到相关指标数据,然后在通过数据做可视化和监控告警。


SNMP Exporter默认使用GET BULK遍历数据,NetSNMP有实现对给定管理树进行遍历的工具,如snmpbulkwalk、snmpbulkget等等。


snmpbulkwalk和snmpwalk的区别:


snmpwalk是一个逐步遍历的工具,它会从指定的根OID(对象标识符)开始,按照字典序逐步获取下一个OID的值,直到遍历完整个MIB树或者达到指定的终止条件。这意味着snmpwalk逐步获取每个OID的值,一个接一个。


snmpbulkwalk是一种更为高效的遍历工具,它使用了SNMP的BulkWalk操作,允许一次性获取多个OID的值,减少了往返的SNMP请求次数。这使得snmpbulkwalk在获取大量数据时更为高效。


SNMP Exporter如果使用SNMP v1版本,默认使用的是snmpwalk,如果使用的是SNMP v2c版本或v3,默认使用snmpbulkwalk。


SNMP Exporter部署


SNMP Exporter采集器目前只支持snmpd 161端口,暂不支持snmptrapd即162端口,端口可自行修改哦,建议使用默认端口。


SNMP Exporter推荐使用源码包编译安装使用,在这里我主要介绍两种部署安装方式,源码编译安装和Docker Compose部署。


Docker Compose部署


新建初始化挂载目录:


创建compose.yml,并启动SNMP Exporter,Docker引擎安装可前往改篇文章查看具体步骤:


启动


源码编译安装


主要介绍CentOS 7.9系统和Ubuntu 22.04.2 LTS中部署SNMP Exporter


到此就完成了SNMP Exporter源码编译安装。


添加systemd服务管理


如果为了安全,需要使用普通用户执行,可以新建普通用户snmp_exporter


SNMP Exporter配置生成器部署


上面已经完成SNMP Exporter的部署,前面说了,手写snmp.yml是非常不友好的。


故我们需要一款配置生成工具进行配置生成,只需要我们填写一些关键的信息即可得到我们想要的配置文件,比如想要采集交换机的指标,采集无线网络AC和AP的指标,其他SNMP协议设备指标。


SNMP Exporter提供了一套这样的配置生成器工具,接下来就来看下如何部署,其实SNMP Exporter主要难点就是在处理配置生成工具和协调mib库上。


部署SNMP Exporter配置生成器


CentOS 7.9系统会出现curl版本太低导致make generator mibs错误的问题


运行过程说明:


配置生成器从generator.yml中读取简化的收集指令并把相应的配置写入snmp.yml。snmp_exporter可二进制执行文件仅使用snmp.yml文件从开启了snmp的设备收集数据。


示例01:


args参数解析


示例02:


flags参数解析


--snmp.mibopts的作用:


这个参数具体什么作用呢?主要解决的是有些mib库文件中,某些厂商并没有按照默认标准来,而是在MIB文件中使用了特殊符号,我们应该指定MIB解析的参数,比如某些MIB文件描述中有下划线_,那么如果使用某个指标去解析这个库应该是失败的,需要添加--snmp.mibopts=u,允许使用下划线。


目录规划


建议不同类型的设备都有一个目录,其中包含不同设备类型的mibs目录、生成器可执行文件和generator.yml配置文件。这是为了避免MIB定义中的名称空间冲突。仅在设备的mibs目录中保留所需的MIB文件。


下一篇以实际案例讲解具体场景,包括如何规划目录,如何生成配置,上述参数如何具体使用。

华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 记一次容器环境下出现 Address not available 西安隆麦商贸有限公司怎么样? 陕西加麦恒丰生态农业有限公司怎么样? 西安比特麦信息科技有限公司怎么样? 着有几个多音字呢? 读大学要不要转户口?转的话有什么优点和缺点? 关于迁户口的问题,明白人进! 我大学升学的时候把户口从老家迁到了学校所在地,现在毕业了,由于不留在... 在校大学生为上学户口已被迁到北京,是否还享受原居住地的福利政策? 我是在校大学生,现在大四,户口在上大学时迁到了学校所在地,现在家里要... 入大学 将户口迁到大学所在地 究竟好不好?尤其是农村户口迁移 许多人成... 任意依恋金色的爱 你吃了吗我可还没哪个韩剧中出现的台词 任意依恋韩文插曲 心酸到痛苦的爱情 H4组合成员 过敏性鼻炎的患者怎么检查过敏原 过敏性鼻炎检查过敏原的方法 鼻炎过敏原怎么查 过敏性鼻炎过敏原怎么检测 过敏性鼻炎怎么查过敏原 runc hang 导致 Kubernetes 节点 NotReady 我计算机专业大专毕业从事建筑行业6年了,能去参加建筑施工的中级职称... 图片如何变成psd格式可修改版图片怎么改为psd 人是从猿猴进化来的吗 人是猿猴进化而来的吗 西游记里面第55回的情节有哪些? 2023年泰国入境政策最新消息(泰国签证最新政策2023年) 泰国入境最新消息2021 56个国家实行免签 2023年出国旅游是否需要隔离措施? 不用手机号怎么申请扣扣 ...善于抢篮板,进攻手段单一,请问我该打什么位置?... ...弹跳较好,带球技术一般,后仰跳投比较准,请问打什么位置较好... 梭形细胞瘤的治疗方案 梭形细胞肿瘤的治疗是什么 梭形细胞肿瘤死亡率 恶性梭形细胞肿瘤的治疗 弟弟学街舞一年级写事作文150字一年级写事作文 怎么知道自己是否喜欢上一个人? 请问 上海地铁2号线和8号线的末班车时间。。我因异地上班,想知道具体时 ... 浦东机场和虹桥机场哪个离上海体院近
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com