Nagios 4.0.6: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Hots (talk | contribs)
No edit summary
Mreinsaa (talk | contribs)
No edit summary
 
(13 intermediate revisions by 2 users not shown)
Line 8: Line 8:
A22<br/>
A22<br/>
22.05.2014<br/>
22.05.2014<br/>
<br/>
'''Täiendab''' (klient/server seadistus Puppetiga)<br/>
Marti Reinsaar<br/>
A31<br/>
03.12.2014<br/>


=Sissejuhatus=
=Sissejuhatus=
Nagios on avatud lähtekoodiga (GNU GPL V2) süsteemide, võrgu ja infrastruktuuri teenuste monitoorimistööriist. Nagios kasutab lisasid ehk pluginaid, et pakkuda lisafunktsionaalsust. Vajadusel saab neid ise juurde programmeerida.
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=
=Paigaldus=
Logime serverisse ning läheme juurkasutaja õigustesse
Logime serverisse ning läheme juurkasutaja õigustesse
<pre>sudo –i</pre>
<pre>sudo -i</pre>
Paigaldame kõik vajaminevad paketid
Paigaldame kõik vajaminevad paketid
<pre>apt-get install build-essential apache2 apache2-utils php5-gd libgd2-xpm-dev libapache2-mod-php5</pre>
<pre>apt-get install build-essential apache2 apache2-utils php5-gd libgd2-xpm-dev libapache2-mod-php5</pre>
Line 21: Line 28:
groupadd nagcmd</pre>
groupadd nagcmd</pre>
Lisame kasutaja „nagios“ gruppi „nagcmd“
Lisame kasutaja „nagios“ gruppi „nagcmd“
<pre>usermod –a –G nagcmd nagios</pre>
<pre>usermod -a -G nagcmd nagios</pre>
Lisame Apache2 kasutaja gruppi „nagcmd“, et oleks võimalik läbi veebiliidese käsklusi saata
Lisame Apache2 kasutaja gruppi „nagcmd“, et oleks võimalik läbi veebiliidese käsklusi saata
<pre>usermod –a –G nagcmd www-data </pre>
<pre>usermod -a -G nagcmd www-data</pre>
Laeme alla Nagios 4.0.6 ja Nagios Plugins 2.0.2 juurkasutaja kausta
Laeme alla Nagios 4.0.6 ja Nagios Plugins 2.0.2 juurkasutaja kausta
<pre>wget 'http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.6.tar.gz'</pre>
<pre>wget 'http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.6.tar.gz'</pre>
Line 36: Line 43:
Käivitame Nagiose konfigureerimise skripti eelnevalt loodud grupi, kasutaja ja apache2 konfiguratsiooni asukoha parameetritega. Siis kompileerime ja paigaldame Nagiose.
Käivitame Nagiose konfigureerimise skripti eelnevalt loodud grupi, kasutaja ja apache2 konfiguratsiooni asukoha parameetritega. Siis kompileerime ja paigaldame Nagiose.
<pre>./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/conf-available
<pre>./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-httpd_conf=/etc/apache2/conf-available
Make all
make all
Make install
make install
Make install-init
make install-init
Make install-config
make install-config
Make install-commandmode</pre>
make install-commandmode</pre>
Loome Nagiose konfiguratsioonifailile kausta
Loome Nagiose konfiguratsioonifailile kausta
<pre>mkdir -p /etc/httpd/conf.d/nagios.conf</pre>
<pre>mkdir -p /etc/httpd/conf.d/nagios.conf</pre>
Line 51: Line 58:
<pre>/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg</pre>
<pre>/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg</pre>
Konfigureerime Nagiose nii, et ta pandaks käima automaatselt süsteemi alglaadimisel.
Konfigureerime Nagiose nii, et ta pandaks käima automaatselt süsteemi alglaadimisel.
<pre>/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg</pre>
<pre>ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios</pre>
Läheme tagasi juurkasutaja kausta
Läheme tagasi juurkasutaja kausta
<pre>cd</pre>
<pre>cd</pre>


==Nagiose Pluginate paigladus==
==Nagiose Pluginate paigaldus==
Läheme Nagiose Plugins kausta, mis me enne lahti pakkisime
Läheme Nagiose Plugins kausta, mis me enne lahti pakkisime
<pre>cd nagios-plugins-2.0.2/</pre>
<pre>cd nagios-plugins-2.0.2/</pre>
Käivitame konfigureerimise skripti eelnevalt loodud kasutaja ja grupi parameetritega. Seejärel kompileerime ja paigaldame Nagiose Pluginad.
Käivitame konfigureerimise skripti eelnevalt loodud kasutaja ja grupi parameetritega. Seejärel kompileerime ja paigaldame Nagiose Pluginad.
<pre>./configure ./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-perl-modules --enable-extra-opts
<pre>./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-perl-modules --enable-extra-opts
Make
make
Make install</pre>
make install</pre>


=Apache2 seadistamine Nagiose kasutamiseks=
=Apache2 seadistamine Nagiose kasutamiseks=
Line 69: Line 76:
<pre>htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin</pre>
<pre>htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin</pre>
Muudame Apache2 vaikimisi lehte  
Muudame Apache2 vaikimisi lehte  
<pre>Nano /etc/apache2/sites-enabled/000-default.html</pre>
<pre>nano /etc/apache2/sites-enabled/000-default.conf</pre>
ning lisame enne „</VirtualHost>“’i järgmise rea:  
ning lisame enne „</VirtualHost>“’i järgmise rea:  
<pre>Include conf-available/nagios.conf</pre>
<pre>include conf-available/nagios.conf</pre>
Teeme Apach2-le taaskäivitamise ja käivitame Nagiose
Teeme Apach2-le taaskäivitamise ja käivitame Nagiose
<pre>Service apache2 restart
<pre>service apache2 restart
Service nagios start</pre>
service nagios start</pre>


=Veebiliides=
=Veebiliides=
Line 80: Line 87:
<br/>
<br/>
[[File:Nagios406controlpanel.png|800px|thumb|right|Nagios 4.0.6 veebiliidese näide]]
[[File:Nagios406controlpanel.png|800px|thumb|right|Nagios 4.0.6 veebiliidese näide]]
=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.<br/>
Siin näites kasutame Nagiose masteri ja host'i vaheliseks suhtlemiseks NRPE'd ning seadistame selle Puppetiga.<br/>
==Host'i osa seadistus==
'''Samm 1:''' Seadistame puppetmasteris klassi hostide jaoks. Avame mingi sobiva nimega .pp faili, et sinna lisada sisu.<br/>
<pre>nano /etc/puppet/modules/nagios/manifests/nrpe-host.pp</pre>
'''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.<br/>
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.<br/>
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.<br/>
<pre>
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"
  }
}</pre>
==Server'i osa seadistus==
'''Samm 3:''' Seadistame puppetmasteris klassi serveri lisa seadete '''nrpe''' jaoks. Avame sobiva nimega .pp faili, et sinna lisada sisu.<br/><br/>
<pre>nano /etc/puppet/modules/nagios/manifests/nrpe-serv.pp</pre>
'''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.  <br/>
<pre>
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,
  }
}</pre>
==Lisame uued klassid node'idele==
Avame faili kus node'id on kirjeldatud.<br/>
<pre>nano /etc/puppet/manifests/nodes.pp</pre>
'''puppet.planet.zz''' -> Siin asub meil Nagios core server.<br/>
'''client.planet.zz''' -> Siin asub meil host kust tuleb läbi nrpe info saada.<br/>
<pre>
node 'puppet.planet.zz' {
      include nagios::nrpe-serv
}
node 'client.planet.zz' {
      include nagios::nrpe-host
}</pre>
[[File:Nagios741.png]]


=Kasutatud kirjandus=
=Kasutatud kirjandus=
http://blog.jsquaredconsulting.com/ <br/>
http://blog.jsquaredconsulting.com/2014/05/installing-nagios-4-on-ubuntu-1404.html <br/>
http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html <br/>
http://nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html <br/>
https://forge.puppetlabs.com/thias/nagios <br/>
http://www.linuxjournal.com/content/puppet-and-nagios-roadmap-advanced-configuration <br/>
https://folgaizer.wordpress.com/2014/02/06/automate-nagios-configuration-with-puppet/ <br/>


==Vanemate versioonide õpetused==
==Vanemate versioonide õpetused==
[http://wiki.itcollege.ee/index.php/Nagios_3.2 Nagios 3.2]<br/>
[http://wiki.itcollege.ee/index.php/Nagios_3.2 Nagios 3.2]<br/>
[https://wiki.itcollege.ee/index.php/Nagios Nagios 3.3.1]
[https://wiki.itcollege.ee/index.php/Nagios Nagios 3.3.1]

Latest revision as of 13:11, 3 December 2014

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.


Nagios 4.0.6 veebiliidese näide

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/

Vanemate versioonide õpetused

Nagios 3.2
Nagios 3.3.1