前言
默认已安装prometheus服务
prometheus: 1.1.1.1:9090
snmp_exporter: 2.2.2.2:9116
一、如何生成snmp.yml
yum -y install git
yum -y install gcc gcc-g++ make net-snmp net-snmp-utils net-snmp-libs net-snmp-devel
go get github.com/prometheus/snmp_exporter/generator
cd ${GOPATH-$HOME/go}/src/github.com/prometheus/snmp_exporter/generator
go build
make mibs
执行完上述步骤后,在当前目录下会出现mibs文件夹,里面是下载好的一些mib文件。如果有些oid树是厂家自定义的,则要求厂家提供mib库文件(注意mib文件中,name不能为中文)并放到mibs目录下(原因后面讲)。
vim generator.yml
modules:
if_mib:
walk:
- 1.3.6.1.4.1.41475
version: 2
auth:
community: public
如图,因为我要采集的oid是厂家自定义的,所以写了一个最最简单的generator.yml文件
export MIBDIRS=mibs
./generator generate
export MIBDIRS=mibs就是为了GO程序能够找到你的mib文件,即指向了之前放入自己mib库文件的mibs目录。
将snmp.yml放入下载好的snmp_exporter中
下载地址:链接: https://github.com/prometheus/snmp_exporter/releases
后台启动snmp_exporter服务(根据启动参数修改端口和配置文件)
nohup ./snmp_exporter --config.file=snmp.yml --web.listen-address=:9116 > default.log 2>&1 &
打开2.2.2.2:9116,输入设备所在ip和模块名
prometheus端配置snmp_exporter的抓取和常规方法一样,就不复述了。另外采集到的值都存储在标签中,而value值都为1,具体原因参考如下:
链接: https://www.robustperception.io/why-info-style-metrics-have-a-value-of-1
最后
第一次写博客,有不对的地方忘各位不吝指教。
欢迎各位一起评论区探讨!