Tenere sotto controllo le performance di Apache con mod_status e Nagios

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.

 

apache_status.jpeg

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 scrip 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.


Tenere sotto controllo le performance di Apache con mod_status e Nagiosultima modifica: 2013-10-29T10:02:00+00:00da nazarenolatella
Reposta per primo quest’articolo

Un pensiero su “Tenere sotto controllo le performance di Apache con mod_status e Nagios

Lascia un commento