Раньше скрипт выполнял запросы только по протоколам SNMP первой и второй версии. Когда же в сети появились устройства, доступные только по протоколу SNMP третьей версии, скрипт начал выводить ошибки такого вида:
Authentication failed for backupbackup - это имя пользователя SNMPv3, под которым не удавалось выполнить SNMP-запросы.
Поскольку скрипт анализирует результаты запросов SNMP, то эти диагностические сообщение лишь засоряют вывод скрипта. Как оказалось, эти сообщения выводит сама библиотека Net-SNMP и я не нашёл никаких способов для того, чтобы их отключить, например, через конфигурацию /etc/snmp/snmp.conf. Чтобы отключить эти сообщения, потребуется поправить исходный текст библиотеки. Скачаем и распакуем пакет с исходными текстами net-snmp:
$ apt-get source net-snmpНаши правки к исходному коду оформим в виде заплатки при помощи инструмента quilt, подробнее о котором я писал в заметке Использование quilt для подготовки заплат. Создадим новую заплатку:
$ quilt new removed-redundant-log-messageДобавим в будущую заплатку файл:
$ quilt add snmplib/snmpusm.cОткрываем файл snmplib/snmpusm.c в текстовом редакторе, находим и удаляем две строчки с вызовом функции snmp_log:
snmp_log(LOG_WARNING, "Authentication failed for %s\n", user->name);В этом же файле при подобных ошибках функции snmp_log не вызываются и это единственный вызов snmp_log в этом файле. Скорее всего этот вызов функции был оставлен по ошибке, а не удалён вместе с другими подобными вызовами.
Чтобы изменения в файле snmplib/snmpusm.c попали в заплатку, обновляем заплатку:
$ quilt refreshМожно прокомментировать сделанные в пакете изменения и изменить версию пакета:
$ dch -iВ запустившемся редакторе описываем последние изменения:
net-snmp (5.7.3+dfsg-5-stupin1) UNRELEASED; urgency=medium * Fixed SNMPv3 time widnow logic to work with D-Link switches * Removed redundant log message "Authentication failed from" -- Vladimir Stupin <vladimir@stupin.su> Fri, 15 May 2020 16:01:26 +0500Теперь можно пересобрать deb-пакеты, выполнив команду:
$ debuild -us -ucВ вышестоящем каталоге появятся готовые deb-пакеты, которые можно установить в систему командой dpkg -i или поместить в репозиторий пакетов при помощи aptly. Почитать об использовании aptly можно в другой моей заметке Создание своего репозитория Debian при помощи aptly.
После установки исправлений надоедливые сообщения об ошибках пропали.
Комментариев нет:
Отправить комментарий