背景
应公司网工邀请,一起研究架设一套系统,对公司网络设备进行监控和预警。
基础
什么是SNMP
简单网络管理协议SNMP(Simple Network Management Protocol)用于网络设备的管理。
网络设备多种多样,不同设备不同厂家管理接口各不相同,于是snmp应运而生,SNMP作为广泛应用于TCP/IP网络的网络管理标准协议,提供了统一的接口,从而实现了不同种类和厂商的网络设备之间的统一管理。
SNMP系统由网络管理系统NMS(Network Management System)、SNMP Agent、被管对象Management object和管理信息库MIB(Management Information Base)四部分组成。NMS作为整个网络的网管中心,对设备进行管理。每个被管理设备中都包含驻留在设备上的SNMP Agent进程、MIB和多个被管对象。NMS通过与运行在被管理设备上的SNMP Agent交互,由SNMP Agent通过对设备端的MIB进行操作,完成NMS的指令。
详见:https://support.huawei.com/enterprise/zh/doc/EDOC1100087025
什么是MIB
linux命令行获取方式:
#工具安装命令(centos7)
yum install -y net-snmp-utils
snmpwalk -v 2c -c public xxx.xxx.xxx.xxx(ip) 1.3.6.1.2.1.1
选型学习
通常想到的开源架构就是snmp_exporter+prometheus+grafana,公司项目最常用,也最熟悉。通过各种各样的exporter组件,采集数据并汇聚至prometheus,再通过grafana进行数据处理和图表的展示。
而后来在逛bilibili,解锁了一个交换机监控新姿势。(https://www.bilibili.com/read/cv33912961/)
文中详细说明了架构组件替换的原因。
snmp_exporter ---> Categraf
prometheus ---> VictoriaMetrics
Categraf介绍
https://github.com/flashcatcloud/categraf
Categraf 是一款 All-in-One 的开源的 telemetry 数据采集器,支持指标、日志采集;支持 Tracing 数据的收集;支持物理机、虚拟机、交换机、容器、K8s、多种中间件/数据库的数据采集,支持混合云架构、云原生架构、多云架构。汇聚领域最佳实践,开箱即用。
VictoriaMetrics介绍
https://github.com/VictoriaMetrics/VictoriaMetrics
VictoriaMetrics是一款高性能的时序数据库,用于存储和查询时间序列数据。
详见docs地址:https://docs.victoriametrics.com
选型Categraf的原因
1.支持 remote_write 写入协议,可以直接将数据写入Prometheus,VictoriaMetrics,InfluxDB等等
2.snmp_exporter要手写snmp.yml,对我们来说非常不友好。因此便有了一套配置生成工具。配置的难度就是在于处理配置生成工具和协调mib库上。(具体如何部署,如何使用,后续出一期snmp_exporter+prometheus+grafana再展开来说),而Categraf的snmp插件的运行和采集是结合配置文件+mib文件+mib解析处理工具来得到指标数据。从配置文件的编写方面就更加简单,可以节省很多调试的时间。
3.Categraf支持虚拟表和数据筛选。可以将不同索引的表合并,并且将标签插到采集的指标数据里。
选型VictoriaMetrics的原因
1.支持remote_write 写入协议.(prometheus remote_write API)
2.性能和扩展性上做了很多优化。据说在样本数一直的情况下,磁盘空间使用可以比prometheus少7倍。(有待验证)
安装部署
安装包准备
#到对应的github下下载
#Categraf安装包
categraf-v0.3.76-linux-amd64.tar.gz
#VictoriaMetrics安装包
victoria-metrics-linux-amd64-v1.102.1.tar.gz
#MIB库文件
#根据自己的交换机操作系统到官方下载对应的MIB,这里演示(H3C ComwareV7)
Comware_MIB-20240814.zip
https://www.h3c.com/cn/d_201806/1089291_473262_0.htm
#Grafana安装包(直接安装,开箱即食,自己编译太浪费时间,有做了一键编译部署安装包,但版本比较老,直接用最新的)
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-11.2.0-1.x86_64.rpm
https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1
编译安装Categraf
(未完待续)
扩展:RFC文档
https://rfc2cn.com/rfc3416.html