深色模式
SNMP Exporter 网络设备
交换机、路由器没有 /metrics,靠 SNMP 协议暴露数据。SNMP Exporter 把它翻译成 Prometheus 指标。
适用环境
- 网络设备开启了 SNMP(v2c 或 v3)
- 已知 community 字符串与设备 IP
bash
# 用 snmpwalk 验证设备 SNMP 可读(需先装 net-snmp)
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.1.01
2
2
操作步骤
1. 下载 SNMP Exporter 与 generator
bash
VERSION=v0.26.0
cd /opt
wget https://github.com/prometheus/snmp_exporter/releases/download/${VERSION}/snmp_exporter-${VERSION}.linux-amd64.tar.gz
tar xf snmp_exporter-${VERSION}.linux-amd64.tar.gz1
2
3
4
2
3
4
2. 用 generator 生成配置(以 if_mib 为例)
bash
cd snmp_exporter-${VERSION}.linux-amd64
# 编辑 generator.yml 定义 auth 与 modules(if_mib 内置)
go run github.com/prometheus/snmp_exporter/generator generate
# 生成 snmp.yml 后拷贝
cp snmp.yml /etc/prometheus/snmp.yml1
2
3
4
5
2
3
4
5
3. 启动并接入 Prometheus
yaml
- job_name: snmp
metrics_path: /snmp
params:
module: [if_mib]
static_configs:
- targets: ['192.168.1.1'] # 设备 IP
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: localhost:91161
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
验证
promql
# 接口流量(字节)
ifHCInOctets
ifHCOutOctets1
2
3
2
3
常见坑
generator 需要 Go 环境
生成配置依赖 Go 工具链,建议在构建机生成后只把 snmp.yml 传到生产。
community 别写进明文仓库
SNMP v2c 的 community 等同明文密码,用 v3 或密钥管理,别提交到代码库。