Nagios 3.2

From ICO wiki
Jump to navigationJump to search

Nagios

Versioonide ajalugu (viimase muutmise aeg)

Versioon 1.0 (Valmis) 15.12.2009
Versioon 0.9 (Poolik) 14.12.2009
Versioon 0.8 (Poolik) 08.12.2009
Versioon 0.7 (Poolik) 07.12.2009

Autor

Martin Kiigemaa

Sissejuhatus

Mis on Nagios? Nagios on vabavara, mis võimaldab jälgida teenuste ning serverite kättesaadavust. Toetab mitmesuguseid levinud teenuseid (SMTP, IMAP, HTTP, FTP, DNS) ning võimaldab seirata ka serveri "sisemist" infot, nagu koormus, kettamaht, protsesside arv jms) ja saata välja teavitusi süsteemide probleemide korral. Nagios kasutab plug-ine, see tähendab, et kui mõnel teenusel ei ole veel niinimetatud Nagios'e tuge, siis võib vastava plug-ini ise kirjutada.

Legend

Installeerida monitoorimistarkvara Nagios ja panna ta ühte hosti jälgima (vabalt valitud teenustega). Kui teenus peaks mingil põhjusel maha kukkuma, siis saadab Nagios lokaalse masina kasutajale e-maili.

Nõuded

  • Õigus olemas olevasse Linux masinasse uut tarkvara installeerida
  • Linux või Unix OS, millel on C kompilaatori tugi.
  • TCP/IP protokollide tugi – enamiku rakenduste kontroll käib läbi TCP/IP
  • Veebiserver (soovituslik Apache)
  • Thomas Boutell’s gd library versioon 1.6.3 või uuem, mis on vajalik „statusmap” ja „trends CGI” liideste tööks.
  • Oskus töötada käsurealt
  • Teadmisi Linux operatsiooni süsteemist
  • Installitud postfix

Installeerimine

1. Logige serverisse oma kasutaja nime ja parooliga
2. Installeerige paketid apache2, build-essential, libapache2-mod-php5, libgd2-xpm-dev

sudo apt-get -y install apache2
sudo apt-get -y install build-essential
sudo apt-get -y install libapache2-mod-php5
sudo apt-get -y install libgd2-xpm-dev

3. Minge oma kasutajaga root õigustesse

sudo -i

4. Loo uus nagios kasutaja ja ka nagios grupp (Ubuntu serveri kasutamisel)

/usr/sbin/useradd -m -s /bin/bash nagios
passwd nagios
/usr/sbin/groupadd nagios
/usr/sbin/usermod -G nagios nagios

5. Loo uus grupp nimega nagcmd, tänu millele saadetakse serverile käsklusi läbi veebiliidese. Lisa gruppi nagios kasutaja ja apache kasutaja

/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd www-data

6. Loo kataloog nagiose installeri ja nagios-plugin-ide hoidmiseks

mkdir ~/downloads
cd ~/downloads

7. Tõmba alla nagios ja tema plugin-id (Kirjutamise hetkel uusim versioon: Nagios 3.2.0 ja pluginnid: Nagios plugins 1.4.14)

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz

8. Paki nagiose installer lahti ja mine lahti pakitud kataloogi

tar xzf nagios-3.2.0.tar.gz
cd nagios-3.2.0

9. Pane käima Nagiose konfigureerimise script, andes talle ette grupi nime, mille varem lõid

./configure --with-command-group=nagcmd

10. Kompileeri Nagiose lähtekood ja installeeri käima mineku failid

make all
make install
make install-init
make install-config
make install-commandmode

11. Muuda konfiguratsiooni selliselt, et emailid hakkasid tulema Sinu aadressile Selleks ava kontaktide konfiguratsiooni fail

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

ja muuda nagiosadmin kontakti e-mail aadress ära. Näiteks: username@localhost

12. Loodetavasti oled ikka veel nagios-3.2.0 kataloogis. Sisesta käsk, et siduda nagios apachega.

make install-webconf

13. Loo nagiosadmin kasutaja, et saaksid sisse logida veebiliiidesesse

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

14. Restardi apache

/etc/init.d/apache2 restart

15. Liigu tagasi downloads kataloogi

cd ~/downloads

16. Paki lahti Nagiose plugin-id ja liigu loodud kataloogi

tar xzf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.14

17. Sisesta kataloogis kompileerimise ja installmise käsk

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

18. Konfigureeri Nagios koos süsteemiga automaatselt käivituma

ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

19. Kontrolli oma algne Nagiose konfiguratsiooni faili, et seal ei sisalduks erroreid

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

20. Kui errorid puudusid, siis käivita Nagios

/etc/init.d/nagios start

21. Logi sisse Nagiose veebiliidesesse, kasutades kasutajat kelle varem lõid (nagiosadmin)

links http://localhost/nagios

Seadistamine vastavalt ülesande püstitusele

Esmalt vaatame üle Nagiose põhikonfiguratsiooni faili.
Jälgi, et seal olev kood oleks selline ja need read ei oleks välja kommenteeritud.
Märkus: Antud näites olev viimane rida tuleb ise faili lisada, et Nagios monitooriks ka meie poolt kirjeldatud hosti.

/usr/local/nagios/etc/nagios.cfg

# You can specify individual object config files as shown below:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg

# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

# Meie enda kirjutatud fail, mille tahame lisada Nagiose monitooringusse
cfg_file=/usr/local/nagios/etc/objects/meie_host.cfg

Seda faili kasutab Nagios, et käima minemisel kontrollida, millised teised konfi failid endaga koos üles laadida. Kui defineerid uue hosti, siis tuleks selle uue hosti konfiguratsiooni fail lisada samuti nagu viimasel real on näha. Nagu konfiguratsiooni failist näha on Nagiosel juba defaultis defineeritud üks host, milleks on localhost.
Üle tuleks kontrollida kontakti failide andmed

/usr/local/nagios/etc/objects/contacts.cfg

define contact{
        contact_name                    root			; Short name of user
	use				generic-contact		; Inherit default values from generic-contact template (defined above)
        alias                           root			; Full name of user
        email                           --username--@localhost	; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
        }
define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 root
        }

Sellistele kontaktidele üritab Nagios e-maili saata, kui mõni tema kontrollitav teenus maha kukub.
Nagu näha, siis asub kontakt nimega root grupis generic-contact. Kõik sellised grupid on defineeritud failis /usr/local/nagios/etc/objects/templates.cfg, kus kirjeldatakse Nagiosele, millisel kella ajal millise grupiga ühendust võtta ja millistel tingimustel. Näiteks kas võtta ühendust vaid siis kui terve host on maas või ainult siis kui kindel service on maas.
Viimaseks peab looma meie defineeritud hosti konfiguratsiooni faili
Selles failis kirjeldame

  • masina nime
  • millisesse gruppi ta kuulub
  • mis teenuseid peaks Nagios selle masina peal jälgima

Loo uus fail nimega meie_host.cfg

touch /usr/local/nagios/etc/objects/meie_host.cfg

Järgnevad read tuleb kirjutada just loodud konfi faili sisse.
Defineerime ühe uue linuxi hosti.

define host{
        use                     linux-server            ; Name of host template to use
        host_name               Meie_host
        alias                   Meie host
        address                 IP-AADRESS
        }

Samasse faili defineerime talle service'd mida Nagios kontrollib

define service{
        use                             local-service         ; Name of service template to use
        host_name                       Meie_host
        service_description             PING
	check_command			check_ping!100.0,20%!500.0,60%
        }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       Meie_host
        service_description             SSH
	check_command			check_ssh
	notifications_enabled		1
        }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       Meie_host
        service_description             HTTP
	check_command			check_http
	notifications_enabled		1
        }

Fail tuleks nüüd salvestada.
Lisame uue masina ka linux-servers hostgruppi, mida saab teha localhost.cfg failis define hostgroup sektsioonis, mis peale muutmist peab välja nägema selline

/usr/local/nagios/etc/objects/localhost.cfg

define hostgroup{
        hostgroup_name  linux-servers ; The name of the hostgroup
        alias           Linux Servers ; Long name of the group
        members         localhost, Meie_host   ; Comma separated list of hosts that belong to this group
        }

Kui tahaksime lisada ta mõnda uue hostgruppi, siis peaksime selle grupi defineerima samamoodi selle masina enda konfiguratsiooni failis.
Kontrollime, kas nagiose konfiguratsiooni fail vastab nõuetele

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

Kui errorid puudusid, siis nüüd oleme valmis Nagiosele restart tegema

/etc/init.d/nagios restart

Peale restarti ava veebilehitseja aadressiga [http://localhost/nagios] ja logi sisse varem loodud kasutajaga nagiosadmin

Testimine

Peale teenuse käima panemist on viisakas tava seda testida.
Selleks peatame näiteks SSH teenuse

/etc/init.d/ssh stop

Ja jääme ootama vastava sisulist e-maili, et teenus on maas.
Vastavalt templates.cfg failis defineeritud väärtustele käib kindla intervalli tagant Nagios hosti kontrollimas, seega emaili tulekuni võib alg seadetega aega minna.
Mõistlik on jälgida, mis toimub logifailis hetkel kui Nagios avastab, et mingi service on maha käinud. Et logi faili reaalajas jälgida sisesta käsk

tail -f /usr/local/nagios/var/nagios.log

Probleemid

E-mail ei saabu, kui teenus maha kukub:

  • Kontrolli, kas contacts.cfg faili sai õige e-maili aadress
  • Kontrolli, kas host on seadistatud saatma e-maile selle teenuse maha kukkumisel
  • Kontrolli, mis toimub nagios.log logi failis (Kas seal on kirjeldatud teenuse maha kukkumine ja NOTIFICATION-i saatmine kasutajale)
  • Vaata templates.cfg faili, et veenduda e-maili saatmise aegasi ja intervalle.
  • Kontrolli, et oleks installitud postfix ja see ka töötaks
  • Kontrolli, et /usr/local/nagios/etc/objects/commands.cfg failis oleks määratud õige käsk maili saatmiseks (Ubuntu puhul peaks seal olema /usr/bin/mailx)

Teenuse varundamine

Kogu Nagiose konfiguratsioon defineeritakse kataloogis

/usr/local/nagios/etc

Konfiguratsiooni failide ülevaade:

Põhi konfiguratsiooni fail:

/usr/local/nagios/etc/nagios.cfg

Süsteemsete seadete konfiguratsiooni fail:

/usr/local/nagios/etc/cgi.cfg

Teenuste ja hostide konfiguratsiooni failid asuvad kataloogis:

/usr/local/nagios/etc/objects/

Defineeritud käskude konfiguratsiooni failid:

/usr/local/nagios/etc/objects/commands.cfg

Defineeritud kontaktid, kellega ühendust võetakse:

/usr/local/nagios/etc/objects/contacts.cfg

Vaikimisi installimisel defineeritud host:

/usr/local/nagios/etc/objects/localhost.cfg

Erinevate host-ide ja service-ite mallid asuvad:

/usr/local/nagios/etc/objects/templates.cfg

Defineeritud ajaperioodid:

/usr/local/nagios/etc/objects/timeperiods.cfg

Ning veel failid: printer.cfg, switch.cfg, windows.cfg - mis on algselt põhi konfiguratsiooni failist välja kommenteeritud.

Seega teenuse varundamiseks oleks vajalik sisestada käsud:

cp -R /usr/local/nagios/etc /backup_meedia/nagios

Sellega kindlustad, et kopeeritakse /etc kataloogis asuvad konfiguratsiooni failid ja seal asuv /objects kataloog

Igal ööl võiks käia backup ka Nagiose logi failist, mis asub:

/usr/local/nagios/var/nagios.log

Teenuse taastamine

Kui mingil põhjusel on teenus katki läinud ja konfiguratsiooni failid viga saanud, siis tuleb varem taastatud backup meedialt konfiguratsiooni failid taastada /usr/local/nagios/etc kataloogi. Kui varundasid oma faile täpselt nii nagu eelmises punktis kirjas, siis taastamiseks sisesta käsk:

cp -R /backup_meedia/nagios /usr/local/nagios/etc

Peale konfiguratsiooni failide taastamist tuleks teha teenusele reload.

/etc/init.d/nagios reload