Как установить Nagios 4 и контролировать свои серверы в Ubuntu 14.04

Вступление

В этом руководстве мы рассмотрим установку очень популярной системы мониторинга с открытым исходным кодом Nagios 4 в Ubuntu 14.04. Мы рассмотрим некоторые основные настройки, чтобы вы могли отслеживать ресурсы хоста через веб-интерфейс. Мы также будем использовать Nagios Remote Plugin Executor (NRPE), который будет установлен в качестве агента на удаленных хостах, для мониторинга их локальных ресурсов.

Nagios полезен для ведения инвентаризации ваших серверов и проверки работоспособности критически важных служб. Использование системы мониторинга, такой как Nagios, является важным инструментом для любой производственной серверной среды.

Предпосылки

Чтобы следовать этому руководству, вы должны иметь привилегии суперпользователя на сервере Ubuntu 14.04, на котором будет работать Nagios. В идеале вы будете использовать пользователя без полномочий root с привилегиями суперпользователя. Если вам нужна помощь в настройке, выполните шаги с 1 по 3 в этом руководстве: Initial Настройка сервера с помощью Ubuntu 14.04.

Стек LAMP также требуется. Следуйте этому руководству, если вам нужно его настроить: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04 Как установить стек Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 14.04.

В этом руководстве предполагается, что на вашем сервере включена частная сеть. Если это не так, просто замените все ссылки на частные IP-адреса публичными IP-адресами.

Теперь, когда у нас есть предварительные условия, давайте перейдем к установке Nagios 4.

Установите Nagios 4

В этом разделе будет рассказано, как установить Nagios 4 на ваш сервер мониторинга. Вам нужно заполнить этот раздел только один раз.

Создать пользователя и группу Nagios

Мы должны создать пользователя и группу, которые будут запускать процесс Nagios. Создайте пользователя «nagios» и группу «nagcmd», затем добавьте пользователя в группу с помощью следующих команд:

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios

Установить зависимости сборки

Поскольку мы собираем Nagios Core из исходного кода, мы должны установить несколько библиотек разработки, которые позволят нам завершить сборку. Пока мы это делаем, мы также установим + apache2-utils +, который будет использоваться для настройки веб-интерфейса Nagios.

Сначала обновите список пакетов apt-get:

sudo apt-get update

Затем установите необходимые пакеты:

sudo apt-get install build-essential libgd2-xpm-dev openssl libssl-dev xinetd apache2-utils unzip

Давайте установим Nagios сейчас.

Установите Nagios Core

Загрузите исходный код для последней стабильной версии Nagios Core. Перейдите на Nagios страницу загрузки и нажмите ссылку * Пропустить для загрузки * под формой. Скопируйте адрес ссылки для последней стабильной версии, чтобы вы могли загрузить ее на свой сервер Nagios.

На момент написания этой статьи последней стабильной версией является Nagios 4.1.1. Загрузите его в свой домашний каталог с помощью curl:

cd ~
curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-.tar.gz

Распакуйте архив Nagios с помощью этой команды:

tar xvf nagios-*.tar.gz

Затем перейдите в извлеченный каталог:

cd nagios-

Перед сборкой Nagios мы должны его настроить. Если вы хотите настроить его на использование postfix (который вы можете установить с помощью apt-get), добавьте + - with-mail = / usr / sbin / sendmail + к следующей команде:

./configure --with-nagios-group=nagios --with-command-group=nagcmd

Теперь скомпилируйте Nagios с помощью этой команды:

make all

Теперь мы можем запустить эти команды make для установки 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 можно здесь: Nagios Download Plugins Download. Скопируйте адрес ссылки для последней версии и скопируйте адрес ссылки, чтобы вы могли загрузить его на свой сервер Nagios.

На момент написания этой статьи последней версией является Nagios Plugins 2.1.1. Загрузите его в свой домашний каталог с помощью curl:

cd ~
curl -L -O http://nagios-plugins.org/download/nagios-plugins-.tar.gz

Извлеките архив плагинов Nagios с помощью этой команды:

tar xvf nagios-plugins-*.tar.gz

Затем перейдите в извлеченный каталог:

cd nagios-plugins-*

Прежде чем создавать плагины Nagios, мы должны его настроить. Используйте эту команду:

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl

Теперь скомпилируйте плагины Nagios с помощью этой команды:

make

Затем установите его с помощью этой команды:

sudo make install

Установить NRPE

Найти исходный код последней стабильной версии NRPE можно на странице загрузок NRPE. Загрузите последнюю версию на свой сервер Nagios.

На момент написания этой статьи последний выпуск был 2.15. Загрузите его в свой домашний каталог с помощью curl:

cd ~
curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/.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 в конец (замените фактический IP-адрес вашего сервера):

only_from = 127.0.0.1

Сохранить и выйти. Только серверу Nagios будет разрешено общаться с NRPE.

Перезапустите службу xinetd, чтобы запустить NRPE:

sudo service xinetd restart

Теперь, когда Nagios 4 установлен, нам нужно его настроить.

Настроить Nagios

Теперь давайте выполним начальную настройку Nagios. Вам нужно выполнить этот раздел только один раз на вашем сервере Nagios.

Организовать конфигурацию Nagios

Откройте основной файл конфигурации Nagios в вашем любимом текстовом редакторе. Мы будем использовать vi для редактирования файла:

sudo vi /usr/local/nagios/etc/nagios.cfg

Теперь найдите раскомментируйте эту строку, удалив + # +:

#cfg_dir=/usr/local/nagios/etc/servers

Сохранить и выйти.

Теперь создайте каталог, в котором будет храниться файл конфигурации для каждого сервера, который вы будете отслеживать:

sudo mkdir /usr/local/nagios/etc/servers

Настроить контакты Nagios

Откройте конфигурацию контактов Nagios в своем любимом текстовом редакторе. Мы будем использовать vi для редактирования файла:

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

Найдите директиву электронной почты и замените ее значение (выделенная часть) на свой собственный адрес электронной почты:

email                                   ; <<***** 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

Включите модули Apache rewrite и cgi:

sudo a2enmod rewrite
sudo a2enmod cgi

Используйте htpasswd, чтобы создать пользователя-администратора с именем «nagiosadmin», который может получить доступ к веб-интерфейсу Nagios:

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Введите пароль в командной строке. Запомните этот пароль, так как он понадобится вам для доступа к веб-интерфейсу Nagios.

Теперь создайте символическую ссылку + 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-адреса, которые могут получить доступ к веб-интерфейсу Nagios, вам нужно отредактировать файл конфигурации Apache:

sudo vi /etc/apache2/sites-available/nagios.conf

Найдите и прокомментируйте следующие две строки, добавив перед ними символы + # +:

Order allow,deny
Allow from all

Затем раскомментируйте следующие строки, удалив символы + # +, и добавьте IP-адреса или диапазоны (разделенные пробелами), которые вы хотите разрешить в строке + Allow from +:

#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1

Поскольку эти строки появятся дважды в файле конфигурации, вам придется выполнить эти шаги еще раз.

Сохранить и выйти.

Теперь перезапустите Apache, чтобы изменения вступили в силу:

sudo service nagios restart
sudo service apache2 restart

Nagios сейчас запущен, так что давайте попробуем войти в систему.

Доступ к веб-интерфейсу Nagios

Откройте ваш любимый веб-браузер и перейдите на сервер Nagios (замените выделенный фрагмент IP-адресом или именем хоста):

http:///nagios

Поскольку мы настроили Apache для использования htpasswd, вы должны ввести учетные данные, которые вы создали ранее. Мы использовали «nagiosadmin» в качестве имени пользователя:

изображение: https: //assets.digitalocean.com/articles/nagios/htpasswd_prompt.png [запрос аутентификации htaccess]

После аутентификации вы увидите домашнюю страницу Nagios по умолчанию. Нажмите на ссылку * Hosts * в левой панели навигации, чтобы увидеть, какие хосты отслеживает Nagios:

изображение: https: //assets.digitalocean.com/articles/nagios/hosts_link.png [Страница хостов Nagios]

Как видите, Nagios отслеживает только «localhost» или самого себя.

Давайте следить за другим хостом с помощью Nagios!

Контролировать хост с NRPE

В этом разделе мы покажем вам, как добавить новый хост в Nagios, поэтому он будет отслеживаться. Повторите этот раздел для каждого сервера, который вы хотите отслеживать.

На сервере, который вы хотите отслеживать, обновите apt-get:

sudo apt-get update

Теперь установите плагины Nagios и NRPE:

sudo apt-get install nagios-plugins nagios-nrpe-server

Настроить разрешенные хосты

Теперь давайте обновим файл конфигурации NRPE. Откройте его в своем любимом редакторе (мы используем vi):

sudo vi /etc/nagios/nrpe.cfg

Найдите директиву + allow_hosts + и добавьте частный IP-адрес вашего сервера Nagios в список, разделенный запятыми (замените его вместо выделенного примера):

allowed_hosts=127.0.0.1

Сохранить и выйти. Это настраивает NRPE для приема запросов от вашего сервера Nagios через его частный IP-адрес.

Настройте разрешенные команды NRPE

Найдите имя вашей корневой файловой системы (потому что это один из элементов, который мы хотим отслеживать):

df -h /

Мы будем использовать имя файловой системы в конфигурации NRPE для мониторинга использования вашего диска (это, вероятно, + / dev / vda +). Теперь откройте nrpe.cfg для редактирования:

sudo vi /etc/nagios/nrpe.cfg

Файл конфигурации NRPE очень длинный и полон комментариев. Есть несколько строк, которые вам нужно найти и изменить:

  • * server_address *: установить частный IP-адрес этого хоста

  • * allow_hosts *: установить частный IP-адрес вашего сервера Nagios

  • * команда [check_hda1] *: измените + / dev / hda1 + на то, что называется вашей корневой файловой системой

Три вышеупомянутые строки должны выглядеть следующим образом (подставьте соответствующие значения):

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

Обратите внимание, что в этом файле определено несколько других «команд», которые будут выполняться, если сервер Nagios настроен на их использование. Также обратите внимание, что NRPE будет прослушивать порт 5666, потому что установлен + server_port = 5666 +. Если у вас есть какие-либо брандмауэры, блокирующие этот порт, обязательно откройте его на вашем сервере Nagios.

Сохранить и выйти.

Перезапустите NRPE

Перезапустите NRPE, чтобы изменения вступили в силу:

sudo service nagios-nrpe-server restart

Как только вы закончите установку и настройку NRPE на хостах, которые вы хотите отслеживать, вам нужно будет добавить эти хосты в конфигурацию вашего сервера Nagios, прежде чем он начнет их мониторинг.

Добавить хост в конфигурацию Nagios

На вашем сервере Nagios создайте новый файл конфигурации для каждого из удаленных хостов, которые вы хотите отслеживать, в + / usr / local / nagios / etc / servers / +. Замените выделенное слово yourhost на имя вашего хоста:

sudo vi /usr/local/nagios/etc/servers/.cfg

Добавьте следующее определение хоста, заменив значение + host_name + на ваше удаленное имя хоста (в данном примере «web-1»), значение + alias + описанием хоста и значение + address + на частный IP-адрес удаленного хоста:

define host {
       use                             linux-server
       host_name
       alias
       address
       max_check_attempts              5
       check_period                    24x7
       notification_interval           30
       notification_period             24x7
}

С помощью приведенного выше файла конфигурации Nagios будет отслеживать только то, работает ли хост или нет. Если вам этого достаточно, сохранитесь и выйдите, затем перезапустите Nagios. Если вы хотите отслеживать определенные службы, читайте дальше.

Добавьте любой из этих сервисных блоков для сервисов, которые вы хотите отслеживать. Обратите внимание, что значение check_command определяет, что будет отслеживаться, включая пороговые значения состояния. Вот несколько примеров, которые вы можете добавить в файл конфигурации вашего хоста:

Пинг:

define service {
       use                             generic-service
       host_name
       service_description             PING
       check_command                   check_ping!100.0,20%!500.0,60%
}

SSH (notifications_enabled, установленный в 0, отключает уведомления для службы):

define service {
       use                             generic-service
       host_name
       service_description             SSH
       check_command                   check_ssh
       notifications_enabled           0
}

Если вы не уверены, что означает + использование generic-service +, это просто наследование значений шаблона службы, называемого «generic-service», который определен по умолчанию.

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

sudo service nagios reload

Как только вы закончите настройку Nagios для мониторинга всех ваших удаленных хостов, вы должны быть настроены. Обязательно получите доступ к веб-интерфейсу Nagios и перейдите на страницу * Services *, чтобы увидеть все ваши контролируемые хосты и сервисы:

изображение: https: //assets.digitalocean.com/articles/nagios/services.png [Страница служб Nagios]

Заключение

Теперь, когда вы отслеживаете свои хосты и некоторые из их сервисов, вы можете потратить некоторое время на то, чтобы выяснить, какие сервисы важны для вас, чтобы вы могли начать их мониторинг. Возможно, вы также захотите настроить уведомления, чтобы, например, вы получали электронное письмо, когда использование вашего диска достигает критического или критического порога или ваш основной веб-сайт не работает, чтобы вы могли разрешить ситуацию незамедлительно или даже до возникновения проблемы.

Удачи!

Related