Apache è uno dei server Web più utilizzati al mondo poichè molto robusto, piuttosto performante e soprattutto perchè open source.
Ovviamente, affichè le prestazioni dell’applicativo in questione possano migliorare sensibilmente, è necessario operare sul suo file di configurazione, effettuando un tuning dello stesso. A tal proposito, è alquanto utile, durante questa attività, tenere Apache sotto controllo utilizzando uno dei suoi moduli appositamente creato per svolgere la suddetta mansione, ovvero mod_status.
Vediamo ora come abilitarlo e configurarlo in modo opportuno.
Configurazione di Apache
Per prima cosa editiamo il file /etc/httpd/conf/httpd.conf, operando su di esso le seguenti modifiche:
1) decommentiamo la direttiva:
LoadModule status_module modules/mod_status.so
2) abilitiamo le statistiche estese, decommentando la seguente entry:
ExtendedStatus On
Nell’ambito della configurazione del vhost (o dei vhosts) su cui vogliamo fare in modo che siano consultabili le statistiche relative al funzionamento del nostro server Web, inseriamo quanto segue:
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from <IP 1>
Allow from <IP 2>
Allow from <IP 3>
Allow from <IP 4>
Allow from <IP 5>
</Location>
dove i vari IP sono quelli consentiti per la visualizzazione della pagina Web contenente lo stato di funzionamento di Apache.
Se non utilizzate vhosts, potete semplicemente decommentare le suddette entries (già presenti nel file di configurazione di Apache).
Riavviamo dunque il demone per rendere effettive le modifiche:
[root@serverWeb ~]# service httpd reload
Configurazione di Nagios
Una volta configurato Apache, è possibile utilizzare Nagios per automatizzare i controlli sul server Web. Ovviamente, l’indirizzo IP del nostro NMS deve essere tra quelli consentiti in <Location /server-status>.
Il plugin che ho scelto per effettuare i check in questione è check_apachestatus.pl, scaricabile da qui.
Rinominiamo lo script appena scaricato e rendiamolo eseguibile:
[root@NMS ~]# mv check_apachestatus.pl.txt ckeck_apachestatus.pl
[root@NMS ~]# chmod +x check_apachestatus.pl
Spostiamolo nella dir dei plugin di Nagios:
[root@NMS ~]# mv check_apachestatus.pl /usr/lib/nagios/plugins/
Prima di eseguirlo, però, è necessario scaricare le librerie perl relative a Nagios, mediante il comando:
[root@NMS ~]# yum install perl-Nagios-Plugin
Ora possiamo procedere con la configurazione di Nagios vera e propria.
Per prima cosa, all’interno del file /etc/nagios/objects/commands.cfg definiamo questo nuovo comando:
# ‘check_apache_status’ command definition
define command{
command_name check_apache_status
command_line $USER1$/check_apachestatus.pl -H $ARG1$ -p $ARG2$ -t $ARG3$ -w $ARG4$ -c $ARG5$
}
dove -H rappresenta l’FQDN o semplicemente l’indirizzo IP del nostro server Web su cui è in esecuzione mod_status (e su cui è consultabile la relativa pagina server-status); -p rappresenta la porta su cui il server Web è in ascolto; -t rappresenta il timeout relativo ad ogni check; -w rappresenta il numero di open slots al di sotto del quale far scattare un warning; -c rappresenta il numero di open slots al di sotto del quale far scattare un avviso di tipo critical.
A titolo di informazione, gli open slots rappresentano semplicemente il numero di processi fork in ascolto (ovvero in attesa di nuove connessioni) relativi ad httpd.
Non ci resta che creare un apposito servizio sul file di configurazione di Nagios che identifica il nostro server Web. Ad esempio, all’interno del file /etc/nagios/objects/serverweb.cfg possiamo scrivere:
define service{
use local-service ; Name of service template to use
host_name serverweb.vostrodominio.com
service_description Apache Status
check_command check_apache_status!serverweb.vostrodominio.com!80!10!5!0
notifications_enabled 0
}
Infine, riavviamo Nagios:
[root@NMS ~]# service nagios restart
Ed abbiamo finito.
Alla prossima.