Java-SpringBoot-使用SNMP对交换机/服务器进行简单的数据采集

SpringBoot-使用SNMP对交换机/服务器进行简单的数据采集

开源项目地址

https://gitee.com/xuhy34324/boot_snmp

SpringBoot-Snmp数据采集

0、介绍

简单明了。只有数据传递,没有前端页面。

此项目并未连接任何中间件,只需使用下面使用技术即可运行使用。

此项目采集数据内容,并不全面,只是根据个人项目需求而编写的采集数据内容。

目前测试采集linux服务器,以及交换机数据,并无问题。

项目采集流量,被采集的是设备每个端口流量。之后的计算方式只是个人需求。

0.1 项目缺陷
  1. 不支持SNMPv3版本。
  2. CPU使用率,个人认为计算不准确。
  3. CPU与内存的采集,需要配置设备的SNMP开启访问权限,这两个数据采集不到。

1、项目采集数据前提

  1. 被采集设备必须安装SNMP协议,必须开启外部访问模式。
  2. Java开发相关职业,对SNMP有一定的了解。

2、项目使用技术

工具名版本
IDEA2021.1.1
Maven3.8.4
SpringBoot2.6.6
JDK1.8

3、项目采集数据内容

1. 设备基本信息
	1.1 设备名
	1.2 设备厂商
	1.3 设备端口数量
2. CPU使用率
3. 内存使用基本信息
	3.1 内存总大小
	3.2 内存使用大小
	3.3 内存空闲大小
	3.4 缓冲内存大小
	3.5 缓存内存大小
	3.6 计算后的内存使用率
4. 端口基本信息  
	4.1 端口名
	4.2 端口MAC地址
	4.3 端口最大带宽
	4.4 端口状态
5. 端口出入流量信息  (包含过滤方法:过滤内容1.端口名未NULL0的异常端口;2. 未开启端口。)
	5.1 第一次采集数据
	5.2 时间间隔
	5.3 第二次采集数据
	5.4 计算结果
	5.5 被采集端口名

4、项目接口介绍

4.1 采集设备基本信息

**URL:**http://localhost:8080/snmpAcquisition/deviceInfo

**请求方式:**POST

请求参数:

{
   	ip: "127.0.0.1",
   	version: 1,
   	community: "public"
}

其他接口以此类推,接受参数以及请求方式都是一样的。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SNMP Exporter 是一种基于 SNMP 协议的 Exporter,可以采集 SNMP 设备的各种指标。要采集路由器和交换机的内存利用率以及 cpu 利用率,需要先确定设备上对应的 OID(Object ID),然后在 SNMP Exporter 的配置文件中进行相应的配置。以下是一个简单的示例配置文件: ``` global: scrape_interval: 1m scrape_timeout: 10s scrape_configs: - job_name: 'snmp' scrape_interval: 30s static_configs: - targets: - router1.example.com - switch1.example.com metrics_path: /snmp params: module: [system,cpu,memory] relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 10.0.0.1:9116 # SNMP Exporter 的地址 ``` 在该配置文件中,我们定义了一个名为 `snmp` 的监控任务,定期采集路由器和交换机的指标。`targets` 指定了要监控的设备地址,`params` 则指定了要采集的模块,包括 `system`、`cpu` 和 `memory`。在 `relabel_configs` 中,我们使用了几个重写规则,将设备地址和采集参数加入到指标的标签中。 在正确配置了 SNMP Exporter 的情况下,Prometheus 就可以通过 `snmp` 任务来采集设备的 cpu 利用率和内存利用率等指标了。你可以使用类似以下的 PromQL 查询语句来查询这些指标: ``` 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) ``` 该语句可以计算出设备的 CPU 利用率。对于内存利用率,可以使用类似以下的语句: ``` (node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes * 100 ``` 该语句计算出设备的内存已使用的百分比。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值