Većina sistem administratora ima zadatak brinuti se o jednom ili više servera. To zna biti vrlo stresan posao jer korisnici (s pravom) očekuju da server bude uvijek dostupan. Najveći problem je kad vas korisnik nazove i kaže da je neki server nedostupan jer onda očekuje da administrator zamahne čarobnim štapićem i da sredi stvar. To, naravno, često nije moguće pa korisnici postanu nervozni i stalno zapitkivaju u čemu je problem.
No, takvi događaji mogu se spriječiti. Na Internetu postoji mnogo open source rješenja za nadgledanje rada servera i uređaja na mreži (eng. network monitoring), a među popularnijima je Nagios. To je sustav koji na jednom glavnom serveru i prati stanje ostalih servera. Osim praćenja dostupnosti servera i njegovih servisa (SMTP, POP3, Apache…), Nagios sustav uz dodatak posebnog NRPE plugina instaliranog na udaljenom serveru može pratiti i količinu slobodne memorije, zauzeće procesora, količinu load-a i slično.
Ovdje ću opisati instalaciju Nagios sustava sa Centreon sučeljem. Konfiguraciju i dodavanje servera za praćenje neću opisivati jer je to individualna stvar svakog korisnika pa je najbolje da sve o konfiguraciji Nagiosa i Centreona pročitate u njihovoj dokumentaciji (Nagios dokumentacija; Centreon dokumentacija).
Prije instalacije samog sustava, postoji nekoliko predzahtjeva. Neke pakete ste možda već instalirali, ali za svaki slučaj upišite svaki redak kako se traži. Na taj način biti ćete sigurni da imate sve. Ukoliko je paket već instaliran, automatski će biti preskočen:
- Instalirajte pakete potrebne za kompajliranje:
apt-get install build-essential
- Instalirajte sudo, Apache server, MySQL server i PHP:
apt-get install sudo apache2 mysql-server php5
- Instalirajte MySQL ekstenziju za PHP (php5-mysql), PEAR, SNMP, Posix i GD module za PHP:
apt-get install php5-mysql php-pear php5-snmp posixtestsuite php5-gd
-
apt-get install rrdtool
-
apt-get install snmp snmpd libnet-snmp-perl
-
apt-get install nmap
-
apt-get install libgd-gd2-perl libnet-snmp-perl librrds-perl
- Prije instalacije PEAR modula treba napraviti upgrade PEAR-a (broj najnovije verzije provjerite na http://pear.php.net):
pear upgrade PEAR-<najnovija.verzija.pear>
Nakon toga instalirati slijedeće:
pear install -o -f –alldeps DB DB_DataObject DB_DataObject_FormBuilder MDB2 Date Numbers_Roman Numbers_Words HTML_Common HTML_QuickForm HTML_QuickForm_advmultiselect HTML_Table Auth_SASL HTTP Image_Canvas Image_Color Image_Graph Image_GraphViz Mail Mail_Mime Net_SMTP Net_Socket Net_Traceroute Net_Ping Validate XML_RPC SOAP
Ukoliko je instalacija svih predzahtjeva prošla bez problema, krećemo sa instalacijom Nagios sustava:
- Dodavanje korisnika i grupe korisnika “nagios”:
adduser nagios
- Kreiranje grupe “nagcmd” u kojoj će se nalaziti korisnici nagios i www-data (korisnik pod kojim je pokrenut Apache):
addgruop nagcmd
- Dodavanje korisnika nagios i www-data u grupu nagcmd:
usermod -G nagcmd nagios
usermod -G nagcmd www-data
- Kreiranje direktorija za Nagios sustav i postavljanje vlasništva nad tim direktorijem korisniku i grupi nagios:
mkdir /usr/local/nagios
chown nagios:nagios /usr/local/nagios
- Otvorite stranicu http://www.nagios.org/download/ i “skinite” najnoviju verziju Nagios sustava (trenutno je to Nagios 3.0).
- Otpakirajte .tar.gz datoteku i prebacite se u direktorij u koji ste ju otpakirali. Nakon toga pokrenite konfiguracijsku skriptu:
cd nagios-3.0rc3
./configure -with-nagios-user=nagios -with-nagios-group=nagios -with-command-group=nagcmd
- Kad to završi, trebali biste dobiti razne informacije o tome kako će Nagios sustav biti instaliran:
*** Configuration summary for nagios 3.0rc3 02-26-2008 ***:
General Options:
-------------------------
Nagios executable: nagios
Nagios user/group: nagios,nagios
Command user/group: nagios,nagcmd
Embedded Perl: no
Event Broker: yes
Install ${prefix}: /usr/local/nagios
Lock file: ${prefix}/var/nagios.lock
Check result directory: ${prefix}/var/spool/checkresults
Init directory: /etc/init.d
Apache conf.d directory: /etc/apache2/conf.d
Mail program: /usr/bin/mail
Host OS: linux-gnu
Web Interface Options:
------------------------
HTML URL: http://localhost/nagios/
CGI URL: http://localhost/nagios/cgi-bin/
Traceroute (used by WAP): /usr/sbin/tracerouteReview the options above for accuracy. If they look okay,
type 'make all' to compile the main program and CGIs.
- Nakon toga učinite slijedeće:
- Iskompajlirajte Nagios i CGI skripte: make all
- Instalirajte Nagios i HTML datoteke: make install
- Instalirajte inicijalizacijsku skriptu koja će omogućiti da se Nagios pokrene kod pokretanja servera: make install-init
- Instalirajte i konfigurirajte dozvole za direktorij sa naredbama (Commands) koji služi za vanjske naredbe: make install-commandmode
- Ako želite instalirati primjere konfiguracijskih datoteka, upišite: make install-config
Idući korak je instalacija Nagios Pluginova:
- Sa stranice http://www.nagios.org/download/ “skinite” najnoviju verziju Nagios pluginova, otpakirajte ju te se prebacite u novootpakirani direktorij:
wget http://dfn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
tar -zxvf nagios-plugins-1.4.11.tar.gz cd nagios-plugis-1.44.11
- Pokrenite konfiguracijsku skriptu:
./configure
- Na kraju kompajlirajte i instalirajte defaultne pluginove:
make && make install
Nakon instalacije Nagios sustava i Nagios pluginova, slijedi instalacija grafičkog sučelja. Nećemo instalirati Nagiosovo sučelje jer ćemo koristiti po meni bolji i ljepši Centreon:
- Prvo “skinite” najnoviju verziju Centreon sučelja, otpakirajte ju i prebacite se u novootpakirani direktorij:
wget http://download.oreon-project.org/index.php?id=73
tar -zxvf centreon-1.4.2.3.tar.gz
cd centreon-1.4.2.3
- Pokrenite instalacijsku skriptu (obavezno kao root korisnik) koja će vas voditi kroz instalacijsku proceduru:
./install.sh
###############################################################################
# Centreon (www.centreon.com) #
# Thanks for using Centreon #
# #
# v 1.4.2.3 #
# #
# infos@oreon-project.org #
# #
# Make sure you have installed and configured #
# sudo - sed #
# php - apache - rrdtool - mysql #
# #
# #
###############################################################################
# The Team Centreon #
###############################################################################
WARNING : Setup will delete all previous informations in your Centreon DATABASE.
Are you sure to continue ?
[y/n], default to [n]:y
Where is installed Nagios ?
default to [/usr/local/nagios]:/usr/local/nagios
Where is your nagios etc directory ?
default to [/usr/local/nagios/etc]:/usr/local/nagios/etc
Path /usr/local/nagios/etc OK
Where is your nagios var directory ?
default to [/usr/local/nagios/var]:/usr/local/nagios/var
Path /usr/local/nagios/var OK
Where is your nagios plugins (libexec) directory ?
default to [/usr/local/nagios/libexec]:/usr/local/nagios/libexec
Path /usr/local/nagios/libexec OK
Where is your nagios bin directory?
default to [/usr/local/nagios/bin]:/usr/local/nagios/bin
Path /usr/local/nagios/bin OK
Where is your nagios image directory ?
default to [/usr/local/nagios/share/images]:/usr/local/nagios/share/images
Path /usr/local/nagios/share/images OK
Where do I install centreon ?
default to [/usr/local/centreon]:/usr/local/centreon
Directory /usr/local/centreon does not exits. CRITICAL
Do you want me to create this directory [/usr/local/centreon]?[Y/n]y
Path /usr/local/centreon OK
Where is sudo configuration file?
default to [/etc/sudoers]:/etc/sudoers
File /etc/sudoers OK
Where is installed RRD perl modules [RRDs.pm] ?
Just put directory, not full path.
default to [/usr/local/rrdtool/lib/perl]:/usr/lib/perl5
File /usr/lib/perl5 OK
Where is rrdtool binary ?
default to [/usr/bin/rrdtool]:/usr/bin/rrdtool
/usr/bin/rrdtool OK
Where is mail binary ?
default to [/usr/bin/mail]:/usr/bin/mail
/usr/bin/mail OK
Where is PEAR Path ?
default to [/usr/share/pear]:/usr/share/php
PEAR Path /usr/share/php OK
————————————————————————
User Management
————————————————————————
Finding Apache group : www-data
Finding Apache user : www-data
Finding Nagios group : nagios
Finding nagios group ‘nagios’ in /etc/group YES
Finding Nagios user : nagios
Finding nagios user ‘nagios’ in /etc/passwd YES
————————————————————————
Other Stuff
————————————————————————
TrueType directory created OK
TrueType verdana installed OK
Finding PEAR Path : /usr/share/php OK
PEAR Font directory created OK
PEAR Font installed OK
————————————————————————
Configure Apache server
————————————————————————
Create ‘/etc/apache2/conf.d/oreon.conf’ OK
Configuring Apache OK
User www-data added to nagios group OK
————————————————————————
Start Centreon Installation
————————————————————————
Centreon Directory already exists PASSED
Copy ‘filesGeneration’ OK
Copy ‘filesUpload’ OK
Copy ‘GPL_LIB’ OK
Copy ‘log’ OK
Copy ‘www’ OK
Copy ‘cron’ OK
Copy ‘ODS’ OK
Copy ‘ODS_SRC_ETC’ OK
Copy ‘doc’ OK
————————————————————————
Start Plugins Centreon Installation
————————————————————————
/usr/local/nagios/libexec already exists PASSED
Preparing Oreon Plugins…
-> centreon.conf OK
-> centreon.pm OK
-> check_centreon_dummy OK
-> check_centreon_MS_multiple_services OK
-> check_centreon_nt OK
-> check_centreon_ping OK
-> check_centreon_snmp_cpu OK
-> check_centreon_snmp_loadaverage OK
-> check_centreon_snmp_multiple_process OK
-> check_centreon_snmp_packetErrors OK
-> check_centreon_snmp_process OK
-> check_centreon_snmp_process_detailed OK
-> check_centreon_snmp_remote_storage OK
-> check_centreon_snmp_TcpConn OK
-> check_centreon_snmp_traffic OK
-> check_centreon_snmp_uptime OK
-> check_centreon_snmp_value OK
-> check_meta_service OK
-> check_snmp_cpfw.pl OK
-> check_snmp_load.pl OK
-> check_snmp_mem.pl OK
-> check_snmp_process.pl OK
-> check_snmp_processus_loaded.pl OK
-> check_snmp_script_result.pl OK
-> check_snmp_storage.pl OK
-> check_snmp_win.pl OK
-> process-service-perfdata OK
-> submit_host_check_result OK
-> submit_service_check_result OK
Do you want to install Centreon Plugins ?
[y/n], default to [y]:y
Installing Centreon Plugins on ‘/usr/local/nagios/libexec’ OK
————————————————————————
Start Traps Handler Installation
————————————————————————
Preparing Oreon Plugins…
-> fill_trapDB
-> genSnmpttConfFile
-> trapHandler
Do you want to install Centreon Traps Plugins ?
[y/n], default to [y]:y
Installing Centreon Traps Plugins on
/usr/local/nagios/libexec/traps created OK
Where is your SNMP configuration file?
default to [/etc/snmp/]:/etc/snmp
Moving snmptrapd.conf to /etc/snmp OK
/etc/snmpcentreon_traps created OK
Moving snmptt.ini to /etc/snmpcentreon_traps/ OK
Moving snmp.conf to /etc/snmp OK
Moving snmptt to /usr/sbin/ OK
Moving snmpttconvertmib to /usr/sbin/ OK
/usr/local/nagios/libexec/traps/’ OK
Finding Centreon Plugins configuration file ‘centreon.conf’OK
You already seem to have installed the plugins Centreon.
Do you want overwrite this file ? You must regenerate this one from Centreon interface.
[y/n], default to [n]:n
/usr/local/centreon/filesGeneration/nagiosCFG already existPASSED
/usr/local/centreon/filesUpload/nagiosCFG already exists PASSED
————————————————————————
Start ODS Installation
————————————————————————
Checking ODS data folder :
Creating Centreon Directory ‘/var/lib/ods’ OK
Checking ODS database folder :
Creating Centreon Directory ‘/var/lib/ods/database/’ OK
Checking ODS log folder :
Creating Centreon Directory ‘/var/log/ods/’ OK
Replace ODS Macro OK
Install ODS Binary OK
Set ODS properties OK
————————————————————————
Replace Macro In ODS cron script
————————————————————————
in /usr/local/centreon/cron/inventory_update.php OK
in /usr/local/centreon/cron/reporting/ArchiveLogInDB.php OK
in /usr/local/centreon/cron/parsing_status.pl OK
in /usr/local/centreon/cron/parsing_log.pl OK
————————————————————————
Start Centreon Cron Configuration
————————————————————————
Specify user do you use for Centreon cron
Default to [nagios] nagios
no crontab for nagios
You old crontab is backup on /tmp/crontab_nagios.c13601 file
————————————————————————
Configure Sudo
————————————————————————
Finding nagios init script : /etc/init.d/nagios
Configuring Sudo OK
————————————————————————
Centreon Post Install
————————————————————————
Finding mail binary : /usr/bin/mail OK
Finding rrdtool binary : /usr/bin/rrdtool OK
Create /usr/local/centreon/www/install/installoreon.conf.phOK
Create /etc/oreon.conf OK
Configuring Oreon post-install OK
###############################################################################
# Go to the URL : http://your-server/oreon/ #
# or http://your-server/centreon/ to finish the setup #
# #
# Report bugs at bugs@oreon-project.org #
# #
# Thanks for using Centreon. #
# ———————– #
# Contact : infos@oreon-project.org #
# http://www.centreon.com #
###############################################################################
Nakon instalacije Centreon sučelja, nastavljamo sa konfiguracijom parametara i baze:
- Ulogirajte se u Centreon sučelje na serveru: http://<server>/centreon i kad se otvori, kliknite na Start kako bi započeli konfiguraciju.
- Da bi koristili sučelje, morate prihvatiti licencne uvjete. Označite I accept i kliknite na Next.
- Na trećem koraku pregledajte jesu li sve opcije u redu i ako jesu, kliknite Next.
- Na četvrtom koraku sam naišao na jedan mali problemčić. Kod komponente LDAP pisalo je upozorenje Warning: ldap.so not loaded in php.ini. Ukoliko vam se to dogodi, otvorite konzolu i instalirajte LDAP ekstenziju za PHP:
apt-get install php5-ldap
Nakon toga pomoću nekog konzolnog editora teksta (npr. vim) otvorite php.ini datoteku:
vim /etc/php5/apache2/php.ini
U datoteci pronađite primjere kako učitati ekstenziju (ako koristite vim, upišite “/extension=mysql.so”, bez navodnika da pronađete primjer učitavanja ekstinzije za MySQL bazu) i ispod toga upišite:
extension=ldap.so
Još preostaje samo restart Apache servera i nakon toga bi sve trebalo biti OK (nakon restarta u Centreon sučelju kliknite na Back pa ponovo na Next i ne bi smjelo biti upozorenja):
/etc/init.d/apache2 restart
Nakon što se uvjerite da je sve u redu, opet kliknite na Next da bi došli na 5. korak.
- Na petom koraku provjerava se instalacija PEAR modula. Provjerite da li za svaku PEAR ekstenziju piše OK i kliknite Next.
- Na ovom koraku podešava se MySQL baza. Upišite lozinku za root korisnika baze, naziv baze koju će Centreon sustav koristiti (najbolje centreon), lozinku za tu bazu (morate ju upisati dva puta) i opciju MySQL client version postavite na >=4.1 - PASSWORD(). Klinite na Next.
- Na sedmom koraku provjerite da li je sve u redu (zelenim slovima mora pisati OK i verzija MySQL baze) i ako je, kliknite Next.
- Ovjde podešavate postavke administratorskog korisničkog računa ta Centreon sučelje. Možete koristiti svoje podatke ili ove koje sam ja naveo:
Administrator login for Oreon: admin
Administrator password for Oreon: <upišite svoju lozinku>
Confirm password: <ponovo upišite istu lozinku>
Administrator firstname for Oreon: <upišite administratorovo ime>
Administrator lastname for Oreon: <upišite administratorovo prezime>
Administrator Email for Oreon: <upišite e-mail administratora>
Administrator language for Oreon: <odaberite "en">
Nakon toga kliknite na Next.
- Za Enable LDAP Authentication? možete odabrati No. Kliknite Next.
- Ako je u popisu kofiguracijskih datoteka sve OK, klinite Next.
- Na 11. koraku podešava se MySQL baza. Ukoliko za sve piše OK, kliknite Next.
- Ovo je posljednji korak. Sve smo uspješno instalirali pa klinite na Click here to complete your install.
Sada upišite svoje korisničko ime i lozinku koje ste odredili u 8. koraku i kliknite Login pa ćete ući u sustav za nadzor.
Prije nego što upišete prvi server, predlažem dodavanje novog vremenskog perioda za slanje obavijesti o stanju servera i servisa. Budući da to ne možemo napraviti u Centreon sustavu, otvorite konzolu, spojite se na server na kojem ste instalirali Nagios i Centreon te upišite mysql -u root -p kako bi se spojili na MySQL. Nakon toga morate upisati lozinku za root korisnika za MySQL. Kad ste se uspješno spojili na MySQL, upišite slijedeće (pretpostavit ću da ste bazu nazvali centreon kao i ja):
use centreon;
INSERT INTO `timeperiod` ( `tp_id` , `tp_name` , `tp_alias` , `tp_sunday` , `tp_monday` , `tp_tuesday` , `tp_wednesday` , `tp_thursday` , `tp_friday` , `tp_saturday` ) VALUES ( '5', 'Daily', 'Only at daytime', '10:00-21:00', '08:00-22:00', '08:00-22:00', '08:00-22:00', '08:00-22:00', '08:00-22:00', '10:00-22:00' );
Ovime ste dodali novi vremenski period za slanje obavijesti pod imenom “Daily”. Na taj način ćete se osigurati da vam obavijesti neće dolaziti u gluho doba noći i probuditi vas. Naravno, to je samo opcija i još uvijek u postavkama svog korisničkog imena možete odabrati drugačije vrijeme slanja obavijesti jer za neke servere ćete možda htjeti da vam se obavijesti šalju u svako doba.
Čestitam! Uspješno ste instalirati Nagios sustav za nadgledanje servera i Centreon sučelje za konfiguraciju. Ukoliko imate kakvih pitanja, slobodno napišite u komentarima.