Мое видение установки Nagios 4 на Ubuntu Trusty Server

Posted by

Как я понял работа системы по мониторингу именуемой, как строится вокруг приложения/агента NRPE ( Nagios Remote Plugin Executor). По сути это плагин через который идет взаимодействие с подконтрольными узлами. См. Наглядную схему ниже.

Схема работы Nagios мониторинга

Мое руководство поможет установить Nagios 4 и настроить мониторинг ресурсов хоста через веб-интерфейс Nagios.

Система Nagios позволяет отслеживать ресурсы сервера и работу основных сервисов. В целом системы мониторинга являются важным инструментом для любой среды производства.

Шаг №1: Устанавливаю на Ubuntu Trusty Server

ekzorchik@srv-trusty:~$ sudo rm -Rf /var/lib/apt/lists

ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-trusty:~$ sudo useradd nagios

ekzorchik@srv-trusty:~$ sudo groupadd nagcmd

ekzorchik@srv-trusty:~$ sudo usermod -aG nagcmd nagios

ekzorchik@srv-trusty:~$ sudo apt-get install -y apache2 mysql-server libapache2-mod-auth-mysql php5-mysql php5 libapache2-mod-php5 php5-mcrypt php5-cli

New password for the MySQL "root" user: 712mbddr@

Repeat password for the MySQL "root" user: 712mbddr@

ekzorchik@srv-trusty:~$ sudo nano /etc/apache2/apache2.conf

ServerName srv-trusty

ekzorchik@srv-trusty:~$ sudo unlink /etc/apache2/sites-available/000-default.conf

ekzorchik@srv-trusty:~$ sudo unlink /etc/apache2/sites-available/default-ssl.conf

ekzorchik@srv-trusty:~$ sudo unlink /etc/apache2/sites-enabled/000-default.conf

ekzorchik@srv-trusty:~$ sudo rm -Rf /var/www/html/

ekzorchik@srv-trusty:~$ sudo apt-get install -y build-essential libgd2-xpm-dev openssl libssl-dev xinetd unzip

Устанавливаю Nagios Core (Free Release) на момент написания данной заметки это 4.3.4:

ekzorchik@srv-trusty:~$ curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.4.tar.gz

ekzorchik@srv-trusty:~$ tar zxf nagios-4.3.4.tar.gz

ekzorchik@srv-trusty:~$ cd nagios-*

ekzorchik@srv-trusty:~/nagios-4.3.4$ ./configure --with-nagios-group=nagios --with-command-group=nagcmd

ekzorchik@srv-trusty:~/nagios-4.3.4$ make all

ekzorchik@srv-trusty:~/nagios-4.3.4$ sudo make install

ekzorchik@srv-trusty:~/nagios-4.3.4$ sudo make install-commandmode

ekzorchik@srv-trusty:~/nagios-4.3.4$ sudo make install-init

ekzorchik@srv-trusty:~/nagios-4.3.4$ sudo make install-config

ekzorchik@srv-trusty:~/nagios-4.3.4$ sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf

Чтобы иметь возможность запускать внешние команды через веб-интерфейс Nagios, нужно добавить пользователя www-data в группу nagcmd:

ekzorchik@srv-trusty:~/nagios-4.3.4$ sudo usermod -G nagcmd www-data

Шаг №2: Устанавливаю на сервер Nagios плагины

ekzorchik@srv-trusty:~/nagios-4.3.4$ cd ~

ekzorchik@srv-trusty:~$ curl -L -O http://www.nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz

ekzorchik@srv-trusty:~$ tar zxf nagios-plugins-*.tar.gz

ekzorchik@srv-trusty:~$ cd nagios-plugins-*

ekzorchik@srv-trusty:~/nagios-plugins-2.2.1$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl

ekzorchik@srv-trusty:~/nagios-plugins-2.2.1$ make

ekzorchik@srv-trusty:~/nagios-plugins-2.2.1$ sudo make install

ekzorchik@srv-trusty:~/nagios-plugins-2.2.1$ cd ~

Шаг №3: Устанавливаю агент/плагин на сервер Nagios именуемый, как NRPE:

ekzorchik@srv-trusty:~$ curl -L -O https://sourceforge.net/projects/nagios/files/nrpe-3.x/nrpe-3.2.1.tar.gz

ekzorchik@srv-trusty:~$ tar zxf nrpe-*.tar.gz

ekzorchik@srv-trusty:~$ cd nrpe-*

ekzorchik@srv-trusty:~/nrpe-3.2.1$ ./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagcmd --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu --with-inetd=type=xinetd

ekzorchik@srv-trusty:~/nrpe-3.2.1$ make all

ekzorchik@srv-trusty:~/nrpe-3.2.1$ sudo make install

ekzorchik@srv-trusty:~/nrpe-3.2.1$ sudo make install-plugin

ekzorchik@srv-trusty:~/nrpe-3.2.1$ sudo make install-config

ekzorchik@srv-trusty:~/nrpe-3.2.1$ sudo make install-inetd

ekzorchik@srv-trusty:~/nrpe-3.2.1$ cat /etc/services | grep 'nrpe'

nrpe 5666/tcp # Nagios Remote Plugin Executor

ekzorchik@srv-trusty:~/nrpe-3.2.1$ sudo make install-daemon

ekzorchik@srv-trusty:~/nrpe-3.2.1$ sudo vi /etc/xinetd.d/nrpe

# указываем текущий IP адрес системы где разворачиваем Nagios

only_from = 127.0.0.1 10.7.9.130

ekzorchik@srv-trusty:~/nrpe-3.2.1$ sudo service xinetd restart

На заметку: по правилам сборки советую обратиться к README.md, а не тому что встречается в большинстве статей интернета, т. к. все меняется, а справка внутри пакета содержит более актуальную информацию чем что-либо другое.

ekzorchik@srv-trusty:~/nrpe-3.2.1$ cd ~

Шаг №4: Перехожу к настройке Nagios Core

ekzorchik@srv-trusty:~$ sudo vi /usr/local/nagios/etc/nagios.cfg

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

ekzorchik@srv-trusty:~$ sudo mkdir -p /usr/local/nagios/etc/servers

ekzorchik@srv-trusty:~$ sudo vi /usr/local/nagios/etc/objects/contacts.cfg

define contact{

contact_name nagiosadmin

use generic-contact

alias Nagios Admin

email support@ekzorchik.ru

}

Шаг №5: Настройка команды check_nrpe в определении серверов Nagios.

ekzorchik@srv-trusty:~$ sudo vi /usr/local/nagios/etc/objects/commands.cfg

define command{

command_name check_nrpe

command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

Шаг №6: Запускаю сервис Nagios

ekzorchik@srv-trusty:~$ sudo service nagios restart && sudo service nagios status

Running configuration check...

Stopping nagios: done.

Starting nagios: done.

nagios (pid 3393) is running...

Шаг №7: Устанавливаю на систему пакет LAMP:

ekzorchik@srv-trusty:~$ sudo a2enmod rewrite

ekzorchik@srv-trusty:~$ sudo a2enmod cgi

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

ekzorchik@srv-trusty:~$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users

sudo: htpasswd: command not found

ekzorchik@srv-trusty:~$ sudo apt-get install apache2-utils -y

ekzorchik@srv-trusty:~$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

New password: 712mbddr@

Re-type new password: 712mbddr@

Adding password for user nagiosadmin

На заметку: Может если Вам хочется, чтобы дефолтный пользователь не имел логин: nagiosadmin, то в этом случает перейдите к редактирования файла /usr/local/nagios/etc/cgi.cfg и во всех упоминаниях следует заменить nagiosadmin на Ваше отличное от дефолта учетной имя.

ekzorchik@srv-trusty:~$ sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

ekzorchik@srv-trusty:~$ sudo service apache2 restart

ekzorchik@srv-trusty:~$ sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Шаг №8: Когда все подготовительные шаги пройдены, открываю браузер и указываю IP&DNS адрес сервера где развернуто приложение Nagios для просмотра визуализируемой информации:

  • http://IP&DNS/nagios
  • Имя пользователя: nagiosadmin
  • Пароль: 712mbddr@

и нажимаю «Войти», тем самым совершив переход в Web-систему поднятого мониторинга.

Когда-то давным давно я с ней работал, но почему-то перешел на Zabbix, а сейчас хочу уйти от его монструозности и то что отладка своих проверок то работает, а через некоторое время перестает. Да и к тому же, написанная когдa-то; все работало, уведомление на почту больше почему-то не отрабатывает в Zabbix. В общем не пойми что.

Web-интерфейс системы мониторинга Nagios CoreИтак начало положено, но я не буду в этой заметке показывать, как установить агенты и как их подключить в Nagios, а сделаю это в последующих, чтобы каждая задача и задумка была законченной. Так лучше и понятнее, а пока я разобрал еще раз для себя как установить Nagios Core на Ubuntu Trusty Server. Я планирую использовать только эту систему мониторинга и ни какую другую, в Zabbix я разочаровался. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.