Installation d'un serveur syslog
Nous allons réaliser l’installation d’un serveur Syslog. Celui-ci s’appellera syslog et aura comme adresse IP 172.16.209.132. Notre serveur Syslog sera raccordée au réseau par l’interface réseau VMnet8.
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
Configuration de la VM syslog
Notre VM étant préparée, nous modifierons le hostname et l’adresse IP.
Editer le fichier /etc/hostname et modifiez la ligne
syslog
Editez le fichier /etc/network/interfaces, saisissez l’IP statique
iface eth0 inet static
address 172.16.209.132
netmask 255.255.255.0
gateway 172.16.209.2
L’adresse IP sera celle de l’hôte (mackbook).
On modifie le fichier /etc/resolv.conf comme ci-dessous
domain localmac
search localmac
nameserver 172.16.209.140
Relancez le serveur
Configuration du serveur DNS
Pour assurer la résolution DNS, on ajoutera la ligne suivante dans le fichier /etc/bin/db.localmac
et la résolution inverse dans /etc/bind/db.localmac.inv
Important, ne pas oublier le point à la fin.
Rechargez la nouvelle configuration dns
syslog A 172.16.209.132 ;syslog
et la résolution inverse dans /etc/bind/db.localmac.inv
132 PTR syslog.localmac.
Important, ne pas oublier le point à la fin.
Rechargez la nouvelle configuration dns
/etc/init.d/bind9 reload
Pré requis
Notre serveur Syslog aura besoin d'une base de données MySql, du module PHP5 pour MySql, de l'extension MySql pour Rsyslog et de ssh pour la communication entre le serveur syslog et le serveur de supervision (Centreon). Nous aurons besoin aussi de Pear DB pour le module Centreon Syslog Server.
L'installation demandera de saisir le mot de passe administrateur de la base de données.
Ne pas configurer la base de données, répondre non. Je vous conseille l'installation de phpmyadmin pour visualiser la base de données.
apt-get install mysql-server php5 php5-mysql php-db rsyslog-mysql rsyslog-doc ssh
L'installation demandera de saisir le mot de passe administrateur de la base de données.
Ne pas configurer la base de données, répondre non. Je vous conseille l'installation de phpmyadmin pour visualiser la base de données.
Installation du module Centreon Syslog Server
Vous devez récupérer les binaires sur le site de Centreon.(authentification obligatoire)
Décompresser l'archive dans /usr/local/src et lancer l'installation
Vérification des pré requis, appuyer sur Entrée
Accepter la licence
Création de l'utilisateur syslog
Vérification des binaires MySQL, PHP et des diverses librairies. Création du dossier syslog
Création du dossier logs
Création du dossier etc pour stocker la configuration.
Saisir le mot de passe administrateur de la base de données MySql. Créer la base syslog.
Paramétrer la taille du champ program à 30 (préconisation de l'auteur).
Création de la table logs
Création de l'utilisateur de base de données syslogadmin@localhost
Répondre oui pour la création du mot de passe
Saisir l'adresse ip du serveur de supervision
Création de l'utilisateur de base de données syslogadmin@172.16.209.141
Répondre oui pour la création du mot de passe
L'installation est terminée.
cd /usr/local/src
tar xzf centreon-syslog-server-1.2.1.tar.gz
cd centreon-syslog-server-1.2.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.2.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
groupadd OK
useradd 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
------------------------------------------------------------------------
Checking syslog group and user
------------------------------------------------------------------------
Cannot find user: syslog FAIL
Do you want to create this user
[y/n], default to [n]:
> y
Création de l'utilisateur syslog
Create user: syslog OK
------------------------------------------------------------------------
Checking binaries and processus
------------------------------------------------------------------------
Mysql is running: OK
PHP version: 5.3.3-7+squeeze1 OK
Pear-DB version: 1.7.13 OK
PHP MySQL module: OK
------------------------------------------------------------------------
Get directories for installation
------------------------------------------------------------------------
Where do you want to install files ?
default to [/usr/bin/syslog]
>
Do you want me to create this directory ? [/usr/bin/syslog]
[y/n], default to [n]:
> y
Vérification des binaires MySQL, PHP et des diverses librairies. Création du dossier syslog
Where would you like to store your logs ?
default to [/usr/bin/syslog/logs]
>
Do you want me to create this directory ? [/usr/bin/syslog/logs]
[y/n], default to [n]:
> y
Création du dossier logs
Where would you like to store configuration ?
default to [/usr/bin/syslog/etc]
>
Do you want me to create this directory ? [/usr/bin/syslog/etc]
[y/n], default to [n]:
> y
Création du dossier etc pour stocker la configuration.
------------------------------------------------------------------------
Create syslog Database
------------------------------------------------------------------------
What is password for root user on MySQL ?
>
What is the database name to record syslog message ? default to [syslog]
> centreon_syslog
Do you want me to create this database ? [centreon_syslog]
[y/n], default to [n]:
> y
Saisir le mot de passe administrateur de la base de données MySql. Créer la base syslog.
Creating database centreon_syslog: OK
Which must be the size of the field "program", default to [15]:
> 30
Paramétrer la taille du champ program à 30 (préconisation de l'auteur).
Do you want me to create this table "logs" in "centreon_syslog" database ?
[y/n], default to [n]:
> y
Création de la table logs
Creating table logs: OK
Creation of local db user for cron
Do you want me to create user 'syslogadmin'@'localhost' ?
[y/n], default to [n]:
> y
Création de l'utilisateur de base de données syslogadmin@localhost
Create user 'syslogadmin'@'localhost': OK
Do you want to add password for this user: 'syslogadmin'@'localhost'
[y/n], default to [y]:
> y
Répondre oui pour la création du mot de passe
Enter password for dbuser
> syslog
Retype password for dbuser
> syslog
Add password for user 'syslogadmin'@'localhost': OK
Creation of distant db user for cron
What is IP address of Centreon server ?
> 172.16.209.141
Saisir l'adresse ip du serveur de supervision
Do you want me to create user 'syslogadmin'@'172.16.209.141' ?
[y/n], default to [n]:
> y
Création de l'utilisateur de base de données syslogadmin@172.16.209.141
Create user 'syslogadmin'@'172.16.209.141': OK
Do you want to add password for this user: 'syslogadmin'@'172.16.209.141'
[y/n], default to [y]:
> y
Répondre oui pour la création du mot de passe
Enter password for dbuser
> syslog
Retype password for dbuser
> syslog
Add password for user 'syslogadmin'@'172.16.209.141': OK
------------------------------------------------------------------------
Install Syslog Cron
------------------------------------------------------------------------
Generation of the new Syslog cron: OK
Change of the macros in the files: OK
Application of the rights on the files: OK
Change of the owners on the files: OK
Removal of the old Syslog cron: OK
Copy php cron files: OK
Copy cron in cron.d directory: OK
Erase temporay installation directory: OK
------------------------------------------------------------------------
Create log rotation file
------------------------------------------------------------------------
Create log rotate file: /etc/logrotate.d//centreon-syslog OK
------------------------------------------------------------------------
Create syslog configuration files
------------------------------------------------------------------------
Create syslog configuration file: syslog_conf.pm OK
Create php syslog configuration file: /usr/bin/syslog/etc/sOKlog.conf.php
Set rigths on : /usr/bin/syslog/etc/syslog.conf.php OK
------------------------------------------------------------------------
Update database
------------------------------------------------------------------------
No update available: PASSED
------------------------------------------------------------------------
End of installation
------------------------------------------------------------------------
Installation is complete ! OK
###############################################################################
# #
# Report bugs at #
# http://forge.centreon.com/projects/centreon-syslog/issues/new #
# #
###############################################################################
L'installation est terminée.
Configuration rsyslog
Editer le fichier de configuration du serveur syslog
Ajouter les lignes suivantes, décommenter les lignes pour accepter les protocoles UDP et TCP. Ajouter les réseaux autorisés.
Rajouter les deux lignes à la fin du fichier en modifiant les paramètres selon vos besoins.
Commenter les lignes du fichier /etc/rsyslog.d/mysql.conf pour éviter des éventuelles erreurs du serveurs syslog et rajouter la ligne pour la connexion à MySQL.
Redémarrer le serveur syslog.
En utilisant la commande tail -f /var/log/syslog dans un autre terminal, vous devez obtenir les lignes suivantes :
Si vous obtenez ce message
Vous n'avez pas désactivé le module MySQL de rsyslog par défaut.
vi /etc/rsyslog.conf
Ajouter les lignes suivantes, décommenter les lignes pour accepter les protocoles UDP et TCP. Ajouter les réseaux autorisés.
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
$AllowedSender UDP, 127.0.0.1, 172.16.209.0/24
# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
$AllowedSender TCP, 127.0.0.1, 172.16.209.0/24
Rajouter les deux lignes à la fin du fichier en modifiant les paramètres selon vos besoins.
$template sysMysql,"INSERT INTO logs (host,facility, priority,level,tag,datetime,program,msg) VALUES ('%HOSTNAME%','%syslogfacility%','%syslogpriority%','%syslogseverity%','%syslogtag%', '%timereported:::date-mysql%','%programname%', '%msg%')", SQL
*.* >localhost,centreon_syslog,syslogadmin,syslog;sysMysql
Commenter les lignes du fichier /etc/rsyslog.d/mysql.conf pour éviter des éventuelles erreurs du serveurs syslog et rajouter la ligne pour la connexion à MySQL.
$ModLoad MySQL # Connexion avec MySql
#$ModLoad ommysql
#*.* :ommysql:localhost,Syslog,rsyslog,password
Redémarrer le serveur syslog.
service rsyslog restart
En utilisant la commande tail -f /var/log/syslog dans un autre terminal, vous devez obtenir les lignes suivantes :
Oct 8 08:30:56 syslog kernel: Kernel logging (proc) stopped.
Oct 8 08:30:56 syslog rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="5135" x-info="http://www.rsyslog.com"] exiting on signal 15.
Oct 8 08:30:56 syslog kernel: imklog 4.6.4, log source = /proc/kmsg started.
Oct 8 08:30:56 syslog rsyslogd: [origin software="rsyslogd" swVersion="4.6.4" x-pid="5164" x-info="http://www.rsyslog.com"] (re)start
Si vous obtenez ce message
Oct 8 08:30:24 syslog rsyslogd: db error (1045): Access denied for user 'rsyslog'@'localhost' (using password: YES)
Vous n'avez pas désactivé le module MySQL de rsyslog par défaut.
Vérification du fonctionnement de la base centreon_syslog
Afin de s'assurer du bon fonctionnement du serveur syslog et de l'insertion des logs, se connecter à MySql avec l'utilisateur syslogadmin
vérifier le remplissage de la table logs
Félicitation, vous avez vos premiers logs enregistrés. Votre serveur Syslog est pleinement opérationnel.
mysql -u syslogadmin -p centreon_syslog
vérifier le remplissage de la table logs
mysql> select * from logs;
+--------+----------+----------+-------+-----------+---------------------+----------+--------------+-----+---------+------+------+
| host | facility | priority | level | tag | datetime | program | msg | seq | counter | fo | lo |
+--------+----------+----------+-------+-----------+---------------------+----------+--------------+-----+---------+------+------+
| syslog | 0 | 6 | 6 | kernel: | 2011-05-03 18:36:05 | kernel | imklog .... | 1 | 1 | NULL | NULL |
| syslog | 5 | 6 | 6 | rsyslogd: | 2011-05-03 18:36:05 | rsyslogd | [origin ... | 2 | 1 | NULL | NULL |
+--------+----------+----------+-------+-----------+---------------------+----------+--------------+-----+---------+------+------+
2 rows in set (0.00 sec)
Félicitation, vous avez vos premiers logs enregistrés. Votre serveur Syslog est pleinement opérationnel.
Configuration d'un client Debian
Maintenant, il faut configurer les autres serveurs Debian pour qu'ils envoient leurs logs vers le serveur Syslog. Modifier le serveur syslog local de chaque serveur Debian en modifiant le fichier de configuration /etc/rsyslog.conf
Rajouter cette ligne dans la section RULES. Relancer le serveur syslog.
Vérifier de la même façon la table logs, vous devriez avoir, au minimum, deux lignes supplémentaires comme ci-dessous
Le champ host indique maintenant le serveur macdns par exemple.
Cette rubrique se termine, passons à la configuration du module Centreon.
*.* @172.16.209.132
Rajouter cette ligne dans la section RULES. Relancer le serveur syslog.
service rsyslog restart
Vérifier de la même façon la table logs, vous devriez avoir, au minimum, deux lignes supplémentaires comme ci-dessous
+--------+----------+----------+-------+------------+---------------------+-------------+-------------+-----+---------+------+------+
| host | facility | priority | level | tag | datetime | program | msg | seq | counter | fo | lo |
+--------+----------+----------+-------+------------+---------------------+-------------+-------------+-----+---------+------+------+
| macdns | 0 | 6 | 6 | kernel: | 2011-05-03 23:07:11 | kernel | imklog... | 434 | 1 | NULL | NULL |
| macdns | 5 | 6 | 6 | rsyslogd: | 2011-05-03 23:07:11 | rsyslogd | [origin... | 435 | 1 | NULL | NULL |
+--------+----------+----------+-------+------------+---------------------+-------------+-------------+-----+---------+------+------+
Le champ host indique maintenant le serveur macdns par exemple.
Cette rubrique se termine, passons à la configuration du module Centreon.