首页/网络/常用端口速查/9116 snmp_exporter 网络设备指标

9116 snmp_exporter 网络设备指标

Prometheus 生态抓取 SNMP 设备的桥梁:把交换机/路由器的 OID 指标转成 /metrics,网络监控标准组件。

常用端口速查网络更新于 2026-10-13

SNMP 采集桥

Prometheus 生态抓取 SNMP 设备的桥梁:snmp_exporter 默认监听 9116,收到带 target 与 module 参数的请求后,按对应 MIB 模块轮询交换机、路由器、UPS 等设备的 OID,再把结果整理成 /metrics 供 Prometheus 抓取。

基本信息

服务snmp_exporter
协议对外 TCP/HTTP(9116);对设备用 SNMP(UDP 161)
默认端口9116
配置依赖snmp.yml,由 generator 工具按 MIB 生成
暴露面仅监控网段

典型使用场景

  • 网络设备接口流量、丢包与错误计数接入监控
  • 交换机端口状态与光模块温度告警
  • UPS、精密空调等机房设备的状态采集
  • 多厂商统一采集:按厂商 MIB 生成不同 module
  • 结合告警做趋势判断:是链路问题还是设备问题

部署与验证

部署与验证
snmp_exporter --config.file=snmp.yml
curl -s 'http://mon01:9116/snmp?target=10.0.0.1&module=if_mib' | head -c 300
# Prometheus 侧按 multi-target 模式配置:
# params:  {module: [if_mib]}
# targets: ['10.0.0.1']

排障与核对

检查项做法异常表现
导出器存活curl -s http://mon01:9116/无响应:进程未起或端口冲突
采集结果带 target/module 参数请求超时:设备侧 SNMP 未开或被 ACL 拦
MIB 覆盖检查 snmp.yml 的 module 列表指标缺失:所需 OID 不在该 module 内
认证方式community 或 v3 用户名与密钥v3 认证失败:返回为空且日志有鉴权错误
snmp.yml 由独立工具按 MIB 文件离线生成,更换厂商设备或升级固件后要重新生成并重载配置;Prometheus 侧一般按设备地址展开采集任务,配置里必须带上 module 参数,否则采集结果为空。

SNMP 侧的加固

SNMP 本身没有强认证:v2c 的 community 字串等同口令且明文传输,出厂默认 public 人人皆知。生产环境应使用 SNMPv3 的认证与加密选项、只允许监控主机轮询、并在设备侧配置 ACL;不参与采集的网络面一律关闭 SNMP。

采集超时常见两类原因:设备 ACL 只放通了某台监控主机,或单台设备 OID 过多导致轮询超时。前者改 ACL,后者要裁剪 module 里的 OID,或按设备规模重新评估并发与超时参数。
生产沿用默认 public 的 SNMPv2c:任何内网主机都能读取设备拓扑与接口表,为下一步攻击画出完整地图。

易错点

  • snmp.yml 生成后长期不更新:新设备或新固件指标缺失,却被当成设备故障排查
  • 一个采集任务塞入过多 OID:轮询超时,结果被误判成设备离线
  • community 沿用 public 且不做来源限制:网络拓扑可被任意内网主机读取
  • 只监控设备不监控导出器自身:导出器挂掉时曲线变成空值,容易与设备静默混淆

数据来源与参考

  • prometheus/snmp_exporter 项目文档(默认 9116)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌