最近在学习infoluxdb, 做个小测试,安装snmp进行数据采集,并将数据放到influxdb里面。
# 安装snmp采集,观察和influxdb数据库的关系
go get github.com/paulstuart/influxsnmp
go install github.com/paulstuart/influxsnmp
ls $GOPATH/bin/
cp $GOPATH/src/github.com/paulstuart/influxsnmp/oids.txt $GOPATH/bin/
mkdir $GOPATH/etc
产生mib.json文件
# config.gcfg
[common]
httpPort = 8085
tags = dc=aws-east-1
;mibs = /usr/share/snmp/IF-MIB.txt
mibs = JUNIPER-IF-MIB:JUNIPER-MIB:SNMPv2-MIB:IF-MIB
;mibfile = /root/workspace/bin/oids.txt
mibfile = /root/workspace/bin/mibFile.json
elapsed = true
[snmp "localhost"]
host = 127.0.0.1
community = public
port = 161
timeout = 2
retries = 5
;repeat = 0
freq = 3
;debug = true
;portfile = ports.txt
[mibs "*"]
name = ifXEntry
;scalers = false
;column = ifHCInOctets
;column = ifHCInUcastPkts
;column = ifHCOutOctets
;column = ifHCOutUcastPkts
;column = ifInErrors
;column = ifInDiscards
;column = ifOutErrors
;column = ifOutDiscards
regexp = ifHC.*:ifIn.*:ifOut.*
[influx "*"]
url = http://localhost:8086/
database = collectdb
;host = 127.0.0.1
;port = 8086
;db = collectdb
;user = username
;password = password
;[http]
;port = 9501
# 产生oids.txt
./influxsnmp -dump -filter > mibFile.json
yum install net-snmp net-snmp-utils
rpm -qil net-snmp net-snmp-utils
./influxsnmp -dump -filter > mibFile.json
启动就好了
./influxsnmp
写的有点粗糙,要启动influxsnmp,必须有mib文件。
配置中已经去掉了column等variadb,参考这个哥们 https://lkhill.com/using-influxdb-grafana-to-display-network-statistics/ 写的文章,估计他使用的是老版本的influxsnmp,新版在配置上面有些改变,需要注意。
测试
配置完成后就可以使用
SELECT 8 * derivative(mean("value"),1s) AS "value" FROM "ifHCInOctets" WHERE "column" = 'eno16777736' AND $timeFilter GROUP BY time($interval) fill(null)
用grafana进行画图了。