1 snmp_exporter

snmp_exporter 的作⽤是将 SNMP 获取到的数据转换为 Prometheus 可以兼容的格式。通过 snmp_exporter,我们就可以监控那些⽀持 SNMP 协议的设备,如交换机、路由器、防⽕墙等。

Prometheus 借助 snmp_exporter 监控⽹络设备需要传递如下⼏个参数:

  1. target(⽬标设备的地址):需要监控的设备地址。
  2. module(使⽤的模块):不同的模块,存储了不同设备的指标。(如果没有提供设备对应的指标,则需要定制) 
  3. 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 ;

Prometheus监控之snmp_exporter⽹络设备_linux