Nagios Check mk ja Pnp4nagios
Sisukord
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.
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:
- install ubuntu
- install omd
- omd restore zoo <path to backup file>
- 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/
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