使用Prometheus监控华为交换机主要是利用snmp_exporter来获取开启了snmp agent的网络设备上的信息。snmp具体的协议和prometheus的搭建不做详细介绍了,主要介绍下node_exporter的使用方法,主要是snmp.yaml文件自定义是个坎儿。
![b3c1005842fabeb87b5509230ff1ee49.png](https://i-blog.csdnimg.cn/blog_migrate/daf43d0d1973323a75d563e0d9795423.jpeg)
1. 交换机开启snmp
snmp-agent #开启snmp客户端snmp-agent community read abc #设置读团体名:自己定义一个字符串snmp-agent community write cde #设置写团体名:自己定义一个字符串snmp-agent sys-info version all #配置SNMP版本 (all是所有版本)snmp-agent sys-info contact MR.LI-tel:8002 #设置联系方式snmp-agent sys-info location 3rd-flood #设置设备位置snmp-agent target-host trap address udp-domain 172.16.149.253 params securityname abc #允许向172.16.149.253发送Trap报文,使用的团体名为public
2. 下载snmp_exporter
GitHub地址 https://github.com/prometheus/snmp_exporter
我们可以下载编译好的二进制文件,下载地址如下:
https://github.com/prometheus/snmp_exporter/releases/download/v0.19.0/snmp_exporter-0.19.0.linux-amd64.tar.gz
3.配置文件snmp.yml 需要使用 Generator生成器
安装编译环境工具
sudo yum install gcc gcc-g++ make net-snmp net-snmp-utils net-snmp-libs net-snmp-devel gogo get github.com/prometheus/snmp_exporter/generatorexport GOPROXY=https://goproxy.cn #设置下代理,否正会提示golang.org无法连接cd ${GOPATH-$HOME/go}/src/github.com/prometheus/snmp_exporter/generatorgo build #生成二级制文件generator
或者使用docker (需要解决一些网络问题)
make mibsdocker build -t snmp-generator .docker run -ti -v "${PWD}:/opt/" snmp-generator generate
4. 寻找Mibs,修改generator.yml
华为的网络设备mib文件下载地址,这个GitHub上主流的网络设备都有,大家可以收藏下。
https://github.com/librenms/librenms/tree/master/mibs/huawei
建议mib文件保存到 $HOME/.snmp/mibs 或者/usr/local/share/snmp/mibs 下。
对应厂商的OID有些区别,OID寻找有些耗时,可以在官网或者mib文件下寻找,同时我们可以测试下OID是否可用,可以使用测试工具snmpwalk
sudo yum -y install net-snmp-utils #安装snmpwalk
使用snmpwalk一步步测试oid是否可用,例如
snmpwalk -v 2c 192.168.2.132 -c abc 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.7.67108873
修改generator.yml 文件
自定义的华为交换机generator.yml的简单示例
modules: hw: version: 2 auth: community: abc walk: - 1.3.6.1.4.1.2011.6.3.4.1.2 # hwCpuDevDuty - 1.3.6.1.4.1.2011.6.3.4.1.3 # hwAvgDuty1min - 1.3.6.1.4.1.2011.6.3.4.1.4 # hwAvgDuty5min - 1.3.6.1.4.1.2011.6.3.5.1.1.2 # hwMemoryDevSize - 1.3.6.1.4.1.2011.6.3.5.1.1.3 # hwMemoryDevFree - 1.3.6.1.4.1.20