Добрый день
Пытаюсь добавить устройство по протоколу SNMP.
Результат - не могу получить информацию по каналам с определенным OID.
Включил режим отладки и перезапустил wb-mqtt-snmp
root@wirenboard-AOWCONDB:~# wb-mqtt-snmp restart
Парсер ругается но OIDы c длиными значениями:
2019/02/11 15:09:12 command to run: snmptranslate []string{".1.3.6.1.2.1.1.5.0", “.1.3.6.1.2.1.1.1.0”, “.1.3.6.1.4.1.40418.2.6.1.30.1.1.3.2181170026”, “.1.3.6.1.4.1.40418.2.6.1.30.1.1.4.2181170026”, “.1.3.6.1.4.1.40418.2.6.1.30.1.1.6.2181170026”} -On
DEBUG: 2019/02/11 15:09:12 driver: new local device: ERD4
DEBUG: 2019/02/11 15:09:12 PUB: /devices/ERD4/meta/name -> ERD4
DEBUG: 2019/02/11 15:09:12 Work in process
INFO: 2019/02/11 15:09:12 MQTT connection established
DEBUG: 2019/02/11 15:09:12 [POLLTIMEREVENT] Run at 2019-02-11 15:09:12.477717103 +0500 +05 m=+0.101246140
DEBUG: 2019/02/11 15:09:12 [poller 3] Receive request .1.3.6.1.2.1.1.1.0
DEBUG: 2019/02/11 15:09:12 [poller 0] Receive request .1.3.6.1.4.1.40418.2.6.1.30.1.1.4.2181170026
DEBUG: 2019/02/11 15:09:12 failed to poll ERD4:Humidity: Unable to parse OID: strconv.Atoi: parsing “2181170026”: value out of range
DEBUG: 2019/02/11 15:09:12 [poller 0] Receive request .1.3.6.1.4.1.40418.2.6.1.30.1.1.3.2181170026
DEBUG: 2019/02/11 15:09:12 failed to poll ERD4:Internal temperature-1: Unable to parse OID: strconv.Atoi: parsing “2181170026”: value out of range
DEBUG: 2019/02/11 15:09:12 [poller 0] Receive request .1.3.6.1.4.1.40418.2.6.1.30.1.1.3.2181170026
DEBUG: 2019/02/11 15:09:12 failed to poll ERD4:Internal temperature-2: Unable to parse OID: strconv.Atoi: parsing “2181170026”: value out of range
DEBUG: 2019/02/11 15:09:12 [poller 1] Receive request .1.3.6.1.4.1.40418.2.6.1.30.1.1.6.2181170026
DEBUG: 2019/02/11 15:09:12 failed to poll ERD4:Presure: Unable to parse OID: strconv.Atoi: parsing “2181170026”: value out of range
DEBUG: 2019/02/11 15:09:12 [poller 2] Receive request .1.3.6.1.2.1.1.5.0
Как это обойти?
PS - snmpget эти-же OIDы принимает.
Там все плохо с этим пакетом - он использует старую библиотеку, которая еще и кучу типов не поддерживает. Я помучился и забил, в итоге - вытаскиваю данные через snmpwalk по крону.
Попробовал сделать apt-get update; apt-get upgrade; reboot
Не помогло - каналы с результатами датчиков не появились, парсер ругается на value out of range:
Feb 11 14:05:02 wirenboard-AOWCONDB user.notice mqtt_snmp: DEBUG: 2019/02/11 14:05:02 [poller 2] Receive request .1.3.6.1.4.1.40418.2.6.1.30.1.1.3.2181170026
Feb 11 14:05:02 wirenboard-AOWCONDB user.notice mqtt_snmp: DEBUG: 2019/02/11 14:05:02 failed to poll snmp_192.168.165.21_public:Presure: Unable to parse OID: strconv.Atoi: parsing “2181170026”: value out of range
Feb 11 14:05:02 wirenboard-AOWCONDB user.notice mqtt_snmp: DEBUG: 2019/02/11 14:05:02 failed to poll snmp_192.168.165.21_public:Internal temperature-2: Unable to parse OID: strconv.Atoi: parsing “2181170026”: value out of range
Если будете разбираться, может поменяете уж заодно alouca/gosnmp на что-то поновее. Текущая версия не обновлялась уже 2 года, и там нет поддержки Opaque типов (и еще вроде каких-то).
Обнаружилась еще одна проблемка:
smnp драйвер не загружается при старте системы.
Вернее он загружается, пытается запросить данные с какого либо smnp-хоста, обнаруживает что сеть отсутствует и отваливается.
В журнале оставляет следующее сообщение:
Feb 17 15:22:00 wirenboard-AOWCONDB user.notice mqtt_snmp: ERROR: 2019/02/17 15:22:00 can’t create SNMP device: Error establishing connection to host: dial udp 89.250.233.131:161: connect: network is unreachable
Ситуацию удалось поправить, добавив в инит скрипт костыль в виде задержки на 20 сек.
По всей видимости, из за асинхронности sistemd сервис wb-mqtt-snmp стартует раньше, чем загружаются сетевые сервисы.
И еще:
В случае,если запрашиваемый snmp host выключен или не отвечает - это ни как не отражается в статусе устройства. Таким образом, smnp-устройство давным-давно пропало со связи, а мы успешно продолжаем получать через mqtt устаревшие значения, не подозревая о проблемах со связью.
Что, кстати, с моим предыдущим вопросом?
Будете ли разбираться?
Стоит ли мне чего то ждать и принимать участие в тестировании или лучше решать задачу иными методами?
vugluskr, добрый день!
Неприятная проблема, попробую воспроизвести включу тогда в список багов.
Вопрос с неверной трансляцией OIDов тоже рассматривается, но не уверен, что мы сможем его быстро решить.
Сообщу здесь, как будет выработано решение или найдена возможность обхода проблемы.