Основна инсталација и конфигурација Nagios 4 на ЦентОС 7 (корак по корак)

Nagios је један од најбољих и највише коришћених софтверских алата отвореног кода намењених за надгледање стања системских и мрежних ресурса и компоненти.
Nagios надгледа сервере, свичеве, рутере, апликације, сервисе, процесе, портове,…

Правовремено упозорава Систем Администраторе када нешто у систему није у реду а такође има и нотификацију и када се сервис опорави.

Са Nagios-ом можемо да надгледамо удаљене хостове и њихове сервисе све у једном прозору. Показује нам упозорења (warnings), што може помоћи у откривању, спречавању и решавању проблема у систему док се још нису десили или нису направили већу штету у систему.
Помаже нам да смањимо време отказа (downtime) и пословних губитака (business losses).
Оригинално развијен за рад под Линукс платфором, при чему одлично ради и под осталим UNIX компатибилним платформама. Лиценциран је под условима GNU GPL лиценце верзија 2 коју је објавила Free Software Foundation.

Преглед важнијих могућности

  • надгледање доступности мрежних сервиса (PING, DNS, HTTP, SSH, SMTP, POP3, IMAP, итд.);
  • надгледање системских ресурса хостова (оптерећење процесора, искоришћеност RAM меморије, оптерећење хард дискова, стање мрежних интерфејса, статус виталних процеса, „error“ или „warning“ логове у Евент Логу, итд;
  • једноставни плагин (plug-in) концепт који дозвољава кориснику да лако развија и имплементира сопственове плагинове за надгледање специфичних сервиса;
  • откривање и разликовање хостова који су недоступни од оних који су пали помоћу уграђениг концепта родитељских хостова и мрежне хијерархије;
  • обавештавање у случају појаве нерегуларног рада хостова или сервиса и њиховог опоравка (путем имејла, SMS-а или неком другом корисничком методом(software Nagstamon));
  • могућност да се дефинишу унапред познати догађаја (event handlers) који су активни за време извршавања сервиса или дешавања догађаја на хосту и који могу да решавају проблеме проактивно;
  • подршка за имплементацију редундантних сервера за надгледање ИТ инфраструктуре;
  • подршка за имплементацију дистрибуираног надгледања ИТ инфраструктуре;
  • информативан веб интерфејс за увид у текући статус мреже, послата обавештења, историју проблема, лог датотеке, итд;
  • Брза идентификација проблема у ИТ систему пре него што се угрози рад система;
  • помаже нам у планирању буџета за ИТ надоградњу;
  • Смањује време отказа као и цену пословног губитка услед отказа одређеног сервиса или услуге.

На крају инсталације добићемо следеће:

  1. Nagios и плагинови биће инсталирани на путањи /usr/local/nagios .
  2. Nagios ће бити конфигурисан за надгледање неколико сервиса локалне машине, самог сервера (Disk Usage, CPU Load, Current Users, Total Processes, итд.)
  3. Nagios веб interface биће доступан на адреси http://IP-Address-Nagios-Servera/nagios

Nagios сервер

Оперативни систем: ЦентОС 7 минимал сервер
IP Address: IP-Address-Nagios-Serverа
hostname: NAGIOS

Корак 1: Инсталација неопходних помоћних програма

На почетку потребно је да инсталирамо веб сервис Apache. Користимо yum – подразумевани пакет инсталер за ЦентОС. Претпоставка је да смо преко ssh улоговани преко неког терминала (препоручујем PuTTY или Tera Term) као root на наш сервер.

Прво, очистимо yum:

yum clean all

Водећи се уобичајеном праксом радимо и ажурирање пакета:

yum -y update

Инсталацију Apache стартујемо само са једном командом:

yum -y install httpd

Дозвољавамо подразумеване (default) HTTP и HTTPS портове, 80 и 443, кроз заштитни зид firewalld командама:

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp

И ре-иницијализујемо опет заштитни зид после промена командом:

firewall-cmd --reload

На крају стартујемо Apache:

systemctl start httpd

Проверавамо и постављамо да се Apache стартује при покретању сервера:

systemctl enable httpd

Проверу статуса Apache сервиса постижемо командом:

systemctl status httpd

Команда за стопирање Apache-а:

systemctl stop httpd

Ако је све у реду са инсталацијом потребно је да добијемо следећу слику када у жељени интернет претраживач (web browser) укуцамо адресу нашег сервера: http://IP-Address-Nagios-Serverа/

Инсталација осталих помоћних и потребних програма (required dependencies)

Потребно је да инсталирамо PHP и још неке библиотеке као што су gcc, glibc, glibc-common и GD бибилиотеке као и неке развојне библиотеке пре него што кренемо са инсталацијом Nagios 4.1.1. Команда за инсталацију је следећа:

yum install -y php gcc glibc glibc-common gd gd-devel make net-snmp nano unzip wget

Корак 2: Креирање Nagios корисника и групе

Креирамо новог корисника nagios и корисничку групу nagcmd

useradd nagios
groupadd nagcmd

Следеће, додајемо и nagios и apache корисника у корисничку групу nagcmd.

usermod -G nagcmd nagios
usermod -G nagcmd apache

Корак 3: Преузимање и распакивање Nagios Core-а и Nagios Plugins пакета

Креирамо директоријум nagios за Nagios инсталацију и за сва будућа преузимања.

mkdir /root/nagios
cd /root/nagios

Помоћу команде wget преузимамо последњу верзију Nagios Core и Nagios plugins пакета.

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.1.1.tar.gz
wget https://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

Потребно је да распакујемо преузете пакете са интернета помоћу команде tar на следећи начин:

tar -xvf nagios-4.1.1.tar.gz
tar -xvf nagios-plugins-2.1.1.tar.gz

После распакивања појавиће се два нова директоријума што проверавамо командом ll

Корак 4: Конфигурација и инсталација Nagios Core-а

Прво ћемо конфигурисати Nagios Core, а да би то одрадили идемо у Nagios директоријум и покренемо команду confgure и дефинишемо командну групу. Овде сад користимо основну форму ове команде без додатних опција.

cd nagios-4.1.1
 ./confgure --with-command-group=nagcmd

У пуном облику команда confgure гласи:
./confgure –prefix=/usr/local/nagios –with-cgiurl=/nagios/cgi-bin –with-htmurl=/nagios/ –with-nagios-user=nagios –with-nagios-group=nagcmd –with-command-group=nagcmd
gde je:
–prefix=/usr/local/nagios – Nagios root folder
–with-cgiurl=/nagios/cgi-bin – Nagios CGI folder
–with-htmurl=/nagios/ – Nagios HTML/Website folder
–with-nagios-user=nagios – Nagios user
–with-nagios-group=nagcmd – Nagios group
–with-command-group=nagcmd – Nagios command group у којој су чланови webсервер корисник apache и nagios корисник.

Ако је конфигурација прошла без проблема приказаће се на крају Configuration summary као на следећој слици:

После конфигурације потребно је да компајлирамо и инсталирамо бинарне фајлове са командама make all и make install. Овим инсталирамо све потребне библиотеке и можемо да наставимо даљу конфигурацију.

make all
make install

Излаз после команди је следећи:

Следећа команда make install-init инсталираће инит скрипте у директоријум /etc/rc.d/init.d за Nagios.

make install-init

Да би омогућили да nagios ради и из командне линије потребно је да инсталирамо command-mode.

make install-commandmode

Следеће је инсталација уобичајених nagios фајлова у директоријум /usr/local/nagios/etc са следећом командом:

make install-config

На екрану добијамо следећи приказ ако је све протекло у реду:

Корак 5: Прилагођавање Nagios конфигурације

Отворимо фајл „contacts.chg“ са неким текст едитором и треба да поставимо мејл адресу за корисника nagiosadmin у самој дефиницији контакта да би примали нотификацију преко мејла за отказ и/или опоравак сервиса или хоста.

nano /usr/local/nagios/etc/objects/contacts.chg

Екрански приказ:
мењамо линију
email nagios@localhost ; <<****** CHANGE TO YOUR EMAIL ADDRESS ********

Рестартујемо Apache:

systemctl restart httpd

Корак 6: Инсталација и конфигурација Web Interface за Nagios

Сада је потребно да конфигуришемо Web Interface за Nagios. Следеће команде ће конфигурисати Web interface за Nagios као и веб админ корисника „nagiosadmin“.

make install-webconf

Следеће је да променимо фајл nagios.conf на путањи /etc/httpd/conf.d/.

nano /etc/httpd/conf.d/nagios.conf

Мењамо линије ако желимо да приступимо nagios administrative console из тачно дефинисаних IP опсега.

У следећем кораку креирамо лозинку за веб админ корисника „nagiosadmin“. После следеће команде уписујемо лозинку коју ћемо користити при логовању на Nagios Web interface па ју је потребно запамтити.

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

Рестарт Apache да би промене које смо урадили имали ефекта

systemctl restart httpd

Корак 7: Компајлирање и инсталација Nagios Plugin-а

Са интернета смо већ преузели nagios plugins и сместили у директоријум /root/nagios. Идемо у тај директоријум и са већ познатим командама радимо конфигурацију и инсталацију плагинова:

cd /root/nagios
cd nagios-plugins-2.1.1
 ./confgure --with-nagios-user=nagios --with-nagios-group=nagcmd
make
make install

Корак 8: Верификација (проверавање) исправности Nagios конфигурационих фајлова

На крају после инсталације и конфигурације Nagios-а потребно је проверити његову исправност и то радимо следећом командом:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.chg

Ако је све прошло без проблема и грешака добићемо следећи екран:

Корак 9: Додавање Nagios сервиса у System Startup

Да би обезбедили да се Nagios подигне и ради после рестарта машине потребно је да додамо nagios сервис у startup са командом chkconfig.

chkconfig --add nagios
chkconfig --level 35 nagios on

Рестартујемо Nagios да би промене које смо урадили имали ефекта.

systemctl start nagios

Adjust selinux Settings

Подразумевана вредност за selinux је „enforce mode“ и можемо да добијемо грешку са поруком „Internal Server Error“ када покушамо да приступимо Nagios CGIs.
Да би избегли ову грешку, мењамо фајл config на путањи /etc/selinux/:

nano /etc/selinux/config

Сетујемо selinux на „permissive mode“ као на следећој слици.

Рестартујемо сервер како би промене које смо направили имали ефекта или уместо рестарта стартујемо команду

setenforce 0

Корак 10: Пријављивање на Nagios Web Interface

Nagios је спреман за рад и пријављујемо се преко веб браузера укуцавањем адресе „http://Your-server-IP-address/nagios“ и добијамо прозор у коме треба да унесемо корисничко име „nagiosadmin“ и лозинку.

Nagios Login – прозор за пријаву на веб interface
Login

Nagios Web Interface
WebInterface

Host View – преглед надгледаних хостова

Nagios Overview – прозор за општи приказ шта се све надгледа (мониторише)
Overview

Service View – преглед надгледаних service-а

Process View – преглед самог Nagios Process-а и информација о њему
Process

Честитамо. Овим смо успешно инсталирали и конфигурисали Nagios и његове додатке – Plugins. Ово је тек почетак у процесу надгледања и мониторисања са Nagios-ом. Наставиће се…