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.