Go 连接snmp获取数据
使用Go语言可以来连接snmp,监控开放snmp服务的主机的数据。使用的第三方包为gosnmp
安装
go get "github.com/alouca/gosnmp"
# 或者使用gopm
gopm get -v -g -u "github.com/alouca/gosnmp"使用实例
简单使用:
package main
import (
"github.com/alouca/gosnmp"
"fmt"
)
func main() {
# 连接
s, err := gosnmp.NewGoSNMP("192.168.3.111:161", "public", gosnmp.Version2c, 5)
if err != nil {
fmt.Println(err.Error())
}
# get 方式获取数据
resp, err := s.Get(".1.3.6.1.2.1.1.1.0")
if err == nil {
for _, v := range resp.Variables {
fmt.Print(v.Name + " --> ")
fmt.Println(v.Value)
}
} else {
fmt.Println(err.Error())
}
}输出结果
详细的snmp oid表可查看http://www.ttlsa.com/monitor/snmp-oid/。
snmp oid中不但了Get方式的获取,还有一种Walk,返回一串数据。
walk方式
输出:
Last updated
Was this helpful?