Nagios Check mk ja Pnp4nagios

Allikas: Kuutõrvaja

Sissejuhatus

Nagiosi baaspaketis pakutavad võimalused võivad jääda tänapäeval liiga pealiskaudseteks ja lihtsateks. Aina suurenenud nõudmiste ja vajaduste ning paisunud serveriparkide korral jääb neist vajaka ning administraatorid pöörduvad seetõttu pigem teiste töövahendite juurde nagu näiteks Zabbix.

Samas on aga nagiosile kirjutatud mitmeid abivahendeid, mis seda kaasajastavad ja täiendavad. Selles tekstis vaatlemegi neist kahte. Check_mk-d ja pnp4nagiosi.

Check_mk kujutab endast esiteks klientrakendust monitooritavas serveris ning veebiliidest, mis vahetab välja nagiosi enda vaikimisi liidese. Pnp4nagios lisab aga nagiosile rrdtool abil graafikute joonistamise.

Mida selline komplekt pakub? Esiteks on võimalik lihtsa vaevaga, ühe paketi paigalduse ja ühe masina defineerimisega, saada monitoorimise alla terve suur komplekt teenuseid (mälu, cpu, mountpoindid, jne) teiseks joonistatakse neid teenustest kohe ka koormusgraafikuid.

OMD.png

Check_mk ülesehitus ja komponendid ühe skeemina.

Paigaldamine Ubuntu serveril x86-64

Opsüsteemi paigaldus, lisaks ISO buutimisele:

apt update
apt upgrade

Check_MK serveri paigaldus:

wget https://mathias-kettner.de/support/1.2.8p18/check-mk-raw-1.2.8p18_0.yakkety_amd64.deb
dpkg -i check-mk-raw-1.2.8p18_0.yakkety_amd64.deb

veateateid ignoreerida!

rm check-mk-raw-1.2.8p18_0.yakkety_amd64.deb
apt-get -f install

Check_MK saidi tekitamine:

omd create zoo
omd start zoo

Veebiliidesele pääseb: http://nagios.zoo.tartu.ee/zoo/check_mk/

Omd kasutamine käsurealt, näiteks järgnev restardib zoo saidi

# omd start zoo

Selleks et kasutada check_mk käske käsurealt, peab esmalt saama vastava saidi shelli:

# su - zoo

Varundamine

Varundada on võimalik kahte viisi, nt

cmk --backup zoo <path to file>

või siis

omd backup zoo <path to file>

NB! See ei sisalda RRD faile. Need on hetkel ~40MB kuni 133MB per jälgitav masin, olenevalt jälgitavate teenuste hulgast. Hetkel on kogu pnp4nagios kausta suurus 3,4GB.

Tundub, et kõige töökindlam on backupida omd variandiga. See on ~100M suurem, aga sellega saab kogu saidi backupi viimse peensuseni välja, töökindlamalt.

Kui vaja kunagi näiteks täiesti nullist taastada, saab teha lihtsalt:

  1. install ubuntu
  2. install omd
  3. omd restore zoo <path to backup file>
  4. kopeerida backupist apache konf ja kopeerida ssl serdid

Ja ongi sait jälle olemas ja kasutatav.

Paigaldamine arch linuxis

check_mk veebiliides vajab enda toimimiseks mod_pythonit. Pnp4nagios omab omakorda veebiliidest ning tema vajab selle toimimiseks php-d. Graafikute osa on ilma kõhkluseta kõige keerukam osa. Kasutasin sealjuures "Bulk Mode with NPCD" mis peaks andma koormuse ja paljude masinatega nagu arusain võitu http://docs.pnp4nagios.org/pnp-0.6/config

Esiteks paigaldame pacmani abil paketid apache monitoring-plugins php-apache php-gd

Seejärel paigaldame aurist paketid

nagios
mod_python2
pnp4nagios
check_mk

Boodil startimiseks

systemctl enable nagios httpd npcd

Nagiosi ja http osas ilmselt küsimusi pole, npcd on aga vajalik deemon pnp4nagiosi jaoks.

Tekitame puuduvad konfifailid

cp -v /etc/nagios/cgi.cfg.sample /etc/nagios/cgi.cfg
cp -v /etc/nagios/nagios.cfg.sample /etc/nagios/nagios.cfg
cp -v /etc/nagios/resource.cfg /etc/nagios/resource.cfg
cp -v /etc/nagios/objects/commands.cfg /etc/nagios/objects/commands.cfg
cp -v /etc/nagios/objects/contacts.cfg.sample /etc/nagios/objects/contacts.cfg
cp -v /etc/nagios/objects/timeperiods.cfg.sample /etc/nagios/objects/timeperiods.cfg
cp -v /etc/nagios/objects/templates.cfg.sample /etc/nagios/objects/templates.cfg
cp -v /etc/nagios/objects/localhost.cfg.sample /etc/nagios/objects/localhost.cfg

Lisame nagiosi konfi /etc/nagios/nagios.cfg check_mk konfide laadimise ja graafikute jaoks vajalikud read

# check_mk  toimimiseks vajalikud read
cfg_file=/etc/nagios/objects/check_mk_templates.cfg
cfg_file=/etc/nagios/objects/check_mk_objects.cfg
broker_module=/usr/lib/check_mk/livestatus.o /var/nagios/rw/live

# pnp4nagiosile vajalikud read
process_performance_data=1

# *** the template definition differs from the one in the original nagios.cfg
#
service_perfdata_file=/var/lib/pnp4nagios/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVI CECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

# *** the template definition differs from the one in the original nagios.cfg
#
host_perfdata_file=/var/lib/pnp4nagios/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

Konfifaili commands.cfg tuleb lisada pnp4nagiosi jaoks veel

#
# Bulk with NPCD mode
#
define command {
       command_name    process-service-perfdata-file
       command_line    /bin/mv /var/lib/pnp4nagios/service-perfdata /var/lib/pnp4nagios/spool/service-perfdata.$TIMET$
}

define command {
       command_name    process-host-perfdata-file
       command_line    /bin/mv /var/lib/pnp4nagios/host-perfdata /var/lib/pnp4nagios/spool/host-perfdata.$TIMET$
}

resource.cfg failis on võimalik, et vajalik seadistada õigeks nagios-pluginate kataloog

$USER1$=/usr/lib/monitoring-plugins

check_mk tahab prefork moodulit, seega tuleb see apaches vaikimisi kasuatav mpm keelata

sed -i -e 's/^\(LoadModule mpm_.*\)/#\1/' /etc/httpd/conf/httpd.conf
sed -i -e 's/#\(LoadModule mpm_prefork.*\)/\1/' /etc/httpd/conf/httpd.conf

Nagios http gruppi

usermod -G nagios -a http

Run check_mk -O to generate /etc/nagios/objects/check_mk_objects.cfg

check_mk -O

Luua tuleks ka /etc/nagios/htpasswd.users fail, nt tekitame sinna admin kasutaja

Failis /etc/check_mk/multisite.mk tuleb lubada admin kasutaja

admin_users = [ "admin" ]

Kopeerime apache konfifaili paika

cp -v /etc/webapps/check_mk/apache.example.conf /etc/httpd/conf/extra/check_mk.conf

Ning lisame /etc/httpd/conf/httpd.conf fali pythoni ja php moodulid

LoadModule python_module /usr/lib/httpd/modules/mod_python.so
LoadModule php7_module  modules/libphp7.so
Include conf/extra/check_mk.conf
Include conf/extra/pnp4nagios.conf

<IfModule mod_mime.c>
        AddHandler application/x-httpd-php .php .php5 .php7 .phtml
        AddHandler application/x-httpd-php-source .phps
</IfModule>
        DirectoryIndex index.php index.phtml


Phps tuleb laadida järgnevad moodulid /etc/php/php.ini

extension=gd.so
extension=sockets.so
extension=iconv.so

Lisaks ei tohi pnp4nagios töötada root õigustes, selle peale hakkab ta kohe kisama

sed -i -e 's|user = 0|user = 30|' /etc/pnp4nagios/npcd.cfg
sed -i -e 's|group = 0|group = 30|' /etc/pnp4nagios/npcd.cfg

Kustutame veel üleliigse installifaili

rm -v /usr/share/pnp4nagios/share/install.php

Ja tekitame vaikimisi puuduva kausta

mkdir -vp /usr/share/doc/check_mk/checks

pnp4nagiosi graafikud asuvad ise http://<url>/pnp4nagios/index.php.

Manuali järgi tehes näeb asi välja sedamoodi

Nagios tekitab performance data /var/lib/pnp4nagios/ kausta service ja host-perfdata. Sealt tõstab nagios ise mv käsuga faili /var/lib/pnp4nagios/spool/ Seal rakendub edasi /usr/bin/npcd deemon, mis käivitab skripti /usr/lib/pnp4nagios/process_perfdata.pl. See skript peaks tekitama spool kaustas asuva info alusel rrd failid kasta /var/lib/pnp4nagios/perfdata/ ja nt localhosti puhul /var/lib/pnp4nagios/perfdata/localhost. Sealt kaustast omakorda loeb neid rrd faile php skript http://<url>/pnp4nagios/index.php/graph?&host=localhost. See php skript on omakorda uuesti seotud check_mk veebiliidesega ehk sealt includeb viimane need pildid enda kõhtu.

Peale paigaldamist patchi graafikud:

Ava /usr/share/pnp4nagios/share/templates.dist/default.php ja MUUDA rida:

$lower = " --lower=" . $VAL['MIN'];

selliseks:

$lower = " --lower-limit=" . $VAL['MIN'];

Check_mk monitoorib by default hosti localhost, mida ei saa ka täielikult eemaldada. Samas väidab GUI et hosti pole, kui tahad checke redigeerida. Kiire häkina jäi fail alles, aga tühjana. .bak on olemas. Seega on serveri enda jaoks mõtet teha uus host.

Veebiliides

Veebiliides on kättesaadav http://ip_aadress/check_mk/

Checkmk.png

Klient

Debiani agent saab otse apt-getida ainult backpordina. Archi oma leiab (aurist)

Agendi paigaldamiseks kopeerida see monitooritavasse serverisse ja paigaldada pakihaldustarkvara abil

dpkg -i check-mk-agentxxxxxx.deb

Näiteks

wget http://localhost/zoo/check_mk/agents/check-mk-agent_1.2.8p18-1_all.deb
dpkg -i check-mk-agent_1.2.8p18-1_all.deb 

Vajadusel paigaldada xinetd pakk, seejärel ava fail /etc/xinetd.d/check_mk. Seal tuleb redigeerida rida mis sisaldab only_from ja on tavaliselt välja kommenteeritud, järgmiseks:

only_from      = 127.0.0.1 10.40.0.53 193.40.0.60

Restartida xinetd ja lisada server monitooringusse.

DB montioorimise agent MySQL

Monitooritavas serveris paigaldada mysql checki plugin

mkdir /usr/lib/check_mk_agent/

cp /usr/share/check_mk/agents/plugins/mk_mysql /usr/lib/check_mk_agent/
chmod 700 /usr/lib/check_mk_agent/mk_mysql

Monitooritavas serveris paigaldada mysql monitoorimise kasutaja conf. Tegu on mysql kasutajaga, millel peavad olema SELECT ja SHOW DATABASES õigused. Vajadusel saab MySQL konsoolil vastava kasutaja luua järgmiselt:

GRANT SELECT, SHOW DATABASES ON *.* TO 'username'@'servername';

Paigaldada plugina jaoks kasutaja conf.

mkdir /etc/check_mk
cat << EOT > /etc/check_mk/mysql.cfg
[client]
user=monitor
password=k6ik0nk41ki
EOT
chmod 400 /etc/check_mk/mysql.cfg

Lingid

https://mathias-kettner.de/checkmk_logfiles.html logifailide jälgimine

https://mathias-kettner.de/checkmk_localchecks.html ise skriptide loomine

http://mathias-kettner.com/cms_check_plugins_catalog.html pluginate kataloog