prometheus监控华为交换机
一、环境
交换机: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
三、配置服务器
1、安装依赖:
yum install gcc make net-snmp net-snmp-utils net-snmp-libs net-snmp-devel
2、测试能否获取交换机snmp信息:
snmpwalk -v 2c -c Tbkswitch 192.168.101.1
3、安装go语言环境:
yum install go
4、修改go环境变量国内代理地址:
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct
5、获取snmp-exporter源码包,包括generator源码包。
go get github.com/prometheus/snmp_exporter/generator
6、默认go安装到当前用户目录下,如当前用户为root,则下载的的源码包则会放到
/root/go/pkg/mod/github.com/prometheus/snmp_exporter@v0.20.0
下
7、进入下载的generator目录
cd /root/go/pkg/mod/github.com/prometheus/snmp_exporter@v0.20.0/generator
8、通过rzsz工具拷贝mib文件到当前目录,解压得到MIBS目录,把目录重命名为mibs
9、编译generator:
go build
10、设置环境变量:
export MIBDIRS=mib
11、备份原generator.yml文件:
mv generator.yml generator.yml.bak
12、重新建立一个新的generator.yml:
配置模板参考/root/go/src/github.com/prometheus/snmp_exporter/generator目录下的README.md文档
modules: huawei_mib: walk: - sysUpTime - interfaces - ifXTable - sysDescr - sysName - 1.3.6.1.2.1.31.1.1.1.1 version: 2 auth: community: Tbkswitch lookups: - source_indexes: [ifIndex] lookup: ifAlias - source_indexes: [ifIndex] lookup: 1.3.6.1.2.1.2.2.1.2 # ifDescr - source_indexes: [ifIndex] lookup: 1.3.6.1.2.1.31.1.1.1.1 # ifName overrides: ifAlias: ignore: true ifDescr: ignore: true ifName: ignore: true ifType: type: EnumAsInfo
13、使用./generator生成snmp.yml:
./generator generate
14、进入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 ./
15、添加snmp_exporter到服务:
vim /etc/systemd/system/snmp_exporter.service [Unit] Description=snmp_exporter After=network.target [Service] ExecStart=/app/snmp_exporter/snmp_exporter --config.file=/app/snmp_exporter/snmp.yml Restart=on-failure [Install] WantedBy=multi-user.target
16、启动snmp_exporter:
systemctl start snmp_exporter
查看状态和端口:
systemctl status snmp_exporter ss -tunlp | grep snmp_exporter
17、访问http://192.168.1.200:9116 打开snmp exporter的测试页面:
四、在Prometheus配置文件中添加数据节点
1、vim /srv/docker_data/prometheus/conf/prometheus.yml
- job_name: 'TBK-S5375-CK4F' static_configs: - targets: ['192.168.101.1'] metrics_path: /snmp params: module: [huawei_mib] relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 192.168.1.200:9116
2、重启prometheus读取新配置:
docker restart 2fc6f0e49b7c
3、访问http://192.168.1.200:9090/targets
4、ganfana添加dashboard:
登录ganfana:http://192.168.1.200:3000
通过搜索import官网的dashboard,如这里添加11169
转载原文:https://blog.hellshan.top/archives/31bd6bb1/