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

一、安装 Docker 和 Docker Compose

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

# 安装 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 的容器配置。以下是一个简单的示例:

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 地址、端口和其他参数。
先创建文件

mkdir -pv /home/kali/docker/plmxs/prometheus/{data,conf,rules,targets}
mkdir -pv /home/kali/docker/plmxs/grafana/data
mkdir -pv /home/kali/docker/plmxs/alertmanager/{data,conf}

在这里插入图片描述

  • 2、创建 Prometheus 配置文件
    在/home/kali/docker/plmxs/prometheus目录下创建 prometheus.yml 文件,配置 Prometheus 的监控目标。以下是一个示例,配置里面的snmp-exporter写你搭建平台的IP地址:
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 文件的目录下运行以下命令启动容器:
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
在这里插入图片描述

使用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.

# 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

./generator  --fail-on-parse-errors generate -m [你设备的mib解压后的路径] -g generator_h3c.yml[你写的规则] -o snmp_h3c.yml[生成的snmp.yml文件路径]

============================
前面我们下载了h3c的ComwareV7的MIB并且编译了generator,现在我们按照官方的File Format来写一个generator_h3c.yml文件
https://github.com/prometheus/snmp_exporter/tree/main/generator 官方的File Format
在这里插入图片描述
正好群里的大佬告诉我H3C有在线的MIB查询,我们在上面选择好设备来边查询边写我们需要监控哪些东西
在这里插入图片描述
在这里插入图片描述
我这里用snmpwalk工具对设备发送OID去测试设备支不支持这个OID去查询信息,以免出现写的东西不起作用。WQ我这边的设备官网上的OID都不支持,干。还好有标杆的神器https://www.h3c.com/cn/Service/Document_Software/Software_Download/Other_Product/H3C_Software/BG/BG/ 下载安装,用everything搜索MIB exe
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

欸,真香。用这个h3c路由器交换机的常用MIB节点OID都可以用!!!
文件名:generator-h3c.yml

auths:    # 认证模块
  public_v2:  # 认证模块名称 可自定义 在prometheus.yml中需要配置参数auth对应这个名称
    version: 2  # 定义SNMP Agent的版本为v2c 支持v3
    community: public   # SNMP Agent的团体名设置和AC中设置的团体名需一致

modules:    # 指标模块
  H3C:   # 指标模块名称 可自定义
    walk:
      - 1.3.6.1.2.1.1.5                       # sysName - 系统名称
      - 1.3.6.1.2.1.4.20.1.2                  # ipAdEntzb - 三层接口索引
      - 1.3.6.1.2.1.2.2.1.2                   # ifDescr - 接口描述
      - 1.3.6.1.4.1.25506.8.35.18.4.3.1.4     # hh3cLswSlotCpuRatio - 单板CPU利用率
      - 1.3.6.1.4.1.25506.8.35.9.1.2.1.2      # hh3cDevMPowerStatus - 设备电源状态
      - 1.3.6.1.2.1.2.2.1.8                   # ifOperStatus - 接口当前状态
      - 1.3.6.1.2.1.2.2.1.13                  # ifInDiscards - 端口入方向丢弃报文数
      - 1.3.6.1.2.1.2.2.1.14                  # ifInErrors - 端口入方向错误报文数
      - 1.3.6.1.2.1.2.2.1.19                  # ifOutDiscards - 端口出方向丢弃报文数
      - 1.3.6.1.2.1.2.2.1.20                  # ifOutErrors - 端口出方向错误报文数

    max_repetitions: 25
    retries: 3
    timeout: 5s

试下试下

  ./generator --fail-on-parse-errors generate -m /home/kali/docker/plmxs/h3cmib/h3cprmib -m /home/kali/docker/plmxs/h3cmib/h3cpublicmib -g /home/kali/docker/plmxs/h3cmib/generator-h3c.yml -o /home/kali/docker/plmxs/h3cmib/snmp.yml

在这里插入图片描述
ok,生成snmp.yml正常,扔到挂载挂载snmp.yml的位置上,重启容器试试
在这里插入图片描述在这里插入图片描述
ok,访问http://IP:9116/ 写个H3C路由器IP试下
在这里插入图片描述
在这里插入图片描述
正常。

正在持续编写完善中。。。。。。
https://mp.weixin.qq.com/s/NnbZRGbbG_HtH15N6MLdBg

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你!要在Linux搭建PrometheusGrafana,你可以按照以下步骤进行操作: 1. 首先,确保你已经在Linux服务器上安装了DockerDocker Compose。如果没有安装,可以参考官方文档进行安装。 2. 创建一个新的目录来存放PrometheusGrafana的配置文件。进入该目录并创建一个名为docker-compose.yml的文件。 3. 打开docker-compose.yml文件,并添加以下内容: ```yaml version: '3' services: prometheus: image: prom/prometheus volumes: - ./prometheus:/etc/prometheus command: - --config.file=/etc/prometheus/prometheus.yml ports: - 9090:9090 grafana: image: grafana/grafana ports: - 3000:3000 ``` 上述配置将创建两个服务:PrometheusGrafanaPrometheus服务将监听9090端口,Grafana服务将监听3000端口。 4. 在同一目录下创建一个名为prometheus目录,用于存放Prometheus的配置文件。进入prometheus目录,并创建一个名为prometheus.yml的文件。 5. 打开prometheus.yml文件,并添加以下内容: ```yaml global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] ``` 上述配置将告诉Prometheus每隔15秒抓取一次本地主机的metrics信息。 6. 返回到docker-compose.yml文件所在目录,并在终端中运行以下命令启动PrometheusGrafana容器: ``` docker-compose up -d ``` 这将在后台启动容器。 7. 等待一段时间,然后在浏览器中访问http://服务器IP:3000,会看到Grafana的登录页面。 8. 使用默认用户名(admin)和密码(admin)登录Grafana。 9. 在Grafana中,点击左侧面板上的"Configuration"选项,然后选择"Data Sources"。 10. 点击"Add data source"按钮,选择"Prometheus"作为数据源类型。 11. 在"HTTP"选项卡中,输入Prometheus服务的URL,即http://localhost:9090。 12. 点击"Save & Test"按钮,确保连接正常。 现在,你已经成功搭建PrometheusGrafana。你可以开始创建仪表盘和监控指标了。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值