环境
交换机:huawei S5735
prometheus: 使用docker镜像,监听 9090 端口
granfana: 使用docker镜像,监听 3000 端口
snmp-exporter: https://github.com/prometheus/snmp_exporter下载最新版,监听 9116 端口
alertmanager: https://github.com/prometheus/alertmanager下载最新版,监听 9093, 9094 端口
下载华为交换机的mib信息:华为官方网站的软件下载可以找到
配置交换机
详细配置说明可参考官网:https://support.huawei.com/enterprise/zh/doc/EDOC1000178160/40dfdfef
进入system-view模式system-view
开启snmp-agent:snmp-agent
设置团体名称(有复杂性要求):snmp-agent community read cipher Tbkswitch
开启snmp所有版本:snmp-agent sys-info version all
设置接受snmp trap信息的服务器:snmp-agent target-host trap address udp-domain 192.168.1.200 params securityname cipher Tbkswitch
开启snmp trap:snmp-agent trap enable
打开snmp接口访问:snmp-agent protocol source-status all-interface
配置服务器
安装环境和软件
安装依赖:yum install gcc make net-snmp net-snmp-utils net-snmp-libs net-snmp-devel
测试能否获取交换机snmp信息:snmpwalk -v 2c -c Tbkswitch 192.168.101.1
安装go语言环境:yum install go
修改go环境变量国内代理地址:go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
获取snmp-exporter源码包,包括generator源码包。go get github.com/prometheus/snmp_exporter/generator
默认go安装到当前用户目录下,如当前用户为root,则下载的的源码包则会放到/root/go/pkg/mod/github.com/prometheus/snmp_exporter@v0.20.0
下
进入下载的generator目录cd /root/go/pkg/mod/github.com/prometheus/snmp_exporter@v0.20.0/generator
通过rzsz工具拷贝mib文件到当前目录,解压得到MIBS目录,把目录重命名为mibs
编译generator:go build
设置环境变量:export MIBDIRS=mib
备份原generator.yml文件:mv generator.yml generator.yml.bak
重新建立一个新的generator.yml:
配置模板参考/root/go/src/github.com/prometheus/snmp_exporter/generator目录下的README.md文档
1 | modules: |
使用./generator生成snmp.yml:./generator generate
进入snmp_exporter目录并替换snmp.yml文件(本例放到/app/snmp_exporter下)cd /app/snmp_exporter
mv snmp.yml snmp.yml.bak
cp /root/go/src/github.com/prometheus/snmp_exporter/generator/snmp.yml ./
添加snmp_exporter到服务:vim /etc/systemd/system/snmp_exporter.service
1 | [Unit] |
启动snmp_exporter:systemctl start snmp_exporter
查看状态和端口:systemctl status snmp_exporter
ss -tunlp | grep snmp_exporter
tcp LISTEN 0 20480 [::]:9116 [::]:* users:((“snmp_exporter”,pid=214993,fd=3))
验证
访问http://192.168.1.200:9116 打开snmp exporter的测试页面:
显示下图就正常
在Prometheus配置文件中添加数据节点:(本例使用docker)vim /srv/docker_data/prometheus/conf/prometheus.yml
1 | - job_name: 'TBK-S5375-CK4F' |
重启prometheus读取新配置:docker restart 2fc6f0e49b7c
访问http://192.168.1.200:9090/targets
可以看到刚刚添加的job_name,绿色up表示正常
ganfana添加dashboard:
登录ganfana:http://192.168.1.200:3000
通过搜索import官网的dashboard,如这里添加11169:
到此监控已配置完毕