Ошибки, связанные с модулями при использовании утилит net-snmp

Вопрос или проблема

Я использовал пакеты 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.

Ожидания и действия

  1. Проверьте путь поиска MIB:
    Используйте команду net-snmp-config --default-mibdirs, чтобы убедиться, что путь /usr/local/share/snmp/mibs действительно включён в список директорий для поиска MIB. Это поможет вам убедиться в том, что утилиты snmp могут находить необходимые файлы.

  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 на ваши пароли. Это создаст необходимые конфигурационные файлы и MIB.

  4. Проверьте правильность имен MIB:
    Убедитесь, что имена модулей, которые вы используете в своих командах, совпадают с наименованиями файлов в директории MIB. Учтите, что имена MIB чувствительны к регистру.

  5. Ошибки компиляции MIB:
    Просмотрите вывод команд ./configure, make и make install на предмет возможных ошибок, связанных с MIB. Если были ошибки при компиляции, это может привести к проблемам с загрузкой модулей.

  6. Конфигурация загрузки MIB:
    Проверьте файл конфигурации net-snmp (обычно snmp.conf), который находится в /etc/snmp/ или /usr/local/share/snmp/. Убедитесь, что в нем есть строка:

    mibs +ALL

    Эта строка позволяет программе загружать все доступные MIB. Убедитесь, что она не закомментирована.

  7. Переменные окружения:
    Проверьте, установлены ли какие-либо переменные окружения, относящиеся к net-snmp. Переменные, такие как MIBS, могут влиять на поведение загрузки MIB. Убедитесь, что нет конфликтующих переменных, которые могут переопределить ваш путь поиска MIB.

  8. Проблемы с кешем:
    Если вы ранее использовали более старую версию net-snmp, возможно, имеются закэшированные данные MIB. Попробуйте очистить кеш, удалив файлы из /var/net-snmp и /var/net-snmp/snmpapp.conf.

Перспективы и следующее действие

После выполнения всех перечисленных шагов, попробуйте снова запустить утилиты net-snmp. Если проблема продолжает существовать, вам может понадобиться дополнительно предоставить детали о конкретных командах и конфигурациях, которые вы используете, чтобы углубиться в проблему.

Желаем вам удачи в решении этой проблемы!

Оцените материал
Добавить комментарий

Капча загружается...