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.

