当前位置: 首页 > news >正文

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/prometheusports:- "9090:9090"volumes:- /home/kali/docker/plmxs/prometheus:/etc/prometheuscommand:- '--config.file=/etc/prometheus/prometheus.yml'snmp-exporter:image: prom/snmp-exporterports:- "9116:9116"environment:- SNMP_EXPORTER_TARGETS=192.168.1.1:161,192.168.1.2:161  # Replace with your device IPsgrafana:image: grafana/grafanaports:- "3000:3000"environment:- GF_SECURITY_ADMIN_PASSWORD=admin  # Change the passworddepends_on:- prometheus

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

  • 2、创建 Prometheus 配置文件
    在/home/kali/docker/plmxs/prometheus目录下创建 prometheus.yml 文件,配置 Prometheus 的监控目标。以下是一个示例,配置里面的snmp-exporter写你搭建平台的IP地址:
global:scrape_interval: 15sscrape_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 distrosgit 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 支持v3community: 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: 25retries: 3timeout: 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

相关文章:

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、选个文件夹作为自建…...

Github 2023-12-31 开源项目日报 Top10

根据Github Trendings的统计,今日(2023-12-31统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目3Swift项目1Java项目1HTML项目1Astro项目1Python项目1C项目1Dart项目1Jupyter Notebook项目1C项…...

管程-第三十三天

目录 为什么要引入管程 管程的定义和基本特征 用管程解决生产者消费者问题 结论 本节思维导图 为什么要引入管程 原因:在解决进程的同步与互斥问题时,信号量机制存在编写困难和易出错的问题 能不能设计一种机制,让程序员写程序时不再需…...

嵌入式中断理解

一、概念 中断: 在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。 中断优先级&#x…...

React16源码: Hooks源码实现

Hooks 1 )概述 Hooks 在 React16.7版本出现的新功能Hooks 改变了整体应用开发的模式,同时开发体验会和以前会变得不一样Hooks 让函数组件具有类组件的能力 在 function component 里面没有this无法保存 state通过 Hooks可以让 function component 代替…...

华为端口隔离高级用法经典案例

最终效果: pc4不能ping通pc5,pc5能ping通pc4 pc1不能和pc2、pc3通,但pc2和pc3能互通 vlan batch 2 interface Vlanif1 ip address 10.0.0.254 255.255.255.0 interface Vlanif2 ip address 192.168.2.1 255.255.255.0 interface MEth0/0/1 i…...

java项目启动jar包启动参数设置端口号

默认启动 java -jar myapp.jar 指定配置文件 java -jar myapp.jar --spring.profiles.activedev 指定端口号 java -jar myapp.jar --server.port8080 后台启动 nohup java -jar myapp.jar --server.port8080 >outlog.log 2>&1 &...

【数据结构和算法】寻找数组的中心下标

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 前缀和的解题模板 2.1.1 最长递增子序列长度 2.1.2 寻找数组中第 k 大的元素 2.1.3 最长公共子序列…...

多粒度在研究中的应用

FontDiffuser: One-Shot Font Generation via Denoising Diffusion with Multi-Scale Content Aggregation and Style Contrastive Learning 存在的问题 现有的字体生成方法虽然取得了令人满意的性能,但在处理复杂字和风格变化较大的字符(尤其是中文字符)时&#x…...

Docker命令---查看容器日志

介绍 使用docker命令查看容器输出的日志 示例 docker logs 容器ID...

Spring Boot 基于Redisson实现注解式分布式锁

依赖版本 JDK 17 Spring Boot 3.2.0 Redisson 3.25.0 源码地址&#xff1a;Gitee 导入依赖 <properties><redisson.version>3.25.0</redisson.version> </properties><dependencies><dependency><groupId>org.projectlombok</…...

Javascript 正则表达式零宽断言

在介绍正则表达式零宽断言这个概念之前&#xff0c;先看一下以下这道有关 javascript 正则表达式的题目&#xff1a; 登录注册流程是前端最常见的业务流程之一&#xff0c;注册流程少不了密码强弱度校验&#xff0c;请实现对密码的校验&#xff0c;要求满足&#xff1a; 包含大…...

Chocolatey

Chocolatey Software | PHP (Hypertext Preprocessor) 8.3.1 msi安装包https://github.com/chocolatey/choco/releases/download/2.2.2/chocolatey-2.2.2.0.msi 设置/安装 巧克力味Chocolatey CLI &#xff08;choco&#xff09;设置/安装 要求 受支持的 Windows 版本Windows …...

雍禾植发成毛发行业标杆!雍禾医疗获“年度医疗大健康消费企业”

近期&#xff0c;以“新视野 新链接”为主题的2023 EDGE AWARDS全球创新评选榜单正式发布。该评选由钛媒体发起&#xff0c;聚焦大健康产业&#xff0c;由权威行业专家、王牌分析师、专业投资机构、用户代表共同评审&#xff0c;兼顾综合专业性、影响力、创新性三大维度评选而出…...

Linux内核--进程管理(十二)共享内存和信号量

目录 一、引言 二、基础知识 三、统一封装的接口 ------>3.1、kern_ipc_perm 四、共享内存的创建和映射 ------>4.1、创建共享内存 ------>4.2、共享内存的映射 五、信号量的创建和使用 ------>5.1、信号量的创建 ------>5.2、信号量的初始化 ------…...

java 构造方法

构造方法 1、什么是构造方法&#xff0c;有什么用&#xff1f; 构造方法是一个比较特殊的方法&#xff0c;通过构造方法可以完成对象的创建&#xff0c;以及实例变量的初始化。 换句话说&#xff1a;构造方法是用来创建对象&#xff0c;并且同时给对象的属性赋值。 注意&#x…...

CISSP 第2章: 人员安全和风险管理概念

第二章 人员安全和风险管理概念 2.1 促进人员安全策略 构建工作描述方面的重要因素包括: 职责分离: 把关键的、重要的和敏感工作任务分配给若干不同的管理员或高级执行者&#xff0c;防止共谋 工作职责:最小特权原则 岗位轮换:提供知识冗余&#xff0c;减少伪造、数据更改、偷…...

前端八股文(CSS篇)一

目录 1.px和em的区别 2.介绍下BFC及其应用 3.介绍下粘性布局&#xff08;sticky&#xff09; 4.清除浮动的方法 5.如何用css或js实现多行文本溢出省略效果&#xff0c;考虑兼容 6.如何触发重排和重绘&#xff1f; 7.重绘与重排的区别&#xff1f; 8.说说两种盒模型以及区…...

游戏加速器LSP/DLL导致WSL.EXE无法打开问题修复!

解决办法&#xff1a; https://github.com/microsoft/WSL/issues/4177#issuecomment-597736482 方法一&#xff1a;&#xff08;管理员身份&#xff09; netsh winsock reset 方法二&#xff1a; WSCSetApplicationCategory 函数设置LSP加载权限 bool NoLsp(const wchar_t* …...

宏电股份5G RedCap终端产品助力深圳极速先锋城市建设

12月26日&#xff0c;“全城全网&#xff0c;先锋物联”深圳移动5G-A RedCap助力深圳极速先锋城市创新发布会举行&#xff0c;宏电股份携一系列5G RedCap终端产品应邀参与创新发布会&#xff0c;来自全国5G生态圈的各界嘉宾、专家学者济济一堂&#xff0c;共探信息化数字化创新…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构

React 实战项目&#xff1a;微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇&#xff01;在前 29 篇文章中&#xff0c;我们从 React 的基础概念逐步深入到高级技巧&#xff0c;涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

python打卡第47天

昨天代码中注意力热图的部分顺移至今天 知识点回顾&#xff1a; 热力图 作业&#xff1a;对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图&#xff0c;展示模…...

el-amap-bezier-curve运用及线弧度设置

文章目录 简介示例线弧度属性主要弧度相关属性其他相关样式属性完整示例链接简介 ‌el-amap-bezier-curve 是 Vue-Amap 组件库中的一个组件,用于在 高德地图 上绘制贝塞尔曲线。‌ 基本用法属性path定义曲线的路径,可以是多个弧线段的组合。stroke-weight线条的宽度。stroke…...