linux下docker搭建Prometheus +SNMP Exporter +Grafana进行核心路由器交换机监控

一、安装 Docker 和 Docker Compose

https://docs.docker.com/get-docker/

bash 复制代码
# 安装 Docker
sudo apt-get update
sudo apt-get install -y docker.io

# 安装 Docker Compose
sudo apt-get install -y docker-compose

二、创建配置文件及测试平台是否正常

  • 1、选个文件夹作为自建Prometheus +SNMP Exporter +Grafana的储存目录,如/plmxs,在plmxs文件夹下创建一个 docker-compose.yml 文件

创建一个 docker-compose.yml 文件,定义 Prometheus、SNMP Exporter 和 Grafana 的容器配置。以下是一个简单的示例:

bash 复制代码
version: '3'

services:
  prometheus:
    image: prom/prometheus
    ports:
      - "9090:9090"
    volumes:
      - /home/kali/docker/plmxs/prometheus:/etc/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'

  snmp-exporter:
    image: prom/snmp-exporter
    ports:
      - "9116:9116"
    environment:
      - SNMP_EXPORTER_TARGETS=192.168.1.1:161,192.168.1.2:161  # Replace with your device IPs

  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin  # Change the password
    depends_on:
      - prometheus

这个示例配置文件中包括了 Prometheus、SNMP Exporter 和 Grafana 的基本设置。请根据实际情况修改 IP 地址、端口和其他参数。

  • 2、创建 Prometheus 配置文件
    在/home/kali/docker/plmxs/prometheus目录下创建 prometheus.yml 文件,配置 Prometheus 的监控目标。以下是一个示例,配置里面的snmp-exporter写你搭建平台的IP地址:
bash 复制代码
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'snmp-exporter'
    static_configs:
      - targets: ['snmp-exporter:9116']
  # Add more jobs for different devices if needed


  • 3、启动容器
    在包含 docker-compose.yml 文件的目录下运行以下命令启动容器:
bash 复制代码
docker-compose up -d

这会启动 Prometheus、SNMP Exporter 和 Grafana 容器。

查看下运行状态 sudo docker-compose ps -a 三个端口都正常运行了。

  • 4、访问 Grafana
    打开浏览器访问 Grafana 控制台(默认地址:http://localhost:3000/)。使用默认的用户名 admin 和密码 admin 登录。在 Grafana 中配置 Prometheus 数据源,然后创建仪表板并添加 SNMP Exporter 提供的指标。请注意,如果你的 Docker 主机不在本地,替换配置中的 IP 地址为你的 Docker 主机 IP。

    添加Prometheus数据源
    Configuration -> Data Sources ->add data source -> Prometheus
    找不到我们就直接搜索Data Sources


    直接填入Prometheus的访问地址,搞定!

三、路由器交换机配置snmp

先试试 snmpv2c

1、先创建acl

然后设置路由器交换机snmmp
snmp-agent sys-info version all 或者只启用v2版本 snmp-agent sys-info version v2
snmp-agent community read 【团体名】 acl 2001 设置只读团体名

使用linux的snmpwalk工具验证设置是否正常
snmpwalk 设备IP -c 团体名 -v 2c -c后面跟你设置的团体名 -v跟snmp版本

正常。结果发现SNMP Exporter不对,应该是需要配置snmp.yml

按照https://github.com/prometheus/snmp_exporter/tree/main/generator下载H3C的MIB自己生成snmp.yml

H3C的MIB下载

就下载个ComwareV5 v7的MIB吧

下载地址:

ComwareV5https://www.h3c.com/cn/d_200905/635750_473262_0.htm

ComwareV7https://www.h3c.com/cn/d_201806/1089291_473262_0.htm

参考文章:
https://mp.weixin.qq.com/s/qUywfXoqAvm7brXyjLYA7A SNMP Exporter手把手教学,自定义采集网络设备监控数据
https://www.runoob.com/docker/docker-compose.html docker-compose.yml 的配置

使用generator需要先把snmp_exporter下载到本地然后编译generator

Due to the dynamic dependency on NetSNMP, you must build the generator yourself.

bash 复制代码
# Debian-based distributions.
sudo apt-get install unzip build-essential libsnmp-dev # Debian-based distros
# Redhat-based distributions.
sudo yum install gcc gcc-g++ make net-snmp net-snmp-utils net-snmp-libs net-snmp-devel # RHEL-based distros

git clone https://github.com/prometheus/snmp_exporter.git
cd snmp_exporter/generator
make generator mibs

编译好后的目录

我这里是新建了个mibsc文件夹(中文意思mib生成)把运行命令git clone https://github.com/prometheus/snmp_exporter.git下载的snmp_exporter放在了这个用来生成h3c的snmp.yml文件。

这里我选择ComwareV7解压得到的MIB用编译后得到的generator进行生成snmp.yml

bash 复制代码
./generator --fail-on-parse-errors generate -m [你设备的mib解压后的路径] -g generator_h3c.yml[你写的规则] -o snmp_h3c.yml[生成的snmp.yml文件路径]
相关推荐
wdxylb1 小时前
云原生俱乐部-shell知识点归纳(1)
linux·云原生
飞雪20072 小时前
Alibaba Cloud Linux 3 在 Apple M 芯片 Mac 的 VMware Fusion 上部署的完整密码重置教程(二)
linux·macos·阿里云·vmware·虚拟机·aliyun·alibaba cloud
路溪非溪2 小时前
关于Linux内核中头文件问题相关总结
linux
木易双人青2 小时前
01-Docker-简介、安装与使用
运维·docker·容器
Lovyk5 小时前
Linux 正则表达式
linux·运维
Fireworkitte6 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9006 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char6 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
淮北也生橘128 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
AI大模型10 小时前
基于 Docker 的 LLaMA-Factory 全流程部署指南
docker·llm·llama