Мониторинг сервера Ubuntu 14.04 при помощи Nagios 4

Данное руководство поможет установить популярную открытую систему мониторинга 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: , , , , ,

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