赞
踩
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
创建一个 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}
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'snmp-exporter'
static_configs:
- targets: ['snmp-exporter:9116']
# Add more jobs for different devices if needed
docker-compose up -d
这会启动 Prometheus、SNMP Exporter 和 Grafana 容器。
查看下运行状态 sudo docker-compose ps -a
三个端口都正常运行了。
先试试 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。