Как я понял работа системы по мониторингу именуемой, как Nagios строится вокруг приложения/агента NRPE ( Nagios Remote Plugin Executor). По сути это плагин через который идет взаимодействие с подконтрольными узлами. См. Наглядную схему ниже.
Мое руководство поможет установить Nagios 4 и настроить мониторинг ресурсов хоста через веб-интерфейс Nagios.
Система Nagios позволяет отслеживать ресурсы сервера и работу основных сервисов. В целом системы мониторинга являются важным инструментом для любой среды производства.
Шаг №1: Устанавливаю Nagios Core на 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. В общем не пойми что.
Итак начало положено, но я не буду в этой заметке показывать, как установить агенты и как их подключить в Nagios, а сделаю это в последующих, чтобы каждая задача и задумка была законченной. Так лучше и понятнее, а пока я разобрал еще раз для себя как установить Nagios Core на Ubuntu Trusty Server. Я планирую использовать только эту систему мониторинга и ни какую другую, в Zabbix я разочаровался. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.