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

# 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试下
在这里插入图片描述
在这里插入图片描述
正常。

正在持续编写完善中。。。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/228847.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

simulink代码生成(六)——多级中断的配置

假如系统中存在多个中断,需要合理的配置中断的优先级与中断向量表;在代码生成中,要与中断向量表对应;中断相关的知识参照博客: DSP28335学习——中断向量表的初始化_中断向量表什么时候初始化-CSDN博客 F28335中断系…

WPF Button使用漂亮 控件模板ControlTemplate 按钮使用控制模板实例及源代码 设计一个具有圆角边框、鼠标悬停时颜色变化的按钮模板

续前两篇模板文章 模板介绍1 模板介绍2 WPF中的Button控件默认样式简洁,但可以通过设置模板来实现更丰富的视觉效果和交互体验。按钮模板主要包括背景、边框、内容(通常为文本或图像)等元素。通过自定义模板,我们可以改…

jmeter的常用功能及在测试中的基本使用和压测实战

Jmeter基础功能 了解Jmeter的常用组件 元件:多个类似功能组件的容器(类似于类) 一:Test Plan(测试计划) 测试计划通常用来给测试的项目重命名,使用多线程脚本运行时还可以配置线程组运行方式…

SQLSERVER排查CPU占用高

操作系统是Windows2008R2 ,数据库是SQL2008R2 64位 64G内存,16核CPU 硬件配置还是比较高的,他说服务器运行的是金蝶K3软件,数据库实例里有多个数据库 现象 他说是这几天才出现的,而且在每天的某一个时间段才会出现CPU占用高的情况 内存占用不太高,只占用了30个G CPU…

Java---网络编程

文章目录 1. 网络编程概述2. InetAddress3. 端口和协议4. Java网络API5. URL6. URLConnection类 1. 网络编程概述 1. 计算机网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软…

Java中利用Redis,ZooKeeper,数据库等实现分布式锁(遥遥领先)

1. 分布式锁 1.1 什么是分布式锁 在我们进行单机应用开发涉及并发同步的时候,我们往往采用synchronized或者ReentrantLock的方式来解决多线程间的代码同步问题。但是当我们的应用是在分布式集群工作的情况下,那么就需要一种更加高级的锁机制&#xff0…

音视频技术开发周刊 | 326

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 全球最强「开源版Gemini」诞生!全能多模态模型Emu2登热榜,多项任务刷新SOTA 最强的全能多模态模型来了!就在近日,智源研究院…

云计算复习提纲

第一章 大数据的概念:海量数据的规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策 大数据的特点:①数据量大,存储的数据量巨大,PB级别是常态;②多样,数…

第9章 继承和派生习题(详解)

一、选择题 1.下列表示引用的方法中, () 是正确的。已知:int m10: A.int &xm; B.int &y10; C.int &z; D.fl…

计算机网络(1)

计算机网络(1) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 计算机网络和因特网(1)因特网概念解读服务常见的服务 协议网络边缘特点强调 网络核心特点强调 小程一言 我的计算机网络专栏,是自己在计算机网络…

常用环境部署(十三)——GitLab整体备份及迁移

一、GitLab备份 注意:由于我的GitLab是docker安装的,所以我的操作都是在容器内操作的,大家如果不是用docker安装的则直接执行命令就行。 1、Docker安装GitLab 链接:常用环境部署(八)——Docker安装GitLab-CSDN博客 2、GitLab备…

【LMM 005】LLaVA-Interactive:集图像聊天,分割,生成和编辑三种多模态技能于一体的Demo

论文标题:LLaVA-Interactive: An All-in-One Demo for Image Chat, Segmentation, Generation and Editing 论文作者:Wei-Ge Chen, Irina Spiridonova, Jianwei Yang, Jianfeng Gao, Chunyuan Li 作者单位:Microsoft Research, Redmond 论文原…

Spring04

一、AOP的概念 AOP 为 (Aspect Oriented Programming) 的缩写,意为:面向切面编程,底层是使用动态代理的技术实现对目标方法的增强和控制访问等功能。 其中AOP中有几个重要的概念: 1、通知:增强的逻辑,或者后期要加入的代码。 2、目…

2024校招测试工程师笔试——经典错题记录和解析

大家好,这篇文章记录几个测开方向经典的例题,并给出相应解析,欢迎给出你的看法 下列关于软件性能测试的说法中,正确的是:( ) A 性能测试的目的不是为了发现软件缺陷 B 压力测试与负载测试的目的…

【并发设计模式】聊聊Thread-Per-Message与Worker-Thread模式

在并发编程中,核心就是同步、互斥、分工。 同步是多个线程之间按照一定的顺序进行执行,比如A执行完,B在执行。而互斥是多个线程之间对于共享资源的互斥。两个侧重点不一样,同步关注的是执行顺序,互斥关注的是资源的排…

CGAL的空间排序

1、介绍 许多在CGAL中实现的几何算法都是增量的,因此它们的速度取决于插入顺序。此软件包提供了排序算法,可以大大提高此类算法的运行时间。 其基本原理是沿着空间填充曲线对对象进行排序,这样在插入顺序上,几何上接近的两个对象将…

.net8 AOT编绎-跨平台调用C#类库的新方法-函数导出

VB.NET AOT无法编绎DLL,微软的无能,正是你的机会 .net8 AOT编绎-跨平台调用C#类库的新方法-函数导出 1,C#命令行创建工程:dotnet new classlib -o CSharpDllExport 2,编写一个静态方法,并且为它打上UnmanagedCallersO…

Linux - 设置虚拟机和主机IP在同一网段(桥接)

1.查看主机ip地址等相关信息。 ipconfig -all 2.设置虚拟网络编辑器 打开虚拟网络编辑器 设置虚拟网络编辑器,设置为桥接模式。(记得以管理员方式打开VMware)。 3.修改虚拟机网卡文件 查看虚拟机ip,我们的目标是将其修改为与主机同一网段…

postman使用-04响应

文章目录 响应响应界面说明Pretty:格式化显示,以便查看Raw:不进行任何处理,显示响应数据的原始格式Preview:预览响应体,会自动换行,不会格式化(有时候是数据,有时候是页面…

什么是缓存、为什么要用缓存、缓存分类、缓存测试、缓存更新、缓存设计考虑点、缓存测试点

一、缓存 缓存是一种将数据存储在高速缓存中的技术,它可以提高应用程序的性能和响应速度。 二、 为什么要用缓存 1. 高性能(主要目的) 查询耗时,但变化少,又有很多读请求情况下,可以将查询结果放到缓存中。减少对数据库的压力&…