1 snmp_exporter
snmp_exporter 的作⽤是将 SNMP 获取到的数据转换为 Prometheus 可以兼容的格式。通过 snmp_exporter,我们就可以监控那些⽀持 SNMP 协议的设备,如交换机、路由器、防⽕墙等。
Prometheus 借助 snmp_exporter 监控⽹络设备需要传递如下⼏个参数:
- target(⽬标设备的地址):需要监控的设备地址。
- module(使⽤的模块):不同的模块,存储了不同设备的指标。(如果没有提供设备对应的指标,则需要定制)
- auth(认证信息):提供SNMP认证信息,如团体名称(community)
交换机地址:192.168.137.1
交换机团体名称:123456
1.1 安装snmp_exporter
1.1.1下载snmp_exporter
访问snmp_exporter的github地址https://github.com/prometheus/snmp_exporter/releases 下载snmp_exporter
#加速地址
wget https://mirror.ghproxy.com/https://github.com/prometheus/snmp_exporter/releases/download/v0.25.0/snmp_exporter-0.25.0.linux-amd64.tar.gz
1.1.2 解压snmp_exporter
tar -xf snmp_exporter-0.25.0.linux-amd64.tar.gz -C /app/module/
ln -s /app/module/snmp_exporter-0.25.0.linux-amd64/ /app/module/snmp_exporter
1.1.3 snmp.yml配置⽂件的团体名称和认证⽅式
(默认的snmp.yml提供的if_mib 模块⾜够使⽤,特殊的指标需要先获取OID,然后通过generator程序来⽣成对应的指标,最后合并到snmp.yml的模块中。)
1.1.4 配置snmp_exporter启动⽂件
vim /usr/lib/systemd/system/snmp_exporter.service
[Unit]
Description=snmp_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
ExecStart=/app/module/snmp_exporter/snmp_exporter --web.listen-address=:9116 --config.file=/app/module/snmp_exporter/snmp.yml
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
Restart=always
[Install]
WantedBy=multi-user.target
1.1.5 启动domain_exporter
systemctl daemon-reload
systemctl start snmp_exporter.service
1.2 配置Prometheus
1、修改Prometheus配置,使⽤relabel_configs做标签替换
- job_name: 'snmp_exporter'
scrape_interval: 60s
scrape_timeout: 30s
metrics_path: /snmp
params:
auth: [public_v2]
module: [if_mib]
static_configs:
- targets:
- 192.168.137.2# SNMP device.
- tcp://192.168.1.3:1161 # SNMP device using TCP transport and custom port.
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.137.131:9116 # The SNMP exporter's real hostname:port.
2、重新加载Prometheus配置⽂件
curl -X POST http://192.168.137.131:9090/-/reload
1.3 导⼊snmp_exporter图形
导⼊ID11169 ;