Nagios 3.2
Nagios
Versioonide ajalugu (viimase muutmise aeg)
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-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.
/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
Ü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 üle kontrollima meie defineeritud hosti konfiguratsiooni faili
Selles failis on kirjeldame
- masina nime
- millisesse gruppi ta kuulub
- mis teenuseid peaks Nagios selle masina peal jälgima
/usr/local/nagios/etc/objects/meie_host.cfg
Oletame, et me 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 }
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.