Installation de mod_perl à partir des sources pour Apache/HTTPD 2.4.x

La sortie de la version 2.0.9 de mod_perl au mois de juin 2015, a apporté le support de la branche 2.4.x de Apache/HTTPD.

Dans cette documentation, nous allons installer mod_perl à partir des sources de manière dynamique. Cette installation a été réalisée sous une distribution CentOS 7.

– Installez un client HTTP en ligne de commande : yum install wget
– Installez un compilateur C et l’utilitaire make : yum install gcc make

– Installez les bibliothèques de développement de Apache/HTTPD : yum install httpd-devel
– Installez PERL et les dépendances nécessaires à mod_perl : yum install perl perl-ExtUtils-Embed gdbm-devel perl-Data-Dumper

– Placez-vous dans le répertoire suivant : cd /usr/local/src/
– Téléchargez les sources de mod_perl 2.0.9 (ou version supérieure si disponible) avec la commande wget : wget http://apache.mirrors.ovh.net/ftp.apache.org/dist/perl/mod_perl-2.0.9.tar.gz
– Décompressez l’archive : tar -xzvf mod_perl_2.0.9.tar.gz
– Placez-vous dans le répertoire suivant : cd mod_perl-2.0.9
– Spécifiez l’emplacement de l’utilitaire de compilation apxs pour la compilation du module dynamique mod_perl : perl Makefile.PL MP_APXS=/usr/bin/apxs
– Compilez mod_perl : make
– Installez mod_perl : make install

Le module dynamique mod_perl.so est installé dans le répertoire /usr/lib64/httpd/modules/.

– Créez un fichier de configuration pour charger le module dynamique mod_perl dans Apache/HTTPD : vi /etc/httpd/conf.modules.d/02-perl.conf

LoadModule perl_module modules/mod_perl.so

– Redémarrez le service Apache/HTTPD : systemctl restart httpd
– Vérifiez l’état du service Apache/HTTPD : systemctl status httpd
– Vérifiez la présence du module dynamique mod_perl dans Apache/HTTPD : httpd -M

perl_module (shared)

Supervision d’un onduleur avec Nagios

Le plugin check_snmp_ups permet de superviser l’état d’un onduleur (la source, la température, le niveau et la charge des batteries, la puissance consommée).

Ce plugins Nagios est écrit en Bash et est distribué sous licence GPLv2. Il nécessite en pré-requis, l’installation des utilitaires SNMP (snmpget et snmpwalk) sur votre serveur Nagios : yum install snmp-utils.

check_snmp_ups_1

– Déplacez le plugin check_snmp_ups dans le répertoire contenant les plugins Nagios : mv check_snmp_ups /usr/local/nagios/libexec/
– Rendez le fichier exécutable : chmod +x /usr/local/nagios/libexec/check_snmp_ups
– Modifiez le propriétaire pour ce script : chown nagios:nagios /usr/local/nagios/libexec/check_snmp_ups

Pour vérifier que ce plugin Nagios fonctionne correctement, il vous suffit de l’exécuter : /usr/local/nagios/libexec/check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t battery

L’argument H correspond à l’adresse IP de l’onduleur, C à la communauté SNMP et t au type d’information que vous souhaitez récupérer.  Les valeurs possibles sont : battery, charge, power, source et temperature. En fonction du type d’information, il vous faudra utiliser d’autres arguments tels que w et c pour indiquer les seuils d’alerte. Vous trouverez plus d’informations sur son utilisation en affichant l’aide qui accompagne ce plugin : /usr/local/nagios/libexec/check_snmp_ups -h

Voici quelques exemples d’utilisation :

– Vérifiez l’état des batteries de l’onduleur : ./check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t battery

Battery status : Battery level is ok

– Vérifiez la charge des batteries de l’onduleur : ./check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t charge -w 70 -c 30

Battery level : 100%. Remaining time : 122 minutes | charge=100;70;30;0

– Vérifiez la puissance consommée par l’onduleur : ./check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t power -w 0 -c 0

Output load : 9.62 KWatt | output_power=9622;0;0;0

– Vérifiez la source de l’onduleur : ./check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t source

Output source : Output is filtered

– Vérifiez la température de l’onduleur : ./check_snmp_ups -H xxx.xxx.xxx.xxx -C public -t temperature -w 0 -c 0

Temperature : 22 Degree Celsius | temperature=22;0;0;0

Nous allons maintenant modifier la configuration de Nagios pour superviser un onduleur. Cette partie dépend de l’arborescence de configuration et de l’installation de Nagios dont vous disposez.

– Ajoutez les définitions des objets command : vi /etc/nagios/objects/commands.cfg

define command {
command_name check_ups_battery
command_line $USER2$/check_snmp_ups -H $HOSTADDRESS$ -C $ARG1$ -t battery
}

define command {
command_name check_ups_charge
command_line $USER2$/check_snmp_ups -H $HOSTADDRESS$ -C $ARG1$ -t charge -w $ARG2$ -c $ARG3$
}

define command {
command_name check_ups_power
command_line $USER2$/check_snmp_ups -H $HOSTADDRESS$ -C $ARG1$ -t power -w $ARG2$ -c $ARG3$
}

define command {
command_name check_ups_source
command_line $USER2$/check_snmp_ups -H $HOSTADDRESS$ -C $ARG1$ -t source
}

define command {
command_name check_ups_temperature
command_line $USER2$/check_snmp_ups -H $HOSTADDRESS$ -C $ARG1$ -t temperature -w $ARG2$ -c $ARG3$
}

– Ajoutez la définition de l’objet host pour l’onduleur : vi /etc/nagios/objects/hosts.cfg

define host {
host_name ups
use generic-host
alias Onduleur
address xxx.xxx.xxx.xxx
contact_groups +admin
}

– Ajoutez la définition des objets service pour l’onduleur : vi /etc/nagios/objects/services.cfg

define service {
host_name ups
use generic-service
service_description Batterie
check_command check_ups_battery!public
contact_groups +admin
}

define service {
host_name ups
use generic-service
service_description Charge
check_command check_ups_charge!public!70!30
contact_groups +admin
}

define service {
host_name ups
use generic-service
service_description Puissance
check_command check_ups_power!public!0!0
contact_groups +admin
}

define service {
host_name ups
use generic-service
service_description Source
check_command check_ups_source!public
contact_groups +admin
}

– Rechargez la configuration de Nagios : service nagios reload ou systemctl reload nagios

L’onduleur est maintenant supervisé à l’aide de Nagios.

check_snmp_ups_2

check_snmp_ups_3

A quoi ressemble l’interface Web de OCS Inventory NG en préparation ?

OCS Inventory NG est une solution d’inventaire de parc informatique basée sur Apache/HTTPD, MySQL, PERL, PHP. Un agent installé sur les différentes machines, est chargé de récolter la configuration matérielle et logicielle à intervalle régulier. Ces informations sont transmises sur le réseau en HTTP(s) et sont stockées dans une base de données. Une interface Web permet de visualiser les détails de l’inventaire et d’accéder aux paramètres de configuration.

La version 2.2 beta 1 publiée en décembre 2014, introduit une nouvelle interface Web que je vous propose de découvrir en images.

ocs_22_beta1_1

ocs_22_beta1_2

ocs_22_beta1_3

ocs_22_beta1_4

ocs_22_beta1_6

ocs_22_beta1_7