SNMP配置命令
在交换机上执行以下命令以开启SNMP功能:
snmp-agent
snmp-agent community read xxxxx # 配置设备的读/写团体名
snmp-agent sys-info version v2c v3 # 配置SNMP的协议版本为SNMPv2c和v3
snmp-agent protocol source-status all-interface # 重点!开启SNMP使用所有端口接收和响应SNMP请求(新版本交换机必须开启)
snmp-agent trap enable # 开启设备发送Trap报文的功能
构建 snmp.yml
参考:robotneo/networkdevice-monitor: 基于Prometheus + SNMP Exporter对网络设备的监控 (GitHub)
# 拉取snmp_exporter
git clone https://github.com/prometheus/snmp_exporter.git
# 进入目录snmp_exporter
cd snmp_exporter/
# 构建snmp_exporter二进制可执行文件
go build
# 进入生成器目录构建二进制可执行文件
cd snmp_exporter/generator/
# 国内网络下载MIB公共库报错,忽略即可
make generator mibs
# 在mibs文件夹中放入对应品牌的无线设备MIB库文件
# 把对应的generator.yml文件放入 ../snmp_exporter/generator/ 目录下
export MIBDIRS=/root/snmp_exporter/generator/mibs
./generator --fail-on-parse-errors generate
mv snmp.yml ../
手动修改snmp.yml认证配置
配置 snmp_exporter
参考:prometheus/snmp_exporter: SNMP Exporter for Prometheus (GitHub)
创建一个 systemd 服务单元文件,例如 /etc/systemd/system/snmp_exporter.service
:
[Unit]
Description=SNMP Exporter
After=network-online.target
[Service]
Restart=on-failure
ExecStart=/home/prometheus/snmp_exporter/snmp_exporter --config.file=/home/prometheus/snmp_exporter/snmp.yml
[Install]
WantedBy=multi-user.target
配置 Prometheus
在 Prometheus 的配置文件 prometheus.yml
中添加以下内容:
#### switch ####
- job_name: 'switch'
scrape_interval: 30s
static_configs:
- targets:
- 192.168.99.1
- 192.168.99.2
metrics_path: /snmp
params:
module: [hw_interface, hw_common]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 'exporter:9116' # SNMP exporter.
Grafana面板
您可以使用以下Grafana面板来监控SNMP数据: