赞
踩
配置信息 | 说明 |
---|---|
服务器IP地址 | 192.168.1.10 |
交换机IP地址 | 192.168.10.1 |
上网行为管理IP地址 | 192.168.20.1 |
系统版本 | CentOS7.4 |
内核 | ml-3.10.0 |
go版本 | 1.19.4 |
在本次安装前,先安装好prometheus+grafana。
prometheus+grafana安装文档
wget -c https://github.com/prometheus/snmp_exporter/releases/download/v0.18.0/snmp_exporter-0.18.0.linux-amd64.tar.gz
tar xf snmp_exporter-0.18.0.linux-amd64.tar.gz
mv snmp_exporter-0.18.0.linux-amd64 /home/snmp_exporter #修改文件名称
cd /home/snmp_exporter/
./snmp_exporter #启动snmp_exporter
vim /usr/lib/systemd/system/snmp_exporter.service
[Unit]
Description=snmp_exporter
After=network.target
[Service]
ExecStart=/home/snmp_exporter/snmp_exporter \
--config.file=/home/snmp_exporter/snmp.yml
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload #重新加载服务配置文件
systemctl start snmp_exporter.service #启动该服务
systemctl enable snmp_exporter.service #开机自启
systemctl restart snmp_exporter #重启该服务
访问测试http://192.168.1.10:9116/
由于Prometheus使用go语言开发,自己编译生成snmp_exporter文件需要go环境。
cd /home/
wget https://dl.google.com/go/go1.19.4.linux-amd64.tar.gz
tar xf go1.19.4.linux-amd64.tar.gz
mkdir /usr/local/gocode #创建文件
mv go /usr/local/
vim /etc/profile #添加文件最后
export GOROOT=/usr/local/go
export GOPATH=/usr/local/gocode
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
source /etc/profile #保存配置
go version #安装好后查看版本,判断是否安装成功
go version go1.19.4 linux/amd64
yum install gcc gcc-g++ make net-snmp net-snmp-utils net-snmp-libs net-snmp-devel -y
git clone https://github.com/prometheus/snmp_exporter.git go env -w GO111MODULE=on #GO111MODULE开启 go env -w GOPROXY=https://goproxy.cn,direct #选择国内代理 cd /snmp_exporter/generator go build make mibs #生成mibs后,将交换机、防火墙、上网行为管理等设备MIB文件上传到该文件夹 vim generator.yml #将所需要监控的项添加进去 modules: SW: #需要和prometheus.yml的module一致,多个设备可调用同一个模块 walk: - 1.3.6.1.2.1.2.2.1 #接口当前接收和发送报文流量统计信息 - 1.3.6.1.2.1.1.3 #从系统网管部分启动以来运行的时间 - 1.3.6.1.2.1.1.5 #设备名称 - 1.3.6.1.2.1.2.2.1.8 #接口当前的状态 - 1.3.6.1.4.1.2011.5.25.41.1.7.1.1.8 #入方向带宽占用率 - 1.3.6.1.2.1.31.1.1.1.6 #接口上接收到的字节总数,包括成帧的字符 - 1.3.6.1.2.1.31.1.1.1.10 #接口发送的字节总数,包括成帧字符 - 1.3.6.1.2.1.31.1.1.1.1 #由本地设备分配的接口名 - 1.3.6.1.2.1.31.1.1.1.18 #该节点是由网络管理员指定的接口别名 - 1.3.6.1.4.1.2011.5.25.41.1.7.1.1.8 #入方向带宽占用率 - 1.3.6.1.4.1.2011.5.25.41.1.7.1.1.10 #出方向带宽占用率 - 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5 #CPU利用率 - 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.7 #内存利用率 - 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.11 #温度 - 1.3.6.1.2.1.31.1.1.1.6 #接口上接收到的字节总数,包括成帧的字符 - sysUpTime version: 2 auth: community: test #snmp团体号 sanfor: #用于上网行为管理 walk: - sysUpTime - sysName - ifMtu - interfaces - ifDescr - ifIndex - ifType - ifPhysAddress - ipNetToMediaType - ifOutUcastPkts - ifOutOctets - ifInOctets version: 2 auth: community: test
export MIBDIRS=mibs
./generator generate #编译成功后,会自动生成snmp.yml文件
mv snmp.yml /home/snmp_exporter/snmp.yml #将snmp.yml文件传到snmp_exporter安装目录下
systemctl restart snmp_exporter #重启该服务
snmpwalk -v 2c -c test 192.168.10.1 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5 #test是交换机snmp团体号,192.168.10.1是交换机地址 后续数字是oid
vim /usr/local/prometheus/prometheus.yml scrape_configs: - job_name: 'prometheus' static_configs: - targets: ["192.168.1.10:9100"] #prometheus安装服务器 - job_name: 'SW' scrape_interval: 30s static_configs: - targets: ["192.168.10.1"] #被监控交换机 - targets: ["192.168.10.2"] #如果有其他交换机,且型号一致可以用一个模块 metrics_path: /snmp params: module: [SW] #需要和 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 192.168.1.10:9116 #snmp_exporter服务器地址 - job_name: "ShangWxingXingWeiGL" scrape_interval: 30s static_configs: - targets: ["192.168.20.1"] metrics_path: /snmp params: module: [sanfor] relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 192.168.1.10:9116
systemctl restart snmp_exporter #配置完毕后重启该服务,访问192.168.1.10:9090,选择status→targets查看
PS:没有调通显示红色。
在本次安装时,go环境安装各种报错,部分忘记记录。
go build时报错
/usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: /tmp/go-link-3620805256/000005.o: unrecognized relocation (0x2a) in section `.text'
/usr/bin/ld: final link failed: 错误的值
collect2: 错误:ld 返回 1
以上报错,查看binutils版本是否过低,过低需要安装新版本,本次安装时,升级binutils解决该报错
这一步报错,一般是generator.yml文件添加的oid参数和mibs里不一致导致。删除报错项后编译成功。
MIB Browser查看设备mid
BPSNMPUtil 查看设备mib
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。