Prometheus SNMP Exporter

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Prometheus SNMP Exporter相关的知识,希望对你有一定的参考价值。

参考技术A Prometheus SNMP Exporter 项目地址

SNMP Exporter 从 SNMP 服务中采集信息提供给 Promethers 监控系统使用。
有两个部分,执行提供数据的 exporter,以使用的 generator
(取决于netsnmp)生成配置为 exporter 提供配置。

默认情况下,snmp exporter 从 snmp.yml 文件中读取配置。此文件不是手动编写的,而是使用 generator 为您生成它。
默认配置的 snmp.yml 配置文件中包含各种公共硬件,对于这些硬件,mib对常见设备通用,使用 snmp v2 GETBULK 可以遍历它们。
除了最简单的设置外,您还需要使用生成器。需要定制哪些对象是遍历的,使用非公开 MIB 或指定认证参数。

SNMP Exporter 需要将地址作为参数传递,这可以通过重新标记来完成。
示例:

这种配置允许 Prometheus 提供调度和服务自动发现,这与不能在我们要从其获取指标的机器上运行 Exporter 的所有其他 Exporter 有所不同。

为 Counter64 较大的值提供准确的计数器,exporter 将为每 2^53 值自动包装,以避免 64 位浮点舍入。
要禁用此功能,请使用命令行参数 --no-snmp.wrap-large-counters 。

Prometheus 采集snmp监控数据

download  snmp_exporter

snmp_exporter 一键监控安装脚本

vim /snmp_exporter.sh
#!/bin/sh
# -*- coding: utf-8 -*-
# Date: 2022/11/18

echo "download snmp_exporter"
sleep 2
wget -N -P /root/ https://github.com/prometheus/snmp_exporter/releases/download/v0.20.0/snmp_exporter-0.20.0.linux-amd64.tar.gz

echo "decompression snmp_exporter"
sleep 2
tar -zxf /root/snmp_exporter-0.20.0.linux-amd64.tar.gz -C /usr/local/

echo "services scenarios snmp_exporter"
sleep 2
cat >>/usr/lib/systemd/system/snmp_exporter.service<<EOF
[Unit]
Description=snmp_exporter
Documentation=https://github.com/prometheus/snmp_exporter
After=network.target

[Service]
ExecStart=/usr/local/snmp_exporter-0.20.0.linux-amd64/snmp_exporter \\
--config.file=/usr/local/snmp_exporter-0.20.0.linux-amd64/snmp.yml \\
--web.listen-address=:9116
--snmp.wrap-large-counters \\
--log.level=info
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

echo "firewall snmp_exporter port"
sleep 2
firewall-cmd —zone=public —add-port=9116/tcp —permanent && firewall-cmd —reload

echo "start snmp_exporter"
sleep 2
systemctl daemon-reload && systemctl enable --now snmp_exporter

执行安装

sh /snmp_exporter.sh

配置snmp.yml 

vim /usr/local/snmp_exporter-0.20.0.linux-amd64/snmp.yml
  • 增加以下内容到6088行
 version: 2  # SNMP版本,交换机配置多少就是多少,如果配置all ,那就随意选择
 auth:
    community: 1234.com # SNMP 认证密钥

重启服务

systemctl restart snmp_exporter

查看采集情况 

curl 'http://YOU_snmp_exporter_IP:9116/snmp?module=if_mib&target=YOU_SW_IP'

查看是否可以看到数据 

  • http://YOU_snmp_exporter_ip:9116
  • Target #是交换机IP
  • Module #是你的snmp.yml 配置文件内部定义的名称

Prometheus 配置文件配置

  • prometheus.yml
  • replacement 是snmp_exporter地址和端口
  - job_name: 'snmp_exporter'
    scrape_interval: 30s
    scrape_timeout: 30s
    static_configs:
      - targets: 
        - 192.168.14.3
        - 192.168.14.2
        - 192.168.14.1
    metrics_path: /snmp
    params:
      module: [if_mib] 
    relabel_configs:
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance
    - target_label: __address__
      replacement: YOU_snmp_exporter_IP:9116

以上是关于Prometheus SNMP Exporter的主要内容,如果未能解决你的问题,请参考以下文章

prometheus snmp_exporter使用

Prometheus 采集snmp监控数据

Prometheus SNMP Exporter

Prometheus 采集snmp监控数据

Prometheus:帮助编辑/配置 Cisco MIB 的 snmp_exporter 的 generator.yml 文件

prometheus监控系统之snmp-exporter部署来监控交换机端口流量