处于某种不可说原因,我需要开发一个内网 IT 设备 运维监控系统(简易版,能抓服务器、交换机、路由器的基本运行数据即可)。
由于要抓交换机和路由器还有一些安全设备,只能选择 snmp 协议!
但!我实在是搞不定了,当我个半吊子深入了解 snmp 协议后,发现这玩意儿简直是个互联网盲区啊! google 、baidu 、doubao 、DeepSeek 都问烂了,头发是一把一把掉啊,我都无法解决这个 OID 的问题!
我了解到 OID 这个东西,每个设备都不一样,在网上有查不到,厂商说是会公布,我也没找到。。。
各位大佬,有没有什么办法能达到接入设备自动抓取 OID 、或者说有没有什么标准库,类似大家都遵守的规则,能让我接入不同的设备都能获取到他的数据?比如:CPU 使用率、内存使用率、硬盘使用率、出入接口流量等等信息呢?
1
stayma OP 对了,我后端用的 golang ,有没有什么三方库能让我站在巨人的肩膀上?
|
![]() |
2
felixcode 1 天前
用 snmpwalk 做调试
|
![]() |
3
wheat0r 1 天前
以用户的身份找厂家要。拿到一个产品的 MIB 基本上可以分析出一整个产品线。
国内厂商非常不喜欢公布 MIB ,都得找渠道要。 |
4
stayma OP 或者说能在哪里收集(白嫖)各种 OID ?
|
![]() |
6
chenplum 1 天前
华为设备可以看产品文档
|
7
pingdog 1 天前 via Android
某些厂家不是固定的,要遍历某些 oid 才出来
CPU 使用率、内存使用率、硬盘使用率、出入接口流量 这些都是公有 oid ,搜下 mib browser 用关键字找到节点 id ,然后遍历就有了 |
8
Azuku 1 天前 via iPhone
网络设备基本上去官网都能找到,关键字是 snmp 或者 mib ,安全设备如果是监测 cpu 内存这些信息的话,大概率是和 linux 一样的 1.3.6.1.4 开头的那一套,实在找不到就去 https://mibbrowser.online/找
|
![]() |
9
PolarBears 1 天前
很多厂商要签 NDA 才给 mib 库,然后有 mib 用起来也很难。我用的是 snmp_exporter 然后要用它的那 generating 去生成配置文件。但有时候因为各种问题会导致它无法解析 mib 文件,需要根据错误自己去手动修改 mib 文件。
|
![]() |
10
v1 1 天前
小厂不会有,大厂看文档,中厂都是公版方案贴标,你只要找一下公版方案的就有了
|
![]() |
11
Victor215 1 天前 via Android
刚好做过这块儿。
CPU 使用率、内存使用率、硬盘使用率 这三个不是 1.3.6.1 常用的 mib ,一般会是私有的节点。 出入接口流量,这个 ifxtable 有的。可以看这个文档: https://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 属于比较古老的协议,每家实现或多或少有点差异。 |
![]() |
12
Victor215 1 天前 via Android
话说这块儿华为的文档确实写的好,是花了钱的😂
|
![]() |
13
kokutou 21 小时 30 分钟前 via Android ![]() 1 自动遍历
2 大厂给的也不一定准,比如沟槽的华为 3 今天是准的,下次系统软件升级就给你改了,比如沟槽的华为 |
![]() |
15
zhangrandl 20 小时 52 分钟前
放弃吧,国内厂商基本上都不按照这一套走,给了文档你都查不出来,还有一些查出来以后是二进制编码,还需要二次解析……完全不可信,当然,大部分 metric 还是有的,比如机器状态,网卡状态这种,但是有一些偏门的,就是不行
|
![]() |
17
winterx 20 小时 6 分钟前
不说一下什么设备,怎么帮你找 mib
深信服、华三、华为都有详细 mib 跟 oid ,再不行可以用 mib browser 或者 snmpwalk 遍历一次 |
![]() |
18
defunct9 18 小时 26 分钟前
|
20
julyclyde 15 小时 55 分钟前
这年头再开发 snmp 类的管理系统有啥意义啊
早都已经成熟过好几遍了 |
21
oom 11 小时 52 分钟前
有目标设备的 ssh 登录权限没,有的话直接上 netmiko ,省去找 OID 的烦恼,不过这是 python 写的,可以整个定时任务将收集到的数据写到库里,golang 提供交互 API
|