Вопрос или проблема
Я только что установил net-snmp на Ubuntu 16.04 из исходников, используя этот учебник (скачал патч 5.7), и при вызове
$ snmpget --version
NET-SNMP version 5.7.3
$ whereis snmpd
snmpd: /usr/local/sbin/snmpd
видно, что установка выполнена. Однако, когда я хочу проверить, запущен ли snmpd
sudo service snmpd status
возвращает Loaded: not-found (Reason: No such file or directory) Active: inactive (dead)
. Когда я пытаюсь запустить snmpd
sudo service snmpd start
возвращает Failed to start snmpd.service: Unit snmpd.service not found
. При запуске его напрямую из командной строки
$ snmpd
snmpd: symbol lookup error: snmpd: Undefined symbol: netsnmpd_close_fds
Другая проблема в том, что директория /etc/snmp/
не существует, а там должен быть файл snmpd.conf
, который мне нужно отредактировать.
Я никогда не сталкивался с такими проблемами, когда использовал
sudo apt-get install snmpd
, но я должен использовать исходники, чтобы настроить установку с опциями, которые не идут с установкой ‘apt-get’. Что я делаю не так?
Удалите snmp:
sudo apt-get -y autoremove snmp
Установите снова следующим образом:
sudo apt-get update -y
sudo apt-get upgrade -y
Удалите все ненужные файлы, показанные в системе:
apt-get install snmpd
cat /etc/snmp/snmpd.conf
systemctl restart snmpd
systemctl enable snmpd
systemctl status snmpd
Ответ или решение
Не удается запустить snmpd.service на Ubuntu 16.04 после установки из источников: Подробное решение
Если вы столкнулись с ошибкой "Failed to start snmpd.service: Unit snmpd.service not found" после установки net-snmp из источников на Ubuntu 16.04, вероятно, проблема связана с неправильной конфигурацией или отсутствием необходимых файлов и директорий. Давайте разберем возможные причины и решения этой ошибки, используя методологию FOREST.
Факты
- Описание проблемы:
- Вы успешно установили net-snmp версии 5.7.3 из исходников и можете проверить версию с помощью
snmpget --version
. - Каталог
/etc/snmp/
отсутствует, хотя должен содержать файл конфигурацииsnmpd.conf
. - При проверке статуса сервиса
snmpd
и при его запуске через командуsudo service snmpd start
, система сообщает, что юнитsnmpd.service
не найден. - Запуск
snmpd
напрямую приводит к ошибке с неопределенным символом:netsnmpd_close_fds
.
- Вы успешно установили net-snmp версии 5.7.3 из исходников и можете проверить версию с помощью
Возможные причины
-
Отсутствие системного юнита: Поскольку установка производилась из источников, возможно, что service файл для systemd не был создан или размещен в нужной директории.
-
Ошибки в зависимости и символах: Ошибка
Undefined symbol: netsnmpd_close_fds
часто указывает на несоответствие версий библиотек или на проблемы при компиляции. -
Недостаток конфигурации: Отсутствие каталога
/etc/snmp/
и файлаsnmpd.conf
указывает на неполную установку или неправильную настройку.
Решения
1. Создание системного юнита и его загрузка
-
Убедитесь, что файл юнита для systemd существует. Если нет, создайте его:
sudo nano /etc/systemd/system/snmpd.service
Включите в файл следующее содержимое:
[Unit] Description=Simple Network Management Protocol (SNMP) Daemon. After=network.target [Service] Type=forking ExecStart=/usr/local/sbin/snmpd -Lo ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
-
Перезагрузите конфигурацию systemd:
sudo systemctl daemon-reload
-
Активируйте и запустите сервис:
sudo systemctl enable snmpd sudo systemctl start snmpd
2. Предотвращение ошибок символов
- Убедитесь, что все нужные библиотеки корректно установлены и доступны. Возможно, необходимо перекомпилировать с указанием правильных путей к библиотекам.
3. Конфигурация
- Создайте необходимые каталоги и файлы:
sudo mkdir -p /etc/snmp sudo nano /etc/snmp/snmpd.conf
Вставьте в файл конфигурации необходимые настройки согласно вашим требованиям.
4. Проверка успешности
- После всех изменений проверьте статус сервиса:
sudo systemctl status snmpd
Эффективность и возможности
Эти шаги должны помочь устранить возникшие проблемы с установкой и запуском snmpd. Важно всегда проверять соответствие версий библиотек и корректность компиляции. Если проблема сохраняется, рассмотрите возможность добавить отладочные логи для более детального анализа. Работа с исходниками требует внимательности и понимания зависимости всех компонентов системы.