设置bosun snmp scollector监视CPU内存不断获取错误

时间:2016-11-07 17:30:29

标签: bosun

我正试图从bosun运行scollector。

运行scolector后,它无法显示内存信息,但CPU信息是正确的。

此代码:

Host = "http://localhost:8070"
DisableSelf = true
Freq = 60
Filter = ["snmp-generic", "snmp-ifaces"]

[[SNMP]]
  Community = "test"
  Host = "name"
  MIBs = [ "devicename"]

[Tags]
  product = "fw"

[MIBs]

  [MIBs.fw]
    BaseOid = ".1.3.6.1.4.1.2620"

    [[MIBs.fw.Metrics]]
      Metric = "os.cpu"
      Oid = ".1.6.7.2.4.0"
      Unit = "percent"
      RateType = "gauge"
    [[MIBs.fw.Metrics]]
      Metric = "os.mem.used"
      Oid = ".1.6.7.4.5.0"
      Unit = "bytes"
      RateType = "gauge"

这是日志

**2016/11/07 17:24:42 error: interval.go:64: snmp-generic-name-fw: asn1: structure error: tags don't match (2 vs {class:0 tag:4 length:11 isCompound:false}) {optional:false explicit:false application:false defaultValue:<nil> tag:<nil> stringType:0 timeType:0 set:false omitEmpty:false}  @2**
2016/11/07 17:24:43 info: queue.go:90: {"metric":"os.cpu","timestamp":1478539482,"value":2,"tags":{"host":"name","product":"fw"}}

1 个答案:

答案 0 :(得分:1)

在我看来,这是转换数据类型的问题。错误来自我们正在使用的asn1库的深层,但我认为它归结为:cpu表示为integer,而内存是string

我们的snmp收集器尝试将所有值解析为JS,但显然字符串值无法通过我们的asn1库强制转换为该值。

不幸的是,除了寻找返回整数类型的oid之外,我没有看到一个很好的方法来完成这项工作。在不知道你正在使用什么设备的情况下,这就像我能提供的一样好,我很害怕。