Installation du module Centreon Syslog Frontend
Nous allons aborder l'installation du module Centreon Syslog Frontend, celui permet de visualiser les logs du serveur Syslog dans l'interface Centreon. Ce module permet d'effectuer des recherches et/ou des tris selon certains paramètres (date, niveau d'alerte, etc). Une rubrique annexe vous est proposée pour adapter l'installation du module à la nouvelle version 2.4 avec Centreon-engine.
Pour aider à vous retrouver dans mes articles, voici les étapes à ne pas oublier pour la réussite de votre projet :
1 - Installation du serveur Syslog
2 - Installation du module Centreon Syslog Frontend
   2.1 - Mise à jour du module Centreon Syslog Frontend
   2.2 - Adaptation à Centreon 2.4x
3 - Installation de Centreon-Syslog 1.5
4 - Installation de Centreon Event To Syslog
Pour aider à vous retrouver dans mes articles, voici les étapes à ne pas oublier pour la réussite de votre projet :
1 - Installation du serveur Syslog
2 - Installation du module Centreon Syslog Frontend
   2.1 - Mise à jour du module Centreon Syslog Frontend
   2.2 - Adaptation à Centreon 2.4x
3 - Installation de Centreon-Syslog 1.5
4 - Installation de Centreon Event To Syslog
Pré requis
Il nous faut installer la librairie libssh2 pour la connexion ssh entre le serveur de supervision et syslog, les outils de développement php5 sur le serveur de supervision.
apt-get install libssh2-1-dev php5-dev
On récupère la librairie PECL
cd /usr/local/src/ wget http://pecl.php.net/get/ssh2-0.12.tgz tar xzf ssh2-0.12.tgz cd ssh2-0.12
Il faut compiler le module ssh pour php
phpize && ./configure --with-ssh2 && make
Copier le module dans php5.
cp modules/ssh2.so /usr/lib/php5/20090626+lfs
On doit faire prendre en compte cette librairie par le serveur apache.
echo "extension=ssh2.so" > /etc/php5/cli/conf.d/ssh2.ini echo "extension=ssh2.so" > /etc/php5/apache2/conf.d/ssh2.ini
Redémarrer le serveur Apache.
service apache2 restart
Vérifions l'activation de ssh2
php -i |grep ssh
/etc/php5/cli/conf.d/ssh2.ini,
Registered PHP Streams => https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip, ssh2.shell, ssh2.exec, ssh2.tunnel, ssh2.scp, ssh2.sftp
ssh2
libssh2 version => 1.2.6
banner => SSH-2.0-libssh2_1.2.6
PWD => /root/ssh2-0.12
_SERVER["PWD"] => /root/ssh2-0.12
Installation en mode ligne de commande sur le serveur de supervision
La version 1.3.3 du frontend de syslog n'est pas compatible avec les version 2.2x et plus de Centreon.
Nous allons récupérer le module centreon-syslog-frontend de la branche 1.4.1, nous aurons besoin du package subversion.
apt-get install subversion
Pour récupérer les binaires, saisir les lignes suivantes :
cd /usr/local/src svn checkout http://svn.modules.centreon.com/centreon-syslog/tags/centreon-syslog-frontend-1.4.1
Il faudra aussi préparer le fichier d'installation. Le package tofrodos est requis.
cd /usr/local/src/centreon-syslog-frontend-1.4.1 chmod +x install.sh fromdos -a install.sh
Attention, si vous installez le frontend syslog avec Centreon-Engine, vous obtiendrez lors de la saisie du chemin des fichiers de configuration de Centreon, le message suivant :
Unable to load all parameters in "instCentWeb.conf"
Le programme cherche des informations d'une installation avec Nagios et non avec Centreon-Engine. Pour remédier à cette situation, ajouter les trois lignes suivantes au fichier de configuration /etc/centreon/instCentPlugins.conf
NAGIOS_PLUGIN=/usr/local/plugins/libexec
NAGIOS_USER=centreon
NAGIOS_GROUP=centreon
Vérifier que ces paramètres sont en adéquation avec votre configuration.
Lançons l'installation
Décompresser l'archive dans /usr/local/src et lancer l'installation
Vérification des pré requis, appuyer sur Entrée
Accepter la licence
Saisir le chemin du dossier de configuration de Centreon
L'installation en ligne de commande est terminée
cd /usr/local/src
cd centreon-syslog-frontend-1.4.1
./install.sh -i
Décompresser l'archive dans /usr/local/src et lancer l'installation
###############################################################################
# #
# http://forge.centreon.com/projects/show/centreon-syslog #
# Thanks for using Centreon #
# #
# v1.4.1 #
# #
###############################################################################
------------------------------------------------------------------------
Checking all needed binaries
------------------------------------------------------------------------
rm OK
cp OK
mv OK
/bin/chmod OK
/bin/chown OK
echo OK
more OK
mkdir OK
find OK
/bin/grep OK
/bin/cat OK
/bin/sed OK
You will now read Centreon Syslog module Licence.
Press enter to continue.
Vérification des pré requis, appuyer sur Entrée
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
Do you accept GPL license ?
[y/n], default to [n]:
> y
Accepter la licence
------------------------------------------------------------------------
Load parameters
------------------------------------------------------------------------
Please specify the directory with contain "instCentWeb.conf"
> /etc/centreon
Saisir le chemin du dossier de configuration de Centreon
------------------------------------------------------------------------
Checking php extension
------------------------------------------------------------------------
SSH2 extension for PHP: OK
XML-Writer extension for PHP: OK
------------------------------------------------------------------------
Install Syslog Module
------------------------------------------------------------------------
Setting right OK
Setting owner/group OK
Changing macro OK
Create a directory to backup old files OK
Backup old installation OK
Copying module OK
Delete temp install directory OK
Setting owner/group on Nagios plugin OK
Install Nagios plugin OK
Delete temp install directory OK
The Centreon Module Syslog.1.4.1 installation is finished OK
See README and the log file for more details.
###############################################################################
# #
# Go to the URL : http://your-server/centreon/ #
# to finish the setup #
# #
# Report bugs at #
# http://forge.centreon.com/projects/centreon-syslog/issues/new #
# #
###############################################################################
L'installation en ligne de commande est terminée
Installation du module dans Centreon
Il faut se connecter à l'interface Web de centreon
Sélectionnez Administration / Modules. Cliquez sur l'icône à droite pour installer le module.
Cliquez sur le bouton Install Modules
L'installation s'est bien passée, cliquer sur le bouton back.
L'installation du module est terminée, vous pouvez accéder à sa configuration.
Une nouvelle vue Syslog a été créé dans la section Monitoring, mais celle-ci n'est pas encore fonctionnelle. Il faut configurer l'authentification ssh entre le serveur de supervision et le serveur syslog.
Sélectionnez Administration / Modules. Cliquez sur l'icône à droite pour installer le module.
Cliquez sur le bouton Install Modules
L'installation s'est bien passée, cliquer sur le bouton back.
L'installation du module est terminée, vous pouvez accéder à sa configuration.
Une nouvelle vue Syslog a été créé dans la section Monitoring, mais celle-ci n'est pas encore fonctionnelle. Il faut configurer l'authentification ssh entre le serveur de supervision et le serveur syslog.
Configuration du module
Avant de réaliser la configuration du module, affectez un mot de passe à l'utilisateur syslog sur le serveur Syslog.
Sélectionnez Administration / Modules.
Cliquez sur Configuration
Cliquez sur Modify pour modifier la configuration
Onglet Database : Saisir l'adresse IP du serveur Syslog, le nom de la base Syslog et le mot de passe syslogadmin
Onglet SSH : Saisir l'adresse IP du serveur Syslog, le mot de passe de l'utilisateur syslog
Onglet Configuration : Saisir le chemin du fichier de configuration de syslog sur le serveur Syslog.
Sauvegarder la configuration en cliquant sur le bouton Save.
Il faut exporter le fichier de configuration vers le serveur Syslog. Cliquer sur le bouton Export Configuration
Le fichier a bien été envoyé.
root@syslog:~# passwd syslog
Entrez le nouveau mot de passe UNIX : syslog2011
Retapez le nouveau mot de passe UNIX : syslog2011
passwd : le mot de passe a été mis à jour avec succès
Sélectionnez Administration / Modules.
Cliquez sur Configuration
Cliquez sur Modify pour modifier la configuration
Onglet Database : Saisir l'adresse IP du serveur Syslog, le nom de la base Syslog et le mot de passe syslogadmin
Onglet SSH : Saisir l'adresse IP du serveur Syslog, le mot de passe de l'utilisateur syslog
Onglet Configuration : Saisir le chemin du fichier de configuration de syslog sur le serveur Syslog.
/usr/bin/syslog/etc
Sauvegarder la configuration en cliquant sur le bouton Save.
Il faut exporter le fichier de configuration vers le serveur Syslog. Cliquer sur le bouton Export Configuration
Le fichier a bien été envoyé.
Le fichier de configuration syslog étant envoyé, il y aura un problème d'authentification MySQL sur le serveur Syslog lui-même. En effet les tâches cron ne pourront s'exécuter.
php /usr/bin/syslog/tableLogRotate.php
DB Error: connect failed
Le fichier de configuration /usr/bin/syslog/etc/syslog..conf.php indique l'utilisateur MySQL 172.16.209.107@syslogadmin mais la base ne contient que deux utilisateurs localhost@syslogadmin et 172.16.209.141@syslogadmin comme ci-dessous
Deux solutions pour résoudre notre problème :
- la première, modifier le fichier de configuration et remplacer l'adresse ip par localhost. L'inconvénient de cette méthode, il faudra le refaire si la configuration est exporté une nouvelle fois.
- deuxième solution, plus élégante, rajouter un utilisateur syslogadmin@172.16.209.132 comme ci-dessous :
mysql> grant select,insert,update,delete,create,alter,drop on centreon_syslog.* to syslogadmin@172.16.209.132 identified by 'syslog';
l'IP 172.16.209.132 étant le serveur syslog. Pour fonctionner, il faudra modifier le fichier my.cnf comme expliqué ci-dessous.
Retour à la vue Monitoring, il n'y a toujours pas de données affichées ! En fait le serveur Mysql de Syslog n'accepte pas les connexions externes. Il faut donc modifier le fichier de configuration my.cnf du serveur Syslog.
Modifier le paramètre bind-address et relancer le serveur Mysql
Cliquez sur Monitoring / Syslog. Vous avez vos messages syslog.
Cliquez sur Search, vous avez un message d'erreur. C'est un fonctionnement normal. La table des logs de la journée actuelle n'est pas encore présente. Il faudra attendre 23 h 59 pour que le script /usr/bin/syslog/tableLogRotate.php s'exécute. Il y a possiblité de forcer son exécution en se connectant sur le serveur Syslog.
La table est créée, vous pouvez retourner sur Centreon et visualiser les logs.
Vous avez la possibilité de filtrer sur une période de date et d'exporter au format csv ou open office.
bind-address = 172.16.209.132
Modifier le paramètre bind-address et relancer le serveur Mysql
service mysql restart
Cliquez sur Monitoring / Syslog. Vous avez vos messages syslog.
Cliquez sur Search, vous avez un message d'erreur. C'est un fonctionnement normal. La table des logs de la journée actuelle n'est pas encore présente. Il faudra attendre 23 h 59 pour que le script /usr/bin/syslog/tableLogRotate.php s'exécute. Il y a possiblité de forcer son exécution en se connectant sur le serveur Syslog.
root@syslog:/usr/bin/syslog# php tableLogRotate.php
BEGIN TABLES LOGS ROTATION AT 2011-05-06 15:53:10
DROP TABLE all_logs
RENAME TABLE logs TO logs20110507
CREATE TABLE logs
CREATE MERGE TABLE all_logs
END OF TABLES LOGS ROTATION AT 2011-05-06 15:53:10
BEGIN TABLES CACHE ROTATION AT 2011-05-06 15:53:10
DROP TABLE all_cache
RENAME TABLE cache TO cache20110507
CREATE MERGE TABLE all_cache
END OF TABLES CACHE ROTATION AT 2011-05-06 15:53:10
La table est créée, vous pouvez retourner sur Centreon et visualiser les logs.
Vous avez la possibilité de filtrer sur une période de date et d'exporter au format csv ou open office.
Mise en place de la coloration syntaxique des événements
Pour bénéficier de la coloration des événements en fonction de leur criticité, nous devons modifier le fichier de configuration de Rsyslog. Cette modification permettra d'afficher au format texte, les champs Facility et Severity. Editez le fichier /etc/rsyslog.conf et modifiez l'avant dernière ligne comme ci-dessous.
Nous rajoutons le suffixe -text aux champs syslogfacility et syslogpriority. N'oubliez pas de relancer le serveur syslog.
Les champs se remplissent aussitôt avec du texte, le champ Severity change de couleur en fonction de la criticité de l'événement comme ci-dessous.
L'installation de notre Syslog est terminée. Pour effectuer une éventuelle mise à jour du module, visiter cette page. Il restera à compléter l'installation du module de langue français. Nous allons, maintenant, aborder la centralisation des événements windows par l'intermédiaire de Centreon E2S.
$template sysMysql,"INSERT INTO logs (host,facility, priority,level,tag,datetime,program,msg) VALUES ('%HOSTNAME%','%syslogfacility-text%','%syslogpriority-text%','%syslogseverity%', '%syslogtag%', '%timereported:::date-mysql%','%programname%', '%msg%')", SQL
Nous rajoutons le suffixe -text aux champs syslogfacility et syslogpriority. N'oubliez pas de relancer le serveur syslog.
service rsyslog restart
Les champs se remplissent aussitôt avec du texte, le champ Severity change de couleur en fonction de la criticité de l'événement comme ci-dessous.
L'installation de notre Syslog est terminée. Pour effectuer une éventuelle mise à jour du module, visiter cette page. Il restera à compléter l'installation du module de langue français. Nous allons, maintenant, aborder la centralisation des événements windows par l'intermédiaire de Centreon E2S.