Настройте bosun snmp scollector для мониторинга памяти процессора и сохраняйте ошибки
Я пытаюсь запустить scollector из Bosun.
после запуска scolector, он не может показать мне информацию о памяти, но информация о процессоре была правильной.
этот код:
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 ответ
Мне кажется, что это проблема преобразования типов данных. Ошибка глубоко в недрах библиотеки asn1, которую мы используем, но я думаю, что она сводится к следующему: процессор представлен как целое число, а память - строка.
Наш сборщик snmp пытается проанализировать все значения в big.Int
, но, очевидно, строковое значение не может быть приведено к нему нашей библиотекой asn1.
К сожалению, я не вижу хорошего способа сделать это, кроме, возможно, поиска oid, который возвращает целочисленный тип. Боюсь, не зная, какое устройство вы используете, это настолько хорошо, насколько я могу предложить.