bosun

setup bosun snmp scollector to monitor CPU memory keep get error


i am trying to run scollector from bosun.

after I run the scolector, It cannot show me the memory information, but CPU information was right.


this CODE:

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"

THIS IS LOG

**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"}}

Solution

  • It looks to me like this is an issue converting data types. The error is from deep in the bowels of the asn1 library we are using but I think it boils down to: cpu is represented as an integer, while memory is a string.

    Our snmp collector attempts to parse all values into a big.Int, but apparently the string value is not able to be coerced into that by our asn1 library.

    Unfortunately I don't see a good way to make this work, except perhaps look for an oid that returns an integer type. Without knowing what device you are using, that is as good as I can offer I'm afraid.