Installazione e configurazione di Icinga (soluzione di monitoraggio) su CentOS
Icinga è un sistema di monitoraggio open source di livello aziendale che controlla le reti e qualsiasi risorsa di rete immaginabile, notifica all'utente errori e recuperi e genera dati sulle prestazioni per la reportistica. Scalabile ed estensibile, Icinga può monitorare ambienti complessi e di grandi dimensioni in località sparse.
Vado con l'installazione di base di Icinga e questo è simile a Nagios e questo documento può anche essere fatto riferimento all'installazione di Nagios. Molti documenti sono disponibili su Internet e verranno installati con l'utente nagios ma per la mia configurazione ho utilizzato l'utente predefinito che è già presente nel sistema (demone) e inoltre non lo installerò invece sul percorso predefinito Mi riferirò a /opt poiché lo trovo molto conveniente. L'interfaccia utente di Icinga è molto migliore di quella di Nagios.
In questo tutorial utilizzerò tre server:
192.168.1.20 – Server di monitoraggio Icinga (centos5)
192.168.1.30 – Win 2008 da monitorare
192.168.1.40 – Server Ubuntu 10.10 da monitorare
Requisiti
Nota:assicurati che gli strumenti di sviluppo e le librerie di sviluppo siano stati installati durante l'installazione:
- Compilatore GCC
- Librerie di sviluppo C/C++
- Librerie di sviluppo GD
Pacchetti necessari
1. Xampp per Linux:
[[email protected]~]# mkdir /software
[[email protected]~]# cd /software
[[email protected] software]# wget http://sourceforge.net/projects/xampp /files/XAMPP%20Linux/1.7.3/xampp-linux-1.7.3.tar.gz/download
2. Nucleo di glassa:
[[email protected] software]# wget http://sourceforge.net/projects/icinga/files/icinga/1.2.1/icinga-1.2.1.tar.gz/download
Installazione di Icinga
1. Decomprimi il pacchetto xampp:
[[email protected] software]# tar -zxvf xampp-linux-1.7.3.tar.gz
[[email protected] software]# mv lampp/ /opt/
Il pacchetto Xampp è un pacchetto compilato in modo molto accurato e l'estrazione dello stesso è più che sufficiente per maggiori dettagli puoi fare riferimento alla pagina xampp:
http://www.apachefriends.org/en/xampp.html
2. Decomprimere il pacchetto Icinga:
[[email protected] software]# tar -zxvf icinga-1.2.1.tar.gz
[[email protected] software]# cd icinga-1.2.1
[[email protected] icinga-1.2 .1]# ./configure --prefix=/opt/icinga --with-icinga-user=daemon --with-icinga-group=daemon --with-httpd-conf=/opt/lampp/etc
Nota:assicurati di non ricevere alcun errore durante la compilazione. Se ricevi errori, assicurati che i pacchetti richiesti siano installati.
[[email protected] icinga-1.2.1]# make all
[[email protected] icinga-1.2.1]# make install
[[email protected] icinga-1.2.1]# make install -config
[[email protected] icinga-1.2.1]# make install-commandmode
[[email protected] icinga-1.2.1]# make install-webconf
3. Ora è necessario configurare Apache con Icinga:
[[email protected] icinga-1.2.1]# cd /opt/lampp/etc/
[[email protected]]# vim httpd.conf
4. Aggiungi la seguente riga:
Include etc/icinga.conf
5. Imposta la password per l'accesso:
[[email protected] /]# cd /opt/lampp/bin/
[[email protected] bin]# ./htpasswd –c /opt/icinga/etc/htpasswd.users icingaadmin
Nuova password:
Ridigita nuova password:
Aggiunta password per utente icingaadmin
6. Avvia Apache:
[[email protected]]# cd /opt/lampp/
[[email protected]]# ./lamp startapache
XAMPP:avvio di Apache con SSL (e PHP5)...
XAMPP:errore 1! Impossibile avviare Apache!
XAMPP:avvio della diagnosi...
XAMPP:adatta httpd.conf al tuo sistema.
XAMPP:prossimo tentativo...
XAMPP:avvio Apache con SSL (e PHP5)...
7. Verifica se Apache funziona:
http://192.168.1.20
8. Ora dobbiamo avviare Icinga ma prima dobbiamo verificare se Icinga è stato compilato correttamente e tutte le configurazioni sono impostate:
[[email protected]]# cd /opt/icinga/
9. Prima di configurare Icinga inizieremo e vedremo se otteniamo la pagina:
[[email protected]]# /opt/icinga/bin/icinga –v /opt/icinga/etc/icinga.cfg
Avvisi totali:0
Errori totali:0
Le cose sembrano a posto:non sono stati rilevati problemi seri durante il controllo pre-volo.
10. Ora avvia Icinga poiché non riceviamo alcun errore:
[[email protetta]]# /opt/icinga/bin/icinga -d /opt/icinga/etc/icinga.cfg
[[email protetta]]# ps -ef|grep icinga
demone 6961 1 0 19:03 ? 00:00:00 /opt/icinga/bin/icinga -d /opt/icinga/etc/icinga.cfg
root 6998 2929 0 19:05 pts/1 00:00:00 grep icinga
[[email protected]]# chmod 777 /opt/
[[email protected]]# chmod 777 /opt/icinga/
[[email protected]]# chmod 777 /opt/icinga/var/
[[email protected]]# chmod 777 /opt/icinga/var/rw/
[[email protected]]# chmod 777 /opt/icinga/var/rw/icinga.cmd
11. Effettua il login per verificare se il sito Icinga si apre:
Installazione dei plug-in Nagios per il monitoraggio
1. Scarica il plug-in Nagios e compila lo stesso:
[[email protected] software]# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
[[email protected] software]# tar -zxvf nagios -plugins-1.4.15.tar.gz
[[email protected] software]# cd nagios-plugins-1.4.15
[[email protected] nagios-plugins-1.4.15]# ./ configure --prefix=/opt/icinga/ --with-nagios-user=daemon --with-nagios-group=daemon
[[email protected] nagios-plugins-1.4.15]# make &&make install
Personalizzazione di Icinga
Configurazione dell'avviso di posta:
[[email protetta] /]# cd /opt/icinga/etc/
[[email protetta]]# vi objects/contacts.cfg
define contact{ contact_nameicingaadmin ; Short name of user use generic-contact ; Inherit default values from generic-contact template (defined above) alias Icinga Admin ; Full name of user [email protected] ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** }
Modifica l'indirizzo email da [email protetta] al tuo indirizzo email [email protetta].
Assicurati di aver configurato lo smarthost nel server CentOS.
Per configurare lo smart host in CentOS
[[email protected]]# rpm -qa|grepsendmail
sendmail-8.13.8-2.el5
[[email protected]]# vim /etc/mail/sendmail.mc
Disabilita la seguente riga:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl dnl#DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
Abilita la seguente riga:
dnl define(`SMART_HOST', `smtp.your.provider')dnl
Fornisci qui il tuo indirizzo smtp - in questo caso sunil.cc:
define(`SMART_HOST', `smtp.sunil.cc')dnl
[[email protetta] /]#m4 /etc/mail/sendmail.mc> /etc/mail/sendmail.cf
[[email protetta] /]#/etc/init.d/sendmail restart
Installazione del plug-in Nagios e nrpe in Ubuntu 192.168.1.40
1. Affinché Ubuntu sia monitorato dal server Icinga, è necessario installare il plug-in Nagios e nrpe:
[email protected]:~# apt-get install gcc*
[email protected]:~#wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
[email protected]:~# tar -zxvf nagios-plugins-1.4.15.tar.gz
2. Compilazione del plug-in Nagios:
[email protetta]:~# cd nagios-plugins-1.4.15/
[email protetta]:~/nagios-plugins-1.4.15# ./configure --with-nagios-user=daemon --with -nagios-group=daemon
[email protected]:~/nagios-plugins-1.4.15# make &&make install
[email protected]:~/nagios-plugins-1.4.15# chown - Demone R:daemon /usr/local/nagios/
Installazione di NRPE (Nagios Remote Plugin Executor)
1. Scarica e compila NRPE:
[email protected]:~# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
[e-mail protetta]:~# tar -zxvf nrpe-2.12.tar.gz
[e-mail protetta]:~# cd nrpe-2.12/
[e-mail protetta]:~/nrpe-2.12# apt- get install openssllibssl-dev
[email protected]:~# make all
[email protected]:~# make install-plugin
[email protected]:~# make install-daemon
[email protetta]:~# make install-daemon-config
[email protetta]:~/nrpe-2.12# apt-get installxinetd
[email protetta]:~# make install-xinetd
2. Abbiamo bisogno di configurare nrpe come servizio xinetd:
[email protected]:~/nrpe-2.12# vim /etc/xinetd.d/nrpe
servicenrpe { flags = REUSE socket_type = stream port = 5666 wait = no user = daemon group = daemon server = /usr/local/nagios/bin/nrpe server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd log_on_failure += USERID disable = no only_from = 127.0.0.1 }
3. Modifica aggiungendo l'IP del server Icinga in only_from:
servicenrpe { flags = REUSE socket_type = stream port = 5666 wait = no user = daemon group = daemon server = /usr/local/nagios/bin/nrpe server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd log_on_failure += USERID disable = no only_from = 127.0.0.1 192.168.1.20 }
4. Ora dobbiamo eseguirlo come servizio aggiungendo la seguente riga:
[email protected]:~# vim /etc/services
nrpe 5666/tcp
5. Riavvia il servizio xinetd:
[email protected]:~# /etc/init.d/xinetd restart
6. Verifica se nrpe è stato avviato:
[email protected]:~# netstat -a |grep nrpe
Per verificare se Ubuntu è in grado di comunicare con il server Icinga:
[email protected]:~# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12
Dovresti essere in grado di ottenere questo output.
Finestre di configurazione lato client 2008 (192.168.1.30)
1. Scarica da http://nsclient.org/nscp/downloads.
2. Segui gli screenshot:
3. Verifica che nsclient++ sia in esecuzione come servizio:
Configurazione di Ubuntu e Win 2008 lato server
1.
[[email protected] /]# cd /opt/icinga/etc/objects/
2. Per prima cosa configuriamo il client Ubuntu.
3. Crea un file cfg per lo stesso con il seguente contenuto a cui puoi fare riferimento anche localhost.cfg presente nella stessa directory:
[[email protected] ~]# vim /opt/icinga/etc/objects/ubuntu10.cfg
define host{ uselinux-server host_name ubuntu10 alias ubuntu10 address 192.168.1.40 } define service{ use local-service host_name ubuntu10 service_description PING check_command check_ping!100.0,20%!500.0,60% } define service{ use local-service host_name ubuntu10 service_description Root check_command check_local_disk!20%!10%!/ } define service{ use local-service host_name ubuntu10 service_description Current Users check_command check_local_users!20!50 } define service{ use local-service host_name ubuntu10 service_description Total Processes check_command check_local_procs!250!400!RSZDT } define service{ use local-service host_name ubuntu10 service_description Current Load check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0 } define service{ use local-service host_name ubuntu10 service_description Swap Usage check_command check_local_swap!20!10 } define service{ use local-service host_name ubuntu10 service_description SSH check_commandcheck_ssh notifications_enabled 0 }
Per raggruppare i server puoi aggiungere questa riga a ubuntu10.cfg:
definehostgroup{ hostgroup_namelinux-servers ; The name of the hostgroup alias Linux Servers ; Long name of the group memberslocalhost, ubuntu10 ; Comma separated list of hosts that belong to this group }
4. Per Windows 2008 faremo riferimento a windows.cfg:
define host{ use windows-server ; Inherit default values from a template host_namewin2008 ; The name we're giving to this host alias My Windows Server ; A longer name associated with the host address 192.168.1.30 ; IP address of the host } define service{ use generic-service host_name win2008 service_descriptionNSClient++ Version check_commandcheck_nt!CLIENTVERSION } define service{ use generic-service host_name win2008 service_description Uptime check_commandcheck_nt!UPTIME } define service{ use generic-service host_name win2008 service_description CPU Load check_commandcheck_nt!CPULOAD!-l 5,80,90 } define service{ use generic-service host_name win2008 service_description Memory Usage check_commandcheck_nt!MEMUSE!-w 80 -c 90 } define service{ use generic-service host_name win2008 service_description C:\ Drive Space check_commandcheck_nt!USEDDISKSPACE!-l c -w 80 -c 90 }
5. Dobbiamo impostare la password per accedere al server Windows:
[[email protected] etc]# vim objects/commands.cfg
# 'check_nt' command definition define command{ command_namecheck_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ }
6. Aggiungi la tua password:
define command{ command_namecheck_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 –s [email protected] -v $ARG1$ $ARG2$ }
[[email protected] objects]# chown -R daemon:daemon /opt/icinga/
[[email protected]]# vimicinga.cfg
cfg_file=/opt/icinga/etc/objects/ubuntu10.cfg cfg_file=/opt/icinga/etc/objects/win2008.cfg
Aggiungi le due righe.
Fermati e inizia Icinga.