Nagios 4.0.6
Versioon
Nagios Core 4.0.6
Nagios Plugins 2.0.2
Ubuntu Server 14.04
Autor
Henri Ots
A22
22.05.2014
Täiendab (klient/server seadistus Puppetiga)
Marti Reinsaar
A31
03.12.2014
Sissejuhatus
Nagios on avatud lähtekoodiga (GNU GPL V2) serverite ja võrgu monitoorimistööriist. Nagiose teeb eriliseks see,et saab monitoorida ükskõik millist võrguseadet või serverit, millele on läbi võrgu olemas ligipääs. Nagiose saab seadistada nii, et juhul, kui mõne teenusega peaks midagi juhtuma, saadab ta teate koheselt administraatori e-mailile. Samuti teavitakse, kui teenus läheb tagasi normaalrežiimi. Nagiosega saab monitoorida igasugused teenuseid, näiteks SMTP, HTTP, POP, IMAP, PROXY ja paljusid teisi. Vajadusel saab luua ka oma skriptid, millega soovitud teenust jälgida. Teenused saab administraatorite vahel jagada nii, et igal administraatoril on hallata kindlad teenused. Lisaks pakub Nagios veebiliidese tuge, millega on kerge jälgida kõiki teenuseid ja vaadata nende staatust. Lisafunktsionaalsuse pakkumiseks kasutab Nagios lisasid ehk pluginaid ning vajadusel saab neid ka ise juurde programmeerida.
Selles õpetuses tehakse Nagiose esialgne paigaldus algteksti baasil ning paigaldatakse Nagiose ametlik lisade pakett. Lisakonfiguratsioone, näiteks e-maili teel teavitamine, saab igaüks seadistada vastavalt oma vajadustele.
Paigaldus
Logime serverisse ning läheme juurkasutaja õigustesse
sudo -i
Paigaldame kõik vajaminevad paketid
apt-get install build-essential apache2 apache2-utils php5-gd libgd2-xpm-dev libapache2-mod-php5
Loome Nagiosele kasutaja „nagios“ ja grupi „nagcmd“
useradd nagios groupadd nagcmd
Lisame kasutaja „nagios“ gruppi „nagcmd“
usermod -a -G nagcmd nagios
Lisame Apache2 kasutaja gruppi „nagcmd“, et oleks võimalik läbi veebiliidese käsklusi saata
usermod -a -G nagcmd www-data
Laeme alla Nagios 4.0.6 ja Nagios Plugins 2.0.2 juurkasutaja kausta
wget 'http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.6.tar.gz'
wget 'http://nagios-plugins.org/download/nagios-plugins-2.0.2.tar.gz'
Pakime mõlemad allalaetud failid lahti
tar xzf nagios-4.0.6.tar.gz tar xzf nagios-plugins-2.0.2.tar.gz
Nagios Core paigaldus
Liigume esialgu kausta Nagios-4.0.6
cd nagios-4.0.6
Käivitame Nagiose konfigureerimise skripti eelnevalt loodud grupi, kasutaja ja apache2 konfiguratsiooni asukoha parameetritega. Siis kompileerime ja paigaldame Nagiose.
./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/conf-available make all make install make install-init make install-config make install-commandmode
Loome Nagiose konfiguratsioonifailile kausta
mkdir -p /etc/httpd/conf.d/nagios.conf
Paigaldame Nagiose veebiliidese
make install-webconf
Kopeerime „contrib/eventhandlers/“ Nagiose „libexec“ kausta ja määrame Nagiose kasutaja faili omanikuks
cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/ chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
Kontrollime, kas Nagiose konfiguratsioonifailis on vigu ( Kui käsklus midagi ei tagasta, siis vead puuduvad)
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Konfigureerime Nagiose nii, et ta pandaks käima automaatselt süsteemi alglaadimisel.
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Läheme tagasi juurkasutaja kausta
cd
Nagiose Pluginate paigaldus
Läheme Nagiose Plugins kausta, mis me enne lahti pakkisime
cd nagios-plugins-2.0.2/
Käivitame konfigureerimise skripti eelnevalt loodud kasutaja ja grupi parameetritega. Seejärel kompileerime ja paigaldame Nagiose Pluginad.
./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-perl-modules --enable-extra-opts make make install
Apache2 seadistamine Nagiose kasutamiseks
Lubame CGI mooduli
a2enmod cgi
Loome Nagiose veebiliidese jaoks kasutaja „nagiosadmin“ ja parooli
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Muudame Apache2 vaikimisi lehte
nano /etc/apache2/sites-enabled/000-default.conf
ning lisame enne „</VirtualHost>“’i järgmise rea:
include conf-available/nagios.conf
Teeme Apach2-le taaskäivitamise ja käivitame Nagiose
service apache2 restart service nagios start
Veebiliides
Selleks, et pääseda veebiliidesesse tuleb avada veebibrauser ja minna leheküljele:
http://127.0.0.1/nagios
või
http://hosti ip address/nagios
Järgnevalt tuleb sisestada eelnevalt loodud Nagiose veebiliidese kasutajanimi ja parool.
Klientide seadistamine Puppetiga
Kui enamasti on kasutusel üks või mõned Nagios core serverid siis kümnete kui mitte sadade / tuhandete klientide seadistamine ükshaaval on ebamõistlik. Selle protsessi automatiseerimiseks saame kasutada Puppetit ning seal siis vastavalt hostide kaupa või jagada erinevatesse nn host gruppidesse.
Siin näites kasutame Nagiose masteri ja host'i vaheliseks suhtlemiseks NRPE'd ning seadistame selle Puppetiga.
Host'i osa seadistus
Samm 1: Seadistame puppetmasteris klassi hostide jaoks. Avame mingi sobiva nimega .pp faili, et sinna lisada sisu.
nano /etc/puppet/modules/nagios/manifests/nrpe-host.pp
Samm 2: Järgnevas koodis paigaldatakse kõigepealt host-masinale nrpe koos vajalike lisapakkidega nagu nagios-plugins ning nagios-plugins-all. Nagios CORE ei ole nrpe host masinas vajalik.
Edasi määrame lubatud nn masterid kellel on lubatud sooritada päringuid sellelt hostilt läbi nrpe saamaks infot. Antud näites paneme sinna localhost'i ning vastava nagios core seadme IP.
Järgmisena määrame need service'id mida kontrollitakse, need kõik teenused on tegelikult eelnevalt nagioses defineeritud, vajadusel saab luua ka ise uusi kontrolle.
class nagios::nrpe-host { package { [ nrpe, nagios-plugins, nagios-plugins-all ]: ensure => installed, } service { nrpe: ensure => running, enable => true, require => Package[nrpe], } file_line { "allowed_hosts": line => "allowed_hosts = 127.0.0.1,192.168.56.200", path => "/etc/nagios/nrpe.cfg", match => "allowed_hosts", ensure => present, notify => Service["nrpe"], } @@nagios_service { "check_load_${hostname}": check_command => "check_nrpe!check_load", use => "generic-service", host_name => "$fqdn", service_description => "${hostname}_check_load" } @@nagios_service { "check_total_procs_${hostname}": check_command => "check_nrpe!check_total_procs", use => "generic-service", host_name => "$fqdn", service_description => "${hostname}_check_total_procs" } @@nagios_service { "check_zombie_procs_${hostname}": check_command => "check_nrpe!check_zombie_procs", use => "generic-service", host_name => "$fqdn", service_description => "${hostname}_check_zombie_procs" } @@nagios_service { "check_users_${hostname}": check_command => "check_nrpe!check_users", use => "generic-service", host_name => "$fqdn", service_description => "${hostname}_check_users" } }
Server'i osa seadistus
Samm 3: Seadistame puppetmasteris klassi serveri lisa seadete nrpe jaoks. Avame sobiva nimega .pp faili, et sinna lisada sisu.
nano /etc/puppet/modules/nagios/manifests/nrpe-serv.pp
Samm 4: Kõigepealt kontrollitakse kas nagios-plugins-nrpe on paigaldatud. Edasi seadistatakse check_nrpe command mis on vajalik core seadmes sooritamaks päringuid. NB: $ märgiga väljad on muutujad, neid ei ole tarvis asendada.
class nagios::nrpe-serv { package { "nagios-plugins-nrpe" : ensure => installed, } nagios_command { 'resource title': command_name => 'check_nrpe', ensure => 'present', command_line => '/usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$', } file_line { "nagios_command.cfg": line => "cfg_file=/etc/nagios/nagios_command.cfg", path => "/etc/nagios/nagios.cfg", ensure => present, notify => Service["nagios"], } file { "nagios_command": mode => 644, } }
Lisame uued klassid node'idele
Avame faili kus node'id on kirjeldatud.
nano /etc/puppet/manifests/nodes.pp
puppet.planet.zz -> Siin asub meil Nagios core server.
client.planet.zz -> Siin asub meil host kust tuleb läbi nrpe info saada.
node 'puppet.planet.zz' { include nagios::nrpe-serv } node 'client.planet.zz' { include nagios::nrpe-host }
Kasutatud kirjandus
http://blog.jsquaredconsulting.com/2014/05/installing-nagios-4-on-ubuntu-1404.html
http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html
https://forge.puppetlabs.com/thias/nagios
http://www.linuxjournal.com/content/puppet-and-nagios-roadmap-advanced-configuration
https://folgaizer.wordpress.com/2014/02/06/automate-nagios-configuration-with-puppet/