处于某种不可说原因,我需要开发一个内网 IT 设备 运维监控系统(简易版,能抓服务器、交换机、路由器的基本运行数据即可)。
由于要抓交换机和路由器还有一些安全设备,只能选择 snmp 协议!
但!我实在是搞不定了,当我个半吊子深入了解 snmp 协议后,发现这玩意儿简直是个互联网盲区啊! google 、baidu 、doubao 、DeepSeek 都问烂了,头发是一把一把掉啊,我都无法解决这个 OID 的问题!
我了解到 OID 这个东西,每个设备都不一样,在网上有查不到,厂商说是会公布,我也没找到。。。
求助
各位大佬,有没有什么办法能达到接入设备自动抓取 OID 、或者说有没有什么标准库,类似大家都遵守的规则,能让我接入不同的设备都能获取到他的数据?比如:CPU 使用率、内存使用率、硬盘使用率、出入接口流量等等信息呢?

对了,我后端用的 golang ,有没有什么三方库能让我站在巨人的肩膀上?

用 snmpwalk 做调试

以用户的身份找厂家要。拿到一个产品的 MIB 基本上可以分析出一整个产品线。
国内厂商非常不喜欢公布 MIB ,都得找渠道要。

或者说能在哪里收集(白嫖)各种 OID ?

他们不给。。。。

华为设备可以看产品文档

某些厂家不是固定的,要遍历某些 oid 才出来
CPU 使用率、内存使用率、硬盘使用率、出入接口流量
这些都是公有 oid ,搜下 mib browser 用关键字找到节点 id ,然后遍历就有了

网络设备基本上去官网都能找到,关键字是 snmp 或者 mib ,安全设备如果是监测 cpu 内存这些信息的话,大概率是和 linux 一样的 1.3.6.1.4 开头的那一套,实在找不到就去 mibbrowser.online/找

很多厂商要签 NDA 才给 mib 库,然后有 mib 用起来也很难。我用的是 snmp_exporter 然后要用它的那 generating 去生成配置文件。但有时候因为各种问题会导致它无法解析 mib 文件,需要根据错误自己去手动修改 mib 文件。

小厂不会有,大厂看文档,中厂都是公版方案贴标,你只要找一下公版方案的就有了

刚好做过这块儿。
CPU 使用率、内存使用率、硬盘使用率 这三个不是 1.3.6.1 常用的 mib ,一般会是私有的节点。
出入接口流量,这个 ifxtable 有的。可以看这个文档: info.support.huawei.com/hedex/api/pages/EDOC1100277650/AZM1016J/04/resources/mib/yunshan/dc_8090_IF-MIB_mibtable_1.3.6.1.2.1.31.1.1.html
当然,最好是问厂家要,snmp 属于比较古老的协议,每家实现或多或少有点差异。

话说这块儿华为的文档确实写的好,是花了钱的😂

1 自动遍历
2 大厂给的也不一定准,比如沟槽的华为
3 今天是准的,下次系统软件升级就给你改了,比如沟槽的华为

换供应商了吧,或者良心 wx 离职了

放弃吧,国内厂商基本上都不按照这一套走,给了文档你都查不出来,还有一些查出来以后是二进制编码,还需要二次解析……完全不可信,当然,大部分 metric 还是有的,比如机器状态,网卡状态这种,但是有一些偏门的,就是不行

现在也只有 SNMP 协议能通杀这些设备呢。没办法

不说一下什么设备,怎么帮你找 mib

深信服、华三、华为都有详细 mib 跟 oid ,再不行可以用 mib browser 或者 snmpwalk 遍历一次

完全没有。得自己找
rendoumi.com/posts/20240108-snmp_network/

对的,好像是这个命令可以把设备所有 oid 列出来。要不就得找厂家提供了。

这年头再开发 snmp 类的管理系统有啥意义啊
早都已经成熟过好几遍了