• Prometheus 采集snmp监控数据


     

    前言snmp_exporter

    snmp_exporter是一个用于收集SNMP(Simple Network Management Protocol)设备指标的开源软件,它是Prometheus生态系统中的一个组件。SNMP是一种用于网络设备监控和管理的协议,通过查询和获取设备的各种信息来提供实时的状态和性能数据。

    snmp_exporter充当一个代理,运行在需要被监控的SNMP设备(如路由器、交换机、防火墙等)的旁边。它会定期向这些设备发送SNMP请求,获取特定的OID(Object Identifier)值,并将其转换为Prometheus可读的指标数据。

    snmp_exporter可以提供各种与SNMP设备相关的指标,如接口流量、CPU利用率、内存使用情况、链路状态、错误计数等。这些指标可以帮助管理员了解设备的运行状况、网络流量情况和性能指标,并及时做出反应。

    通过将snmp_exporter与Prometheus结合使用,管理员可以定期从snmp_exporter暴露的HTTP或HTTPS端点获取SNMP设备的指标数据,并将其存储、分析和可视化。使用Prometheus的查询语言,用户可以构建自定义的监控规则和警报条件,以便快速检测和响应设备问题。

    download  snmp_exporter

    snmp_exporter 一键监控安装脚本

    • /opt/snmp_exporter 目录位置 
    • 端口9116
    • 配置文件/opt/snmp_exporter/snmp.yml
    vim /snmp_exporter.sh
    1. #!/bin/bash
    2. # -*- coding: utf-8 -*-
    3. # Author: make.han
    4. # Email: CIASM@CIASM
    5. # Date: 2024/01/17
    6. OPT_CATALOGUE=/opt
    7. SNMP_EXPORTER_PREFIX=/opt/snmp_exporter
    8. SNMP_EXPORTER_URL=https://github.com/prometheus/snmp_exporter/releases/download/v0.25.0/snmp_exporter-0.25.0.linux-amd64.tar.gz
    9. SNMP_EXPORTER_GZ=snmp_exporter-0.25.0.linux-amd64.tar.gz
    10. SNMP_EXPORTER_DIRECTORY=snmp_exporter-0.25.0.linux-amd64
    11. SNMP_EXPORTER_NEW=snmp_exporter
    12. SNMP_EXPORTER_PORT=9116
    13. install_snmp_exporter (){
    14. if [ ! -d ${SNMP_EXPORTER_PREFIX} ];then
    15. # selinux stop
    16. setenforce 0
    17. sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    18. if [ $? -eq 0 ];then
    19. echo "download snmp_exporter"
    20. curl -o $OPT_CATALOGUE/$SNMP_EXPORTER_GZ $SNMP_EXPORTER_URL
    21. echo "decompression snmp_exporter"
    22. tar -zxf $OPT_CATALOGUE/$SNMP_EXPORTER_GZ -C $OPT_CATALOGUE
    23. echo "rechristen snmp_exporter"
    24. mv $OPT_CATALOGUE/$SNMP_EXPORTER_DIRECTORY $SNMP_EXPORTER_PREFIX
    25. echo "firewall snmp_exporter port"
    26. firewall-cmd --zone=public --add-port=$SNMP_EXPORTER_PORT/tcp --permanent && firewall-cmd --reload
    27. echo "services scenarios snmp_exporter"
    28. cat <<'EOF'>>/usr/lib/systemd/system/snmp_exporter.service
    29. [Unit]
    30. Description=snmp_exporter
    31. Documentation=https://github.com/prometheus/snmp_exporter
    32. After=network.target
    33. [Service]
    34. ExecStart=/opt/snmp_exporter/snmp_exporter \
    35. --config.file=/opt/snmp_exporter/snmp.yml \
    36. --web.listen-address=:9116
    37. Restart=on-failure
    38. [Install]
    39. WantedBy=multi-user.target
    40. EOF
    41. echo "start snmp_exporter"
    42. systemctl daemon-reload
    43. systemctl enable --now snmp_exporter
    44. echo "delete snmp_exporter"
    45. rm -rf $OPT_CATALOGUE/$SNMP_EXPORTER_GZ
    46. echo -e "\033[32mThe snmp_exporter Install Sussess...\033[0m"
    47. else
    48. echo -e "\033[33mThe snmp_exporter Install Failed...\033[0m"
    49. exit 1
    50. fi
    51. else
    52. echo -e "\033[31mThe snmp_exporter Install already...\033[0m"
    53. fi
    54. }
    55. main (){
    56. install_snmp_exporter
    57. }
    58. main

    执行安装

    bash /snmp_exporter.sh

    替换snmp.yml内容信息

    • /opt/snmp_exporter 目录位置
    • 内容信息第一行就是,替换或者更改即可
    • public_v1 认证模式
    • community:snmp的认证密码
    1. auths:
    2. public_v1:
    3. community: 1234.com
    4. version: 1
    5. public_v2:
    6. community: 1234.com
    7. version: 2

     重启服务

    systemctl restart snmp_exporter

    查看采集情况 

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

    查看是否可以看到数据 

    Prometheus 配置文件配置

    • prometheus.yml
    • replacement 是snmp_exporter地址和端口
    1. - job_name: 'snmp_exporter'
    2. scrape_interval: 30s
    3. scrape_timeout: 30s
    4. static_configs:
    5. - targets:
    6. - 192.168.14.2
    7. - 192.168.14.1
    8. metrics_path: /snmp
    9. params:
    10. module: [if_mib]
    11. relabel_configs:
    12. - source_labels: [__address__]
    13. target_label: __param_target
    14. - source_labels: [__param_target]
    15. target_label: instance
    16. - target_label: __address__
    17. replacement: 192.168.11.98:9116

    Grafana 图像展示

    Import>11169>Prometheus

    Import>11169>Prometheus  新版本图形显示比较完整,建议使用新版本

    •  模板下载
    • grafana 版本最大要求7.3.4

    Import>20347>Prometheus  新版本图形显示比较完整,建议使用新版本

    • Grafana 10.2.3 要求
    • 模板地址

  • 相关阅读:
    HTTPS 加密全过程
    docker 部署mysql主从复制
    Java项目如何实现限流?
    【蓝桥杯省赛真题46】python数字币统计 中小学青少年组蓝桥杯比赛 算法思维python编程省赛真题解析
    Git 常用命令
    MySQL启动报错:mysql拒绝访问错误5
    ElementUI中Tree组件使用
    算法训练 第四周
    如何使用SpringBoot处理全局异常
    Android UI 刷新机制
  • 原文地址:https://blog.csdn.net/hanzheng260561728/article/details/127923009