Мониторинг сервера Ubuntu 14.04 при помощи Nagios 4
Ubuntu | Комментировать запись
Данное руководство поможет установить популярную открытую систему мониторинга Nagios 4 на сервер Ubuntu 14.04, а также выполнить базовую настройку мониторинга ресурсов хоста. Кроме того, в руководстве показано, как настроить Nagios Remote Plugin Executor (NRPE) в качестве агента на удалённых хостах для мониторинга их ресурсов.
Система Nagios позволяет отслеживать ресурсы сервера и работу основных сервисов. В целом системы мониторинга являются важным инструментом для любой среды производства.
Примечание: Аналогичное руководство для CentOS можно найти по этой ссылке.
Требования
- Предварительно настроенный сервер Ubuntu 14.04.
- Права суперпользователя (подробнее – здесь).
- Заранее установленный стек LAMP (инструкции по установке можно найти здесь).
- Частная сеть; если ваш сервер не поддерживает частную сеть, просто замените ссылки на внутренний IP-адрес внешним IP-адресом.
Установка Nagios 4
Создание пользователя и группы Nagios
Создайте пользователя и группу для запуска процесса Nagios; в данном руководстве пользователь называется nagios, а группа nagcmd. Создайте их и добавьте пользователя в группу.
sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
Установка зависимостей
После этого нужно установить несколько библиотек для разработки, чтобы собрать Nagios Core из исходного кода, и apache2-utils для настройки интерфейса Nagios.
Обновите список пакетов системы:
sudo apt-get update
Установите пакеты:
sudo apt-get install build-essential libgd2-xpm-dev openssl libssl-dev xinetd apache2-utils unzip
Установка Nagios Core
Загрузите последний стабильный релиз Nagios Core. Откройте загрузочную страницу сайта, кликните Skip to download и загрузите ссылку на стабильный релиз.
Примечание: В руководстве используется версия Nagios 4.1.1.
Загрузите пакет в домашний каталог:
cd ~
curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz
Распакуйте архив:
tar xvf nagios-*.tar.gz
Откройте полученный каталог:
cd nagios-*
Прежде чем приступить к сборке Nagios, нужно настроить систему. Чтобы настроить Nagios для поддержки postfix (который можно установить при помощи apt-get), добавьте –with-mail=/usr/sbin/sendmail в следующую команду:
./configure --with-nagios-group=nagios --with-command-group=nagcmd
Скомпилируйте Nagios:
make all
Затем установите Nagios, сценарии инициализации и образцы конфигурационных файлов:
sudo make install
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf
Чтобы иметь возможность запускать внешние команды через веб-интерфейс Nagios, нужно добавить пользователя www-data в группу nagcmd:
sudo usermod -G nagcmd www-data
Установка плагинов Nagios
Последний релиз Nagios Plugins можно найти по этой ссылке. Скопируйте ссылку на последний стабильный релиз и загрузите пакет в домашний каталог.
Примечание: В руководстве используется версия Nagios Plugins 2.1.1.
cd ~
curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
Распакуйте архив Nagios Plugins.
tar xvf nagios-plugins-*.tar.gz
Откройте полученный каталог:
cd nagios-plugins-*
Запустите настройку Nagios Plugins перед сборкой пакетов.
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
Скомпилируйте Nagios Plugins:
make
Установите полученный пакет:
sudo make install
Установка NRPE
Откройте загрузочную страницу сайта, найдите последний стабильный релиз NRPE и загрузите его в домашний каталог.
Примечание: В руководстве используется NRPE 2.15.
cd ~
curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
Распакуйте архив NRPE:
tar xvf nrpe-*.tar.gz
Перейдите в полученный каталог:
cd nrpe-*
Чтобы настроить NRPE, запустите команду:
./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
После этого соберите и установите NRPE и сценарий xinetd:
make all
sudo make install
sudo make install-xinetd
sudo make install-daemon-config
Откройте скрипт запуска xinetd в текстовом редакторе:
sudo vi /etc/xinetd.d/nrpe
В строку only_from добавьте внутренний IP-адрес сервера Nagios:
only_from = 127.0.0.1 10.132.224.168
Примечание: Укажите свой правильный IP-адрес.
Сохраните и закройте файл. Теперь взаимодействовать с NRPE сможет только сервер Nagios.
Перезапустите xinetd:
sudo service xinetd restart
Установка Nagios 4 успешно завершена. Теперь нужно настроить систему.
Настройка Nagios 4
Откройте главный конфигурационный файл Nagios в текстовом редакторе:
sudo vi /usr/local/nagios/etc/nagios.cfg
Найдите и раскомментируйте следующую строку:
#cfg_dir=/usr/local/nagios/etc/servers
Сохраните и закройте файл.
Создайте каталог для хранения конфигурационных файлов отслеживаемых серверов.
sudo mkdir /usr/local/nagios/etc/servers
Откройте конфигурационный файл contacts в текстовом редакторе:
sudo vi /usr/local/nagios/etc/objects/contacts.cfg
Найдите директиву email и укажите в ней свой адрес электронной почты.
email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
Сохраните и закройте файл.
Настройка команды check_nrpe
Добавьте в настройки Nagios новую команду:
sudo vi /usr/local/nagios/etc/objects/commands.cfg
Добавьте в конец файла следующий код:
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Сохраните и закройте файл. Теперь вы сможете использовать команду check_nrpe в определении серверов Nagios.
Настройка Apache
Включите модули rewrite и cgi:
sudo a2enmod rewrite
sudo a2enmod cgi
Используйте htpasswd, чтобы создать пользователя по имени nagiosadmin для доступа к веб-интерфейсу Nagios.
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Введите пароль. Запомните эти учётные данные, поскольку они пригодятся для работы с веб-интерфейсом Nagios.
Примечание: Если назвать этого пользователя не nagiosadmin, то нужно будет отредактировать файл /usr/local/nagios/etc/cgi.cfg и во всех ссылках на nagiosadmin указать другое имя пользователя.
После этого создайте символьную ссылку на nagios.conf в sites-enabled:
sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/
Теперь система Nagios готова к запуску. Не забудьте перезапустить Apache:
sudo service nagios start
sudo service apache2 restart
Чтобы настроить автозапуск Nagios, введите:
sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Ограничение доступа по IP-адресу (опционально)
Чтобы разрешить доступ только определённым IP-адресам, отредактируйте конфигурацию Apache:
sudo vi /etc/apache2/sites-available/nagios.conf
Найдите и закомментируйте следующие строки:
Order allow,deny
Allow from all
Затем раскомментируйте следующие строки и добавьте IP-адреса или диапазоны IP-адресов (через пробел), которые будут иметь доступ к серверу, в директиву Allow from:
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
Примечание: Поскольку эти строки встречаются в конфигурационном файле два раза, нужно повторить эти инструкции дважды.
Сохраните и закройте файл.
Запустите Nagios и перезапустите Apache, чтобы обновить настройки:
sudo service nagios restart
sudo service apache2 restart
Веб-интерфейс Nagios
Откройте браузер и перейдите к Nagios по этой ссылке:
http://nagios_server_public_ip/nagios
Примечание: Укажите в ссылке свой IP-адрес.
Веб-сервер Apache использует htpasswd, потому нужно ввести учётные данные пользователя nagiosadmin.
Пройдя аутентификацию, вы получите доступ к домашней странице Nagios. Чтобы просмотреть список серверов, отслеживаемых Nagios, откройте Hosts в левой панели управления.
Как видите, на данный момент Nagios мониторит только localhost.
Мониторинг хоста при помощи NRPE
Данный раздел покажет, как добавить в настройки мониторинга Nagios новый сервер.
Примечание: Если вы хотите добавить несколько серверов, повторите эти инструкции на каждом из них.
Войдите на сервер, который нужно добавить в список отслеживаемых, и обновите apt-get:
sudo apt-get update
Затем установите Nagios Plugins и NRPE.
sudo apt-get install nagios-plugins nagios-nrpe-server
Настройка хостов
Откройте конфигурационный файл NRPE в текстовом редакторе:
sudo vi /etc/nagios/nrpe.cfg
Найдите директиву allowed_hosts и добавьте в конец внутренний IP-адрес сервера Nagios (через запятую).
allowed_hosts=127.0.0.1,10.132.224.168
Сохраните и закройте файл. Теперь NRPE будет принимать запросы от сервера Nagios через внутренний IP-адрес.
Настройка команд NRPE
Уточните имя файловой системы root (это один из компонентов, который будет отслеживаться):
df -h /
Используйте имя файловой системы в конфигурации NRPE для мониторинга использования диска (/dev/vda). Откройте nrpe.cfg в редакторе:
sudo vi /etc/nagios/nrpe.cfg
Конфигурационный файл NRPE очень длинный и содержит много закомментированных строк. Вам понадобятся только следующие строки:
- server_address: Укажите внутренний IP-адрес хоста.
- allowed_hosts: Укажите внутренний IP-адрес сервера Nagios.
- command[check_hda1]: Замените/dev/hda1 именем файловой системы root.
В результате эти строки должны иметь такой вид:
server_address=client_private_IP
allowed_hosts=nagios_server_private_IP
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda
Обратите внимание: файл содержит несколько других строк command, которые может использовать Nagios. NRPE прослушивает порт 5666 (строка server_port=5666). Если этот порт заблокирован брандмауэром, не забудьте открыть его.
Сохраните и закройте файл.
Перезапустите NRPE, чтобы обновить настройки:
sudo service nagios-nrpe-server restart
После этого нужно добавить хост в настройки сервера Nagios.
Добавление хоста в настройки Nagios
Перейдите на сервер Nagios и создайте новый конфигурационный файл для хоста в /usr/local/nagios/etc/servers/.
sudo vi /usr/local/nagios/etc/servers/yourhost.cfg
Примечание: Вместо yourhost укажите имя своего хоста.
Добавьте в файл следующий код, заменив значение host_name именем удалённого хоста (в данном примере это web-1), значение alias – описанием хоста, а address – внутренним IP-адресом удалённого хоста.
define host {
use linux-server
host_name yourhost
alias My first Apache server
address 10.132.234.52
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}
Теперь Nagios будет мониторить данный сервер. Однако система будет отслеживать только состояние удалённого хоста (включен он или отключен). Если этого достаточно, сохраните и закройте файл. Если вы хотите мониторить отдельные сервисы на удалённом хосте, не закрывайте файл.
Ниже приведены примеры настройки отслеживания сервисов. Просто выберите сервис, который вы хотите отслеживать, и добавьте в файл предложенный блок настроек. Имейте в виду: значение команды check_command определяет, что именно будет отслеживаться.
Ping:
define service {
use generic-service
host_name yourhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
SSH (notifications_enabled со значением 0 отключает уведомления):
define service {
use generic-service
host_name yourhost
service_description SSH
check_command check_ssh
notifications_enabled 0
}
Директива use generic-service просто наследует значения шаблона generic-service, установленного по умолчанию.
Сохраните и закройте файл. Перезапустите Nagios, чтобы обновить настройки:
sudo service nagios reload
После настройки откройте веб-интерфейс и проверьте страницу Services; теперь она должна содержать список только что добавленных удалённых хостов.
Заключение
Настроив мониторинг хостов и некоторых сервисов, определите, какие сервисы имеют решающее значение в работе сервера, и добавьте их в список. Также можно настроить извещения; к примеру, Nagios может сообщить о том, что использование диска достигло критической отметки или что веб-сайт не работает. Это позволяет вовремя устранить подобные проблемы.
Tags: LAMP stack, Nagios, Nagios 4, Nagios Core, NRPE, Ubuntu 14.04