Цель получить инструмент для личного применения, задачей которого будет мониторинг только того что мне нужно без привлечения отдельных других продуктов, да просто хочу посмотреть, что изменилось с того времени, когда я использовал Nagios, но потом перешел на Zabbix и уже довольно таки давно его применяю, как для домашних проектов, так и для рабочей инфраструктуры. Может я все-таки вернусь на него, ведь когда работал в Dataline, то его использовали и используют по сей день. Разворачивать буду Nagios из исходников на Ubuntu 22.04 Server от и до.

Шаг №1: Обновляю информацию о репозитариях:

ekzorchik@srv-us2204a:~$ sudo rm -Rf /var/lib/apt/lists
ekzorchik@srv-us2204a:~$ sudo apt-get update && sudo apt-get upgrade -y

Шаг №2: Устанавливаю необходимые пакеты перед Nagios:

ekzorchik@srv-us2204a:~$ sudo apt install -y build-essential apache2 php openssl perl make php-gd libgd-dev libapache2-mod-php libperl-dev libssl-dev daemon wget apache2-utils unzip

Шаг №3: Создаю пользователя, группу под будущий сервис Nagios:

ekzorchik@srv-us2204a:~$ sudo useradd nagios
ekzorchik@srv-us2204a:~$ sudo groupadd nagcmd
ekzorchik@srv-us2204a:~$ sudo usermod -aG nagcmd nagios
ekzorchik@srv-us2204a:~$ sudo usermod -aG nagcmd www-data

Шаг №4: Скачиваю и устанавливаю Nagios на Ubuntu 22.04 Server

ekzorchik@srv-us2204a:~$ wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz
ekzorchik@srv-us2204a:~$ tar zxf nagios-4.4.6.tar.gz
ekzorchik@srv-us2204a:~$ cd nagios-4.4.6/
ekzorchik@srv-us2204a:~/nagios-4.4.6$
ekzorchik@srv-us2204a:~/nagios-4.4.6$ sudo ./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/sites-enabled/
General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagcmd
             Event Broker:  yes
        Install ${prefix}:  /usr/local/nagios
    Install ${includedir}:  /usr/local/nagios/include/nagios
                Lock file:  /run/nagios.lock
   Check result directory:  /usr/local/nagios/var/spool/checkresults
           Init directory:  /lib/systemd/system
  Apache conf.d directory:  /etc/apache2/sites-enabled/
             Mail program:  /bin/mail
                  Host OS:  linux-gnu
          IOBroker Method:  epoll

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/nagios/
                  CGI URL:  http://localhost/nagios/cgi-bin/
 Traceroute (used by WAP):
ekzorchik@srv-us2204a:~/nagios-4.4.6$ sudo make all
ekzorchik@srv-us2204a:~/nagios-4.4.6$ sudo make install
ekzorchik@srv-us2204a:~/nagios-4.4.6$ sudo make install-init
ekzorchik@srv-us2204a:~/nagios-4.4.6$ sudo make install-config
ekzorchik@srv-us2204a:~/nagios-4.4.6$ sudo make install-commandmode

Шаг №5: Устанавливаем/добавляем Nagios в Webинтерфейс:

ekzorchik@srv-us2204a:~/nagios-4.4.6$ sudo make install-webconf
/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-enabled//nagios.conf
if [ 0 -eq 1 ]; then \
        ln -s /etc/apache2/sites-enabled//nagios.conf /etc/apache2/sites-enabled/nagios.conf; \
fi
*** Nagios/Apache conf file installed ***
ekzorchik@srv-us2204a:~/nagios-4.4.6$
ekzorchik@srv-us2204a:~/nagios-4.4.6$ cd ~
ekzorchik@srv-us2204a:~$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password: указываю к примеру пароль 712mbddr@
Re-type new password: указываю к примеру пароль 712mbddr@
Adding password for user nagiosadmin
ekzorchik@srv-us2204a:~$ cat /usr/local/nagios/etc/htpasswd.users
nagiosadmin:$apr1$59BKasuD$9SSUCtb4bur4m6TnlP8t3.
ekzorchik@srv-us2204a:~$
ekzorchik@srv-us2204a:~$ sudo a2enmod cgi
Enabling module cgi.
To activate the new configuration, you need to run:
  systemctl restart apache2
ekzorchik@srv-us2204a:~$ sudo systemctl restart apache2

Шаг №6: Настройка отправки уведомлений настраивается через contacts.cfg:

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

Шаг №7: Устанавливаем для Nagios плагины:

ekzorchik@srv-us2204a:~$ wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
ekzorchik@srv-us2204a:~$ tar zxf nagios-plugins-2.3.3.tar.gz
ekzorchik@srv-us2204a:~$ cd nagios-plugins-2.3.3/
ekzorchik@srv-us2204a:~/nagios-plugins-2.3.3$
ekzorchik@srv-us2204a:~/nagios-plugins-2.3.3$ sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios
ekzorchik@srv-us2204a:~/nagios-plugins-2.3.3$ sudo make
ekzorchik@srv-us2204a:~/nagios-plugins-2.3.3$ sudo make install
ekzorchik@srv-us2204a:~/nagios-plugins-2.3.3$ cd ~
ekzorchik@srv-us2204a:~$

Шаг №8: Запускаем Nagios:

ekzorchik@srv-us2204a:~$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nagios Core 4.4.6
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2020-04-28
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
        Checked 8 services.
        Checked 1 hosts.
        Checked 1 host groups.
        Checked 0 service groups.
        Checked 1 contacts.
        Checked 1 contact groups.
        Checked 24 commands.
        Checked 5 time periods.
        Checked 0 host escalations.
        Checked 0 service escalations.
Checking for circular paths...
        Checked 1 hosts
        Checked 0 service dependencies
        Checked 0 host dependencies
        Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check
ekzorchik@srv-us2204a:~$

Шаг №9: Активируем чтобы сервис Nagios запускался вместе с системой при ее старте:

ekzorchik@srv-us2204a:~$ sudo systemctl enable nagios
Created symlink /etc/systemd/system/multi-user.target.wants/nagios.service → /lib/systemd/system/nagios.service.
ekzorchik@srv-us2204a:~$ sudo systemctl status nagios
○ nagios.service - Nagios Core 4.4.6
     Loaded: loaded (/lib/systemd/system/nagios.service; enabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: https://www.nagios.org/documentation
ekzorchik@srv-us2204a:~$ sudo systemctl start nagios && sudo systemctl status nagios | head -n5
● nagios.service - Nagios Core 4.4.6
     Loaded: loaded (/lib/systemd/system/nagios.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-05-15 08:28:29 MSK; 15ms ago
       Docs: https://www.nagios.org/documentation
    Process: 34395 ExecStartPre=/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg (code=exited, status=0/SUCCESS)
ekzorchik@srv-us2204a:~$

Шаг №10: Открываю браузер и обращаюсь к системе, на которой развернут Nagios:

http://IP&DNS/nagios и авторизуюсь (Login: nagiosadmin Pass: 712mbddr@)

Открываю браузер и обращаюсь к системе, на которой развернут Nagios

вот так выглядит Web-интерфейс Nagios после авторизации

Вот так выглядит Web-интерфейс Nagios после авторизации

Если перейти в левой части в Services, то увидим, за каким сервисом сейчас идет наблюдение/мониторинг:

Если перейти в левой части в Services, то увидим, за каким сервисом сейчас идет наблюдение/мониторинг:

через некоторое время те сервисы, которые были в статусе PENDING изменили свое состояние

через некоторое время те сервисы, которые были в статусе PENDING изменили свое состояние

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

В дальнейшем буду по мере возможности наполнять его (Nagios), как если бы у меня не было Zabbix, а был только Nagios. На этом пока все, с уважением автор блога Олло Александр aka ekzorchik.