Вопрос или проблема
Я использовал пакеты net-snmp, которые поставляются с моей версией Linux (версия 5.3.2.2), но хотел поработать с последней версией net-snmp (5.7), поэтому попробовал скомпилировать и установить новый исходный код. Это, казалось, работало нормально, но теперь я получаю множество ошибок при использовании утилит net-snmp (snmpget, snmpset, snmpwalk и т.д.)
например:
$ snmptranslate -On SNMPv2-MIB::system.sysDescr
Путь поиска MIB: /home/me/.snmp/mibs:/usr/local/share/snmp/mibs
Не удается найти модуль (SNMPv2-SMI) На строке 6 в /usr/local/share/snmp/mibs/SNMPv2-MIB.txt
Не удается найти модуль (SNMPv2-TC): На строке 9 в /usr/local/share/snmp/mibs/SNMPv2-MIB.txt
Не удается найти модуль (SNMPv2-MIB): На строке 9 в (нет)
:
<много похожих строк>
:
Не удается найти модуль (NET-SNMP-VACM-MIB): На строке 9 в (нет)
.1.3.6.1.2.1.1.1
Исходя из этого, я предположил, что, возможно, мне не хватает MIB из ‘пути поиска MIB’, поэтому я посмотрел на первую ошибку ‘Не удается найти модуль (SNMPv2-SMI)’, однако кажется, что он находится в правильном каталоге:
$ ls /usr/local/share/snmp/mibs/*SNMPv2-SMI*
/usr/local/share/snmp/mibs/SNMPv2-SMI.txt
И такой же результат для других в списке.. Поэтому я хотел бы узнать, знает ли кто-то, почему он не может найти модули, несмотря на то, что они, кажется, находятся в пути поиска?
В версии 5.7 была ошибка, которая может вызвать сообщение об ошибке, когда его не должно быть. Попробуйте использовать релиз 5.7.1.rc3 (или подождите неделю, пока не выйдет финальная версия 5.7.1).
Как кто-то из офисных “грабителей” намекнул, эта проблема может быть вызвана ошибкой в релизе 5.7.. Тем не менее.. проблема, с которой вы сталкиваетесь с утилитами Net-SNMP, может быть вызвана несколькими факторами. Давайте разберемся..
1. Проверьте путь поиска MIB:
Убедитесь, что указанный вами путь поиска MIB правильный. Используйте команду net-snmp-config, чтобы проверить настроенные каталоги MIB:
net-snmp-config --default-mibdirs
Убедитесь, что путь /usr/local/share/snmp/mibs включен в путь поиска MIB.
2. Владение и права на каталог MIB:
Убедитесь, что файлы MIB в каталоге /usr/local/share/snmp/mibs имеют правильное владение и права доступа. Они должны быть доступными для чтения пользователем, выполняющим утилиты snmp*.
3. Скомпилируйте MIB заново:
После установки новой версии Net-SNMP хорошей практикой является повторная компиляция файлов MIB, чтобы убедиться, что они совместимы с новой версией. Вы можете сделать это, выполнив:
sudo net-snmp-config --create-snmpv3-user -ro -A authpass -X privpass -a MD5 -x DES myuser
Замените authpass и privpass на ваши желаемые пароли аутентификации и конфиденциальности, а myuser на желаемое имя пользователя. Эта команда генерирует необходимые конфигурационные файлы и MIB.
4. Проверьте имена MIB и имена файлов:
Убедитесь, что имена MIB, которые вы используете в ваших командах, правильные и совпадают с именами файлов в каталоге MIB. Имена MIB чувствительны к регистру, поэтому убедитесь, что они точно совпадают.
5. Ошибки компиляции MIB:
Проверьте, были ли ошибки во время компиляции и установки Net-SNMP. Просмотрите вывод команд ./configure, make и make install на наличие сообщений об ошибках, связанных с MIB.
6. Конфигурация загрузки MIB:
Убедитесь, что файл конфигурации Net-SNMP (snmp.conf) правильно настроен для загрузки MIB. Этот файл обычно находится в /etc/snmp/ или /usr/local/share/snmp/. Проверьте, включает ли он следующую строку:
mibs +ALL
Опция +ALL говорит Net-SNMP загрузить все доступные MIB. Убедитесь, что эта строка не закомментирована (уберите #, если присутствует).
7. Переменные среды:
Проверьте, установлены ли какие-либо переменные среды, связанные с Net-SNMP. Эти переменные, такие как MIBS, могут повлиять на поведение загрузки MIB. Убедитесь, что нет конфликтующих переменных среды, которые переопределяют ваш путь поиска MIB.
8. Проблемы с кешем:
Если вы ранее использовали более старую версию Net-SNMP, возможно, имеется кешированная информация о MIB. Попробуйте очистить кеш, удалив любые файлы в /var/net-snmp или /var/net-snmp/snmpapp.conf, а затем повторно протестируйте.
После тщательной проверки этих шагов попробуйте снова запустить утилиты Net-SNMP. Если проблема сохраняется, вы можете загрузить новый вопрос с более подробной информацией о конкретных командах и конфигурациях, которые вы используете, чтобы я мог глубже разобраться, дружище.
Мир!!
Ответ или решение
На основании вашего описания проблемы с использованием утилит net-snmp после обновления до версии 5.7, можно выделить несколько ключевых аспектов, которые помогут вам решить возникшие ошибки, связанные с модулями. Данный текст будет содержать структурированный подход к устранению проблемы, используя принципы из FOREST.
Факты и способствующие причины
При использовании утилит net-snmp, таких как snmpget, snmpset и snmpwalk, вы столкнулись с ошибками, указывающими на невозможность найти модули MIB, такие как SNMPv2-SMI и SNMPv2-TC. Предположительно, это происходит после попытки обновления с версии 5.3.2.2 до версии 5.7.
Ожидания и действия
-
Проверьте путь поиска MIB:
Используйте командуnet-snmp-config --default-mibdirs
, чтобы убедиться, что путь/usr/local/share/snmp/mibs
действительно включён в список директорий для поиска MIB. Это поможет вам убедиться в том, что утилиты snmp могут находить необходимые файлы. -
Права доступа к MIB файлам:
Убедитесь, что файлы MIB из директории/usr/local/share/snmp/mibs
имеют правильные права и владельцев. Файлы должны быть доступны для чтения пользователю, под которым вы запускаете утилиты snmp. -
Переоснащение MIB:
После установки новой версии net-snmp рекомендуется переоснастить MIB-файлы. Это поможет убедиться, что они совместимы с новой версией программы. Для этого выполните команду:sudo net-snmp-config --create-snmpv3-user -ro -A authpass -X privpass -a MD5 -x DES myuser
Замените
authpass
иprivpass
на ваши пароли. Это создаст необходимые конфигурационные файлы и MIB. -
Проверьте правильность имен MIB:
Убедитесь, что имена модулей, которые вы используете в своих командах, совпадают с наименованиями файлов в директории MIB. Учтите, что имена MIB чувствительны к регистру. -
Ошибки компиляции MIB:
Просмотрите вывод команд./configure
,make
иmake install
на предмет возможных ошибок, связанных с MIB. Если были ошибки при компиляции, это может привести к проблемам с загрузкой модулей. -
Конфигурация загрузки MIB:
Проверьте файл конфигурации net-snmp (обычноsnmp.conf
), который находится в/etc/snmp/
или/usr/local/share/snmp/
. Убедитесь, что в нем есть строка:mibs +ALL
Эта строка позволяет программе загружать все доступные MIB. Убедитесь, что она не закомментирована.
-
Переменные окружения:
Проверьте, установлены ли какие-либо переменные окружения, относящиеся к net-snmp. Переменные, такие какMIBS
, могут влиять на поведение загрузки MIB. Убедитесь, что нет конфликтующих переменных, которые могут переопределить ваш путь поиска MIB. -
Проблемы с кешем:
Если вы ранее использовали более старую версию net-snmp, возможно, имеются закэшированные данные MIB. Попробуйте очистить кеш, удалив файлы из/var/net-snmp
и/var/net-snmp/snmpapp.conf
.
Перспективы и следующее действие
После выполнения всех перечисленных шагов, попробуйте снова запустить утилиты net-snmp. Если проблема продолжает существовать, вам может понадобиться дополнительно предоставить детали о конкретных командах и конфигурациях, которые вы используете, чтобы углубиться в проблему.
Желаем вам удачи в решении этой проблемы!