SlideShare une entreprise Scribd logo
1  sur  13
Gestion et surveillance de réseau 
 0.1 Objectifs 
 0.2 Notes 
 1 Exercices 
 2 Configurez votre routeur virtuel afin qu'il envoie des messages 
 3 Éditez /etc/syslog-ng/syslog-ng.conf 
 4 Créez le répertoire /var/log/network/ 
 5 Redémarrez syslog-ng: 
 6 Tester syslog 
 7 Sur votre PC, regardez si des messages commencent à apparaître sous 
 8 En cas de problÚme 
% Utilisation de syslog-ng pour la gestion des journaux 
0.1 Objectifs 
 Apprendre utiliser syslog-ng pour gérer les journaux syslogs 
0.2 Notes 
 Les commandes précédées de "$" signifient que vous devez exécuter la 
commande en tant qu'utilisateur général - et non en tant qu'utilisateur root. 
 Les commandes précédées de "#" signifient que vous devez travailler en tant 
qu'utilisateur root. 
 Les commandes comportant des lignes de commande plus spécifiques (par exemple 
"rtrX>" ou "mysql>") signifient que vous exécutez des commandes sur des 
équipements à distance, ou dans un autre programme. 
1 Exercices 
Veuillez identifier les participants qui utilisent le même routeur que vous, s'il y'en a. 
Constituez un groupe et faites ensemble l'exercice suivant. Il s'agit de désigner une 
personne pour se connecter au routeur de votre groupe, mais chacun d'entre vous participera 
à la configuration effective. 
2 Configurez votre routeur virtuel afin qu'il 
envoie des messages 
syslog à votre serveur :
Vos routeurs sont capables d'envoyer des messages syslog à de multiples destinations, ainsi 
un routeur peut envoyer des messages à 4 voire 5 destinations différentes. Nous devons 
donc configurer le routeur pour qu'il envoie des messages à chacun des PC de votre groupe. 
Vous allez vous connecter en SSH au routeur de votre groupe et effectuer les opérations 
suivantes : 
$ ssh cisco@10.10.X.254 
rtrX> enable 
rtrX# config terminal 
Répétez la commande "logging 10.10.X.Y" pour chaque PC de votre groupe. En d'autres 
termes, si votre groupe est sur le routeur 6 et que vous utilisez les PC 21, 22, 23 et 24 vous 
répéterez la commande à quatre reprises avec l'IP de chaque machine (10.10.6.21, 
10.10.6.22, et ainsi de suite). 
rtrX(config)# logging 10.10.X.Y 
... 
rtrX(config)# logging facility local0 
rtrX(config)# logging userinfo 
rtrX(config)# exit 
rtrX# write memory 
Regardons le résumé de la configuration des journaux (logs) avec 'show logging' 
rtrX# show logging 
Déconnectez-vous du routeur (exit) 
rtrX# exit 
C'est fait. Le routeur devrait maintenant envoyer des paquets UDP SYSLOG Ã votre PC sur 
le port 514. Pour vérifier, ouvrez une session sur votre PC et effectuez l'opération 
suivante : 
$ sudo -s 
# apt-get install tcpdump (ne vous inquiétez pas si il est 
déjà installé) 
# tcpdump -s0 -nv -i eth0 port 514 
Puis demandez à une personne de votre groupe de se connecter au routeur et d'entrer les 
commandes suivantes : 
$ ssh cisco@10.10.X.254 
rtrX> enable 
rtrX# config terminal 
rtrX(config)# exit 
rtrX> exit 
Des informations de TCPDUMP devraient s'afficher sur l'écran de votre PC. Celles-ci 
devraient ressembler à ce qui suit : 
08:01:12.154604 IP (tos 0x0, ttl 255, id 11, offset 0, flags [none], proto 
UDP (17), length 138)
10.10.9.254.57429 > 10.10.9.36.514: SYSLOG, length: 110 
Facility local0 (16), Severity notice (5) 
Msg: 23: *Feb 19 08:01:10.855: %SYS-5-PRIV_AUTH_PASS: Privilege level 
set to 15 by cisco on vty0 (10.10.0.117) 
08:01:15.519881 IP (tos 0x0, ttl 255, id 12, offset 0, flags [none], proto 
UDP (17), length 130) 
10.10.9.254.57429 > 10.10.9.36.514: SYSLOG, length: 102 
Facility local0 (16), Severity notice (5) 
Msg: 24: *Feb 19 08:01:14.215: %SYS-5-CONFIG_I: Configured from console 
by cisco on vty0 (10.10.0.117) 
Vous pouvez maintenant configurer le logiciel de journalisation sur votre PC afin qu'il 
reçoive ces informations et les enregistre dans un nouvel ensemble de fichiers : 
2. Installez syslog-ng 
Ces exercices s'effectuent en tant qu'utilisateur root. Si vous n'êtes pas un utilisateur root sur 
votre machine, vous pouvez le devenir en tapant : 
$ sudo -s 
# apt-get install syslog-ng 
3 Ã ditez /etc/syslog-ng/syslog-ng.conf 
Localisez les lignes 
source s_src { 
system(); 
internal(); 
}; 
et remplacez-les par : 
source s_src { 
system(); 
internal(); 
udp(); 
}; 
Sauvez le fichier et quitter. 
Maintant, créez une configuration pour nos logs d'équipement réseau: 
# cd /etc/syslog-ng/conf.d/ 
# editor 10-network.conf 
Dans ce fichier, copier et coller les lignes suivantes: 
filter f_routers { facility(local0); }; 
log { 
source(s_src); 
filter(f_routers); 
destination(routers);
}; 
destination routers { 
file("/var/log/network/$YEAR/$MONTH/$DAY/$HOST-$YEAR-$MONTH-$DAY- 
$HOUR.log" 
owner(root) group(root) perm(0644) dir_perm(0755) create_dirs(yes) 
template("$YEAR $DATE $HOST $MSGn")); 
}; 
Sauvez le fichier et quitter. 
4 Créez le répertoire /var/log/network/ 
# mkdir /var/log/network/ 
5 Redémarrez syslog-ng: 
# service syslog-ng restart 
6 Tester syslog 
Pour s'assurer qu'il y ait des messages syslog, reconnectez vous au routeur et effectuez des 
commandes "config", puis déconnectez vous, c'est à dire: 
# ssh cisco@10.10.X.254 
rtrX> enable 
rtrX# config terminal 
rtrX(config)# exit 
rtrX> exit 
Veillez à vous déconnecter du routeur. Si un trop grand nombre de personnes se 
connectent et oublient de se déconnecter, d'autres ne pourront pas accéder au routeur. 
7 Sur votre PC, regardez si des messages 
commencent à apparaître sous 
/var/log/network/2013/.../ 
$ cd /var/log/network 
$ ls 
$ cd 2013 
$ ls 
... ceci vous montrera le contenu du répertoire pour le mois en cours 
... faites 'cd' et le nom de ce répertoire 
$ ls 
... recommencer au niveau suivant (le jour du mois) 
$ ls
8 En cas de problÚme 
Si aucun fichier n'apparait sous le répertoire /var/log/network, alors une autre commande 
à essyer pendant qu'on est loggé sur le routeur, en mode configuration, est de faire un 
shutdown / no shutdown sur une interface Loopback (locale), par eemple: 
$ ssh cisco@rtrX 
rtrX> enable 
rtrX# conf t 
rtrX(config)# interface Loopback 999 
rtrX(config-if)# shutdown 
Attendre quelques secondes 
rtrX(config-if)# no shutdown 
Puis quitter, et sauver la configuration ("write mem"): 
rtrX(config-if)# exit 
rtrX(config)# exit 
rtrX# write memory 
rtr1# exit 
VÚrifiez les logs sous '/var/log/network' 
# cd /var/log/network 
# ls 
... suivre la hiérarchie des répertoires. 
Toujours pas de logs ? 
Essayez la commande suivante pour envoyer un message de log en local: 
# logger -p local0.info 'Hello World!' 
Si aucun fichier n'a été créé sous '/var/log/network', alors vérifier la configuration 
pour des fautes de frappe. Ne pas oublier de redémarrer le service syslog-ng à chaque fois 
que vous changez la configuration. 
Quelles autres commandes pouvez vous employer sur le routeur (ATTENTION!) qui 
provoqueront l'envoi de messages syslog ? Vous pouvez essayer de vous loger sur le router et 
taper un mot de passe incorrect pour "enable" 
Assurez-vous de faire un "ls" dans le répertoire de vos logs pour voir si des logs ont 
été créés à un moment ou un autre.
Serveur SYSLOG : Syslog-ng 
Linux et de multiples équipements réseaux effectuent une journalisation des événements qui 
s'opèrent sur leur système. Ces journaux sont stockés localement et basés sur le protocole 
Syslog. 
L'intérêt d'un serveur Syslog-ng est donc de permettre une centralisation de ces journaux 
d'événements, permettant de repérer plus rapidement et efficacement les défaillances de 
machines présentes sur un réseau. 
Avant même d'aller plus loin, je vous invite à lire l'excellent article "Syslog, maîtrisez 
l'historique" de Vincent Renardias, paru dans le numéro 19 de Linux Magazine. 
C'est une excellente base et une approche simple de la journalisation sous Linux qui va 
suivre… Syslog-ng est une solution de journalisation sous systèmes Unix et Linux depuis les 
années 1980. 
Pré-requis 
Pour la suite des opérations, des pré-requis sont nécessaires : 
 Disposer des droits d'administration ; 
 Disposer d'une connexion à Internet configurée et activée ; 
 Avoir activé l'accès au dépôt APT 'universe'; 
 Un serveur LAMP (Linux Apache Mysql Php) fonctionnel si vous décidez d'installer php-syslog- 
ng. 
Qu'est-ce que Syslog-NG ? 
Nous nous intéresserons ici à syslog-ng, un remplaçant de syslog. Il permet notamment de 
dissocier les logs entrants sur d'autres critères que le 'facility' comme par exemple : le nom ou 
l'adresse IP de la machine qui émet le log. 
Son installation n'est pas très complexe, mais nécessite un peu de rigueur. 
1. Installer Syslog-NG 
Vous devez au préalable activer le dépot universe ; l'installation de syslog-ng supprimera les 
paquets klogd et sysklogd, respectivement en charge de la journalisation des évènements liés 
au noyau et au reste du système. Idem pour le paquet ubuntu-minimal. 
 Installez le paquet syslog-ng 
 Editez le fichier /etc/default/syslog-ng 
et remplacez 
#CONSOLE_LOG_LEVEL=0 par 
CONSOLE_LOG_LEVEL=1
Pouvez-vous expliquer pourquoi la valeur par défaut ne convient pas? 
Après avoir effectué ces changements, redémarrez syslog-ng avec la commande : 
sudo /etc/init.d/syslog-ng restart 
Configuration de Syslog-NG 
Le fichier de configuration par défaut est situé dans /etc/syslog-ng/syslog-ng.conf 
Pour que syslog-ng accepte de recevoir des messages d'une machine distante, vous devez 
décommenter une ligne ; pour cela remplacer : 
# (this is equivalent to the "-r" syslogd flag) 
# udp(); 
Par 
# (this is equivalent to the "-r" syslogd flag) 
udp(); 
Pour ma part: J'ai du laisser commenté udp() et ajouter une nouvelle source: 
source s_net { 
udp(); 
}; 
sinon tous les messages venant du réseaux sont re-dirigé vers les fichiers /var/log/messages et 
/var/log/syslog en plus du fichier paramétré 
Rien de tout ça ne semble fonctionner avec Ubuntu 12.04, vu les changements dans le fichier de 
configuration il est possible que l'authentification et le cryptage soit nécessaire pour accepter les logs 
distants. 
2. Configuration du client Syslog d'une machine 
Si vous souhaitez envoyer tous les messages syslog d'une station ou d'un serveur sur le 
serveur syslog qui les collectera (plutôt que localement), vous devez Editez le fichier 
/etc/syslog.conf et ajouter la ligne suivante : 
*.* @ip_server_syslog 
Maintenant, redémarrez le client syslog de la machine : 
sudo /etc/init.d/sysklogd restart 
À partir de maintenant, le serveur syslog-ng est fonctionnel : les logs de la machine lui sont 
envoyés. 
3. Configuration de php-syslog-ng 
php-syslog-ng est une interface web basée sur un script php qui permet de lire les logs qu'aura 
stocké dans une base mysql un serveur syslog-ng. Elle n'est pas indispensable mais permet
d'accéder aux logs plus facilement et intuitivement. Vous devez avoir un serveur LAMP de 
fonctionnel (Linux Apache MySQL PHP) 
Télécharger et installer le logiciel 
mkdir phpsyslogng 
cd phpsyslogng 
wget http://php-syslog-ng.googlecode.com/files/php-syslog-ng-2.9.8.tgz 
tar -zxvf php-syslog-ng-* 
cd .. 
sudo mv phpsyslogng /var/www/ 
cd /var/www/phpsyslogng 
Configuration de MySQL 
Le moyen le plus rapide est d'utiliser le fichier dbsetup.sql dans le répertoire 
'scripts'(/var/www/phpsyslogng/html/scripts). Éditez ce fichier et renseignez les mots de passe 
des 3 utilisateurs (sysloguser, syslogfeeder, syslogadmin) qui seront créés (en remplaçant 
PW_HERE). Le script créera une table pour les journaux et une pour l'authentification des 
utilisateurs, et affectera des droits sensiblement différents pour chaque utilisateur. 
Si vous effectuez d'autres changements comme changer le nom de la base de données ou des 
tables, assurez-vous de faire correspondre ces changement dans le fichier config.php. 
Après avoir modifié le script dbsetup.sql exécutez le simplement avec la commande : 
sudo mysql -u root -p < dbsetup.sql 
Configuration de syslog-ng 
Maintenant vous devez configurer syslog-ng pour rediriger les messages dans la base 
MySQL. Vous devrez ajouter 2 entrées dans le fichier de configuration de syslog-ng. Le 
fichier de configuration est habituellement dans /etc/syslog-ng/syslog-ng.conf 
Vous devez premièrement ajouter une entrée 'destination'. Ajoutez ceci : 
destination d_mysql { 
pipe("/var/log/mysql.pipe" 
template("INSERT INTO logs 
(host, facility, priority, level, tag, datetime, program, msg) 
VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR- 
$MONTH-$DAY $HOUR:$MIN:$SEC', 
'$PROGRAM', '$MSG' );n") template-escape(yes)); 
}; 
Ceci va prendre vos logs et les formater dans une requête SQL qui pourra être exécutée pour 
les ajouter dans la base de données. 
Vous devrez également ajouter une entrée de type 'log' qui déterminera quels évènements 
faire suivre dans la base de données (fonctionnement basé sur le mode First In First Out). 
Vous voudrez sûrement faire suivre tous les logs dans MySQL et ils seront aussi une entrée de 
type 'source' pour cela dans votre fichier syslog-ng.conf (habituellement appelés src ou s_all). 
Pour rattacher cette source à la destination que vous venez juste de créer, vous devez ajouter 
le code suivant :
log { 
source(s_all); 
destination(d_mysql); 
}; 
Configurer syslog-ng pour la redirection vers MySQL 
Un exemple de script qui redirige les logs vers la base MySQL est inclus dans le répertoire 
des scripts (/var/www/phpsyslogng/html/scripts). Le script se nomme syslog2mysql.sh 
#!/bin/bash 
if [ ! -e /var/log/mysql.pipe ] 
then 
mkfifo /var/log/mysql.pipe 
fi 
while [ -e /var/log/mysql.pipe ] 
do 
mysql -u syslogfeeder --password=PASS_HERE syslog < /var/log/mysql.pipe 
>/dev/null 
done 
Vous devez remplacer PASS_HERE par le mot de passe que vous avez affecté à l'utilisateur 
'syslogfeeder'. Vous voudrez aussi probablement que le script soit lancé automatiquement à 
chaque démarrage du serveur syslog-ng. Aussi, ajoutez une entrée dans inittab ou démarrez le 
script via init.d. Mais bien faire attention à lancer le script une fois que Mysql a démarré. 
Avec un script init.d Ubuntu : Créez un fichier syslog2mysql dans /etc/init.d/ ayant comme 
contenu : 
#! /bin/sh 
# Do NOT "set -e" 
PATH=/usr/sbin:/usr/bin:/sbin:/bin 
DESC="Fetch queries from syslog-ng to mysql db" 
NAME=syslog2mysql 
PIDFILE=/var/run/$NAME.pid 
SCRIPTNAME=/etc/init.d/$NAME 
# Exit if mysql client is not installed 
[ -x "/usr/bin/mysql" ] || exit 0 
# Load the VERBOSE setting and other rcS variables 
[ -f /etc/default/rcS ] && . /etc/default/rcS 
# Define LSB log_* functions. 
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. 
. /lib/lsb/init-functions 
# 
# Function that starts the daemon/service 
# 
do_start() 
{ 
[ ! -e /var/log/mysql.pipe ] && echo " (Creating $NAME pipe)." && 
mkfifo /var/log/mysql.pipe 
if [ -e $PIDFILE ]; then
if ps -p $(cat $PIDFILE) >/dev/null; then 
echo -n -e "nError: $NAME seems to be already running!" 
return 1 
else 
rm -f $PIDFILE 
fi 
fi 
{ 
while [ -e /var/log/mysql.pipe ] 
do 
mysql -u syslogfeeder --password=PASS_HERE syslog < 
/var/log/mysql.pipe >/dev/null 
sleep 1 
done 
} & 
echo $! > $PIDFILE 
} 
# 
# Function that stops the daemon/service 
# 
do_stop() 
{ 
if [ -e $PIDFILE ]; then 
PID=$(cat $PIDFILE) 
if ps -p $PID >/dev/null; then 
# get PID of child 
CPID=$(pgrep -P $PID) 
# kill script 
kill $PID 
# kill child 
kill $CPID 
rm -f $PIDFILE 
return 0 
else 
echo -e "nWarning: $NAME was not running." 
echo -n -e "nCleaning PID file" 
rm -f $PIDFILE 
return 1 
fi 
else 
echo -n -e "nWarning: $NAME was not running" 
return 1 
fi 
} 
case "$1" in 
start) 
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" 
do_start 
case "$?" in 
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 
esac 
;; 
stop) 
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" 
do_stop 
case "$?" in 
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac 
;; 
restart|force-reload) 
# 
# If the "reload" option is implemented then remove the 
# 'force-reload' alias 
# 
log_daemon_msg "Restarting $DESC" "$NAME" 
do_stop 
case "$?" in 
0|1) 
do_start 
case "$?" in 
0) log_end_msg 0 ;; 
1) log_end_msg 1 ;; # Old process is still running 
*) log_end_msg 1 ;; # Failed to start 
esac 
;; 
*) 
# Failed to stop 
log_end_msg 1 
;; 
esac 
;; 
*) 
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 
exit 3 
;; 
esac 
: 
Pensez à modifier le pwd de syslogfeeder dedans 
Créez le lien pour lancer le script au démarrage 
sudo update-rc.d syslog2mysql defaults 
Maintenant démarrez le service syslog2mysql : 
sudo /etc/init.d/syslog2mysql start 
ou si vous préférez ne pas utiliser init.d et utiliser directement le script : 
sudo ./syslog2mysql.sh & 
Note : ce script doit toujours s'exécuter en tache de fond parce qu'en l'utilisant tout les 
messages sont redirigés dans la base de données MySQL. 
Il est maintenant temps de redémarrer le démon syslog-ng et d'envoyer les logs dans la base 
de données : 
sudo /etc/init.d/syslog-ng restart
Modification du fichier config.php 
Si vous utilisez la base de données par défaut initialisée par le fichier dbsetup.sql, tout ce que 
vous avez à faire est d'entrer le mot de passe pour les utilisateurs sysloguser et syslogadmin, 
définir l'hote et le port du serveur de base de données s'il n'est pas sur le même serveur que le 
serveur web, et saisir une URL valide. 
Sinon, parcourez le fichier config.php et configurez les paramètres dont vous avez besoin. 
Toutes les options sont expliquées dans le fichier. 
sudo vi /var/www/phpsyslogng/config/config.php 
php-syslog-ng est maintenant accessible à l'adresse : http://votre_webserver/phpsyslogng Un 
compte administrateur (admin) a été créé par dbsetup.sql avec le mot de passe admin 
Si après la connexion vous obtenez le message "Query failed: You have an error in your SQL 
syntax; check the manual that corresponds to your MySQL server version for the right syntax 
to use near '' at line 1", c'est parce que votre base mysql n'est pas encore alimentée. Pour les 
plus pressés, vous pouvez créer un enregistrement factice via la requête SQL suivante : 
INSERT INTO `search_cache` ( `tablename` , `type` , `value` ,`updatetime` ) 
VALUES ('logs', 'HOST', 'localhost', NOW( ) ); 
4. Configuration de la rotation des journaux 
La rotation permet d'archiver et/ou purger les plus anciens évènements des journaux afin 
d'éviter que leur stockage ne devienne trop volumineux 
Rotation des journaux de la base MYSQL 
Il est préférable d'utiliser le service de rotation des logs plutôt que de supprimer les 
enregistrements directement dans la table principale de la base de données. Ceci évite de 
causer des problèmes de performance. Déplacer les logs de la table principale améliore aussi 
les performances car la table qui contient les anciens logs est statique et peut donc être 
optimisée. 
Vous devez éditer le fichier logrotate.php dans le répertoire 'scripts' pour spécifier le chemin 
d'installation de php-syslog-ng. 
Si vous choissiez d'utiliser le script logrotate.php, ajoutez simplement celui-ci dans votre 
crontab et exécutez le aussi souvent que vous le souhaitez (le maximum est actuellement 
d'une fois par jour). 
Pour cela, éditez la crontab du superutilisateur… 
sudo crontab -e 
… pour y ajouter une entrée : 
00 22 * * 0 php /var/www/phpsyslogng/scripts/logrotate.php
Ici, la rotation des logs se fera tout les lundis (0) à 22h00 
Si vous activez le paramètre LOGROTATERETENTION du fichier config.php, alors les logs 
plus anciens que ce paramètre seront supprimés à l'exécution du fichier 'logrotate.php'. (activé 
par défaut à 90 jours) 
5. Résolution des problèmes 
Si vous rencontrez le messages d'erreur "Query failed: Can't find file: 'all_logs' (errno: 2)" 
après vous être identifié, il vous faut exécuter la commande suivante : 
php /var/www/phpsyslogng/scripts/logrotate.php 
La commande ne résout que temporairement le problème ! 
Contributeurs : sidney_v

Contenu connexe

Tendances

Administration reseau linux
Administration reseau linuxAdministration reseau linux
Administration reseau linux
Riadh Briki
 
Rapport TME_semaine_7_KAID_NHEK
Rapport TME_semaine_7_KAID_NHEKRapport TME_semaine_7_KAID_NHEK
Rapport TME_semaine_7_KAID_NHEK
Belkacem KAID
 
Admin linux
Admin linuxAdmin linux
Admin linux
bekhti
 
Cours linux complet
Cours linux completCours linux complet
Cours linux complet
aubin82
 

Tendances (20)

SEMAINE_6 LI350
SEMAINE_6 LI350SEMAINE_6 LI350
SEMAINE_6 LI350
 
kaid_nhek
kaid_nhekkaid_nhek
kaid_nhek
 
Snort implementation
Snort implementationSnort implementation
Snort implementation
 
Administration reseau linux
Administration reseau linuxAdministration reseau linux
Administration reseau linux
 
Rapport TME_semaine_7_KAID_NHEK
Rapport TME_semaine_7_KAID_NHEKRapport TME_semaine_7_KAID_NHEK
Rapport TME_semaine_7_KAID_NHEK
 
Admin linux
Admin linuxAdmin linux
Admin linux
 
Cours linux complet
Cours linux completCours linux complet
Cours linux complet
 
Sécuriser un serveur web
Sécuriser un serveur webSécuriser un serveur web
Sécuriser un serveur web
 
Initiation a la ligne de commande
Initiation a la ligne de commandeInitiation a la ligne de commande
Initiation a la ligne de commande
 
Nagios twil
Nagios twilNagios twil
Nagios twil
 
Les 10 commandes utiles pour surveiller un système Linux
Les 10 commandes utiles pour surveiller un système LinuxLes 10 commandes utiles pour surveiller un système Linux
Les 10 commandes utiles pour surveiller un système Linux
 
Apache Open SSL
Apache Open SSLApache Open SSL
Apache Open SSL
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
 
Tp snmp
Tp snmpTp snmp
Tp snmp
 
Analyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dumpAnalyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dump
 
Premiers pas avec snort
Premiers pas avec snortPremiers pas avec snort
Premiers pas avec snort
 
Mise en place nagios
Mise en place nagiosMise en place nagios
Mise en place nagios
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linux
 
Install oracle
Install oracleInstall oracle
Install oracle
 

En vedette

LPIC1 10 01 logs
LPIC1 10 01 logsLPIC1 10 01 logs
LPIC1 10 01 logs
Noël
 
Supervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosSupervision de réseau informatique - Nagios
Supervision de réseau informatique - Nagios
Aziz Rgd
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
EL AMRI El Hassan
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagios
jeyg
 

En vedette (14)

Presentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedPresentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamed
 
Presentation Supervision 2008
Presentation Supervision 2008Presentation Supervision 2008
Presentation Supervision 2008
 
Supervision
SupervisionSupervision
Supervision
 
LPIC1 10 01 logs
LPIC1 10 01 logsLPIC1 10 01 logs
LPIC1 10 01 logs
 
L’ Administration des Réseaux en Pratique
L’ Administration des Réseaux en PratiqueL’ Administration des Réseaux en Pratique
L’ Administration des Réseaux en Pratique
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
 
Supervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosSupervision de réseau informatique - Nagios
Supervision de réseau informatique - Nagios
 
Rapport de stage nagios
Rapport de stage nagiosRapport de stage nagios
Rapport de stage nagios
 
Rapport nagios miniprojet
Rapport nagios miniprojetRapport nagios miniprojet
Rapport nagios miniprojet
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagios
 
Rapport fiifo4 snmp
Rapport fiifo4 snmpRapport fiifo4 snmp
Rapport fiifo4 snmp
 
Logs serveurs : du terme barbare à la simplicité de la réalité
Logs serveurs :  du terme barbare à la simplicité de la réalitéLogs serveurs :  du terme barbare à la simplicité de la réalité
Logs serveurs : du terme barbare à la simplicité de la réalité
 
Cours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de NagiosCours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de Nagios
 

Similaire à Gestion et surveillance du reseau syslogng

Cisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracerCisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracer
Med Ali Bhs
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdf
Ines Ben Hassine
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU Linux
Thierry Gayet
 

Similaire à Gestion et surveillance du reseau syslogng (20)

Gestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerGestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzer
 
Astuces cisco
Astuces ciscoAstuces cisco
Astuces cisco
 
Cisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracerCisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracer
 
Cours syslog
Cours syslogCours syslog
Cours syslog
 
Boot
BootBoot
Boot
 
Virtualiastion des systèmes d'exploitations
Virtualiastion des systèmes d'exploitationsVirtualiastion des systèmes d'exploitations
Virtualiastion des systèmes d'exploitations
 
graylog.pptx
graylog.pptxgraylog.pptx
graylog.pptx
 
Mdl ocsinventory 20100330
Mdl ocsinventory 20100330Mdl ocsinventory 20100330
Mdl ocsinventory 20100330
 
Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Chapitre 4 Linux
 
Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2
 
Comment analyser une machine linux compromise
Comment analyser une machine linux compromiseComment analyser une machine linux compromise
Comment analyser une machine linux compromise
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdf
 
Ocs
OcsOcs
Ocs
 
Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2Mdl ocsinventory 20100330-2
Mdl ocsinventory 20100330-2
 
systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU Linux
 
Chapitre2-startup.pdf
Chapitre2-startup.pdfChapitre2-startup.pdf
Chapitre2-startup.pdf
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busybox
 
Config ip
Config ipConfig ip
Config ip
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 

Gestion et surveillance du reseau syslogng

  • 1. Gestion et surveillance de réseau  0.1 Objectifs  0.2 Notes  1 Exercices  2 Configurez votre routeur virtuel afin qu'il envoie des messages  3 Éditez /etc/syslog-ng/syslog-ng.conf  4 Créez le répertoire /var/log/network/  5 Redémarrez syslog-ng:  6 Tester syslog  7 Sur votre PC, regardez si des messages commencent à apparaître sous  8 En cas de problÚme % Utilisation de syslog-ng pour la gestion des journaux 0.1 Objectifs  Apprendre utiliser syslog-ng pour gérer les journaux syslogs 0.2 Notes  Les commandes précédées de "$" signifient que vous devez exécuter la commande en tant qu'utilisateur général - et non en tant qu'utilisateur root.  Les commandes précédées de "#" signifient que vous devez travailler en tant qu'utilisateur root.  Les commandes comportant des lignes de commande plus spécifiques (par exemple "rtrX>" ou "mysql>") signifient que vous exécutez des commandes sur des équipements à distance, ou dans un autre programme. 1 Exercices Veuillez identifier les participants qui utilisent le même routeur que vous, s'il y'en a. Constituez un groupe et faites ensemble l'exercice suivant. Il s'agit de désigner une personne pour se connecter au routeur de votre groupe, mais chacun d'entre vous participera à la configuration effective. 2 Configurez votre routeur virtuel afin qu'il envoie des messages syslog à votre serveur :
  • 2. Vos routeurs sont capables d'envoyer des messages syslog à de multiples destinations, ainsi un routeur peut envoyer des messages à 4 voire 5 destinations différentes. Nous devons donc configurer le routeur pour qu'il envoie des messages à chacun des PC de votre groupe. Vous allez vous connecter en SSH au routeur de votre groupe et effectuer les opérations suivantes : $ ssh cisco@10.10.X.254 rtrX> enable rtrX# config terminal Répétez la commande "logging 10.10.X.Y" pour chaque PC de votre groupe. En d'autres termes, si votre groupe est sur le routeur 6 et que vous utilisez les PC 21, 22, 23 et 24 vous répéterez la commande à quatre reprises avec l'IP de chaque machine (10.10.6.21, 10.10.6.22, et ainsi de suite). rtrX(config)# logging 10.10.X.Y ... rtrX(config)# logging facility local0 rtrX(config)# logging userinfo rtrX(config)# exit rtrX# write memory Regardons le résumé de la configuration des journaux (logs) avec 'show logging' rtrX# show logging Déconnectez-vous du routeur (exit) rtrX# exit C'est fait. Le routeur devrait maintenant envoyer des paquets UDP SYSLOG à votre PC sur le port 514. Pour vérifier, ouvrez une session sur votre PC et effectuez l'opération suivante : $ sudo -s # apt-get install tcpdump (ne vous inquiétez pas si il est déjà installé) # tcpdump -s0 -nv -i eth0 port 514 Puis demandez à une personne de votre groupe de se connecter au routeur et d'entrer les commandes suivantes : $ ssh cisco@10.10.X.254 rtrX> enable rtrX# config terminal rtrX(config)# exit rtrX> exit Des informations de TCPDUMP devraient s'afficher sur l'écran de votre PC. Celles-ci devraient ressembler à ce qui suit : 08:01:12.154604 IP (tos 0x0, ttl 255, id 11, offset 0, flags [none], proto UDP (17), length 138)
  • 3. 10.10.9.254.57429 > 10.10.9.36.514: SYSLOG, length: 110 Facility local0 (16), Severity notice (5) Msg: 23: *Feb 19 08:01:10.855: %SYS-5-PRIV_AUTH_PASS: Privilege level set to 15 by cisco on vty0 (10.10.0.117) 08:01:15.519881 IP (tos 0x0, ttl 255, id 12, offset 0, flags [none], proto UDP (17), length 130) 10.10.9.254.57429 > 10.10.9.36.514: SYSLOG, length: 102 Facility local0 (16), Severity notice (5) Msg: 24: *Feb 19 08:01:14.215: %SYS-5-CONFIG_I: Configured from console by cisco on vty0 (10.10.0.117) Vous pouvez maintenant configurer le logiciel de journalisation sur votre PC afin qu'il reçoive ces informations et les enregistre dans un nouvel ensemble de fichiers : 2. Installez syslog-ng Ces exercices s'effectuent en tant qu'utilisateur root. Si vous n'êtes pas un utilisateur root sur votre machine, vous pouvez le devenir en tapant : $ sudo -s # apt-get install syslog-ng 3 à ditez /etc/syslog-ng/syslog-ng.conf Localisez les lignes source s_src { system(); internal(); }; et remplacez-les par : source s_src { system(); internal(); udp(); }; Sauvez le fichier et quitter. Maintant, créez une configuration pour nos logs d'équipement réseau: # cd /etc/syslog-ng/conf.d/ # editor 10-network.conf Dans ce fichier, copier et coller les lignes suivantes: filter f_routers { facility(local0); }; log { source(s_src); filter(f_routers); destination(routers);
  • 4. }; destination routers { file("/var/log/network/$YEAR/$MONTH/$DAY/$HOST-$YEAR-$MONTH-$DAY- $HOUR.log" owner(root) group(root) perm(0644) dir_perm(0755) create_dirs(yes) template("$YEAR $DATE $HOST $MSGn")); }; Sauvez le fichier et quitter. 4 Créez le répertoire /var/log/network/ # mkdir /var/log/network/ 5 Redémarrez syslog-ng: # service syslog-ng restart 6 Tester syslog Pour s'assurer qu'il y ait des messages syslog, reconnectez vous au routeur et effectuez des commandes "config", puis déconnectez vous, c'est à dire: # ssh cisco@10.10.X.254 rtrX> enable rtrX# config terminal rtrX(config)# exit rtrX> exit Veillez à vous déconnecter du routeur. Si un trop grand nombre de personnes se connectent et oublient de se déconnecter, d'autres ne pourront pas accéder au routeur. 7 Sur votre PC, regardez si des messages commencent à apparaître sous /var/log/network/2013/.../ $ cd /var/log/network $ ls $ cd 2013 $ ls ... ceci vous montrera le contenu du répertoire pour le mois en cours ... faites 'cd' et le nom de ce répertoire $ ls ... recommencer au niveau suivant (le jour du mois) $ ls
  • 5. 8 En cas de problÚme Si aucun fichier n'apparait sous le répertoire /var/log/network, alors une autre commande à essyer pendant qu'on est loggé sur le routeur, en mode configuration, est de faire un shutdown / no shutdown sur une interface Loopback (locale), par eemple: $ ssh cisco@rtrX rtrX> enable rtrX# conf t rtrX(config)# interface Loopback 999 rtrX(config-if)# shutdown Attendre quelques secondes rtrX(config-if)# no shutdown Puis quitter, et sauver la configuration ("write mem"): rtrX(config-if)# exit rtrX(config)# exit rtrX# write memory rtr1# exit VÚrifiez les logs sous '/var/log/network' # cd /var/log/network # ls ... suivre la hiérarchie des répertoires. Toujours pas de logs ? Essayez la commande suivante pour envoyer un message de log en local: # logger -p local0.info 'Hello World!' Si aucun fichier n'a été créé sous '/var/log/network', alors vérifier la configuration pour des fautes de frappe. Ne pas oublier de redémarrer le service syslog-ng à chaque fois que vous changez la configuration. Quelles autres commandes pouvez vous employer sur le routeur (ATTENTION!) qui provoqueront l'envoi de messages syslog ? Vous pouvez essayer de vous loger sur le router et taper un mot de passe incorrect pour "enable" Assurez-vous de faire un "ls" dans le répertoire de vos logs pour voir si des logs ont été créés à un moment ou un autre.
  • 6. Serveur SYSLOG : Syslog-ng Linux et de multiples équipements réseaux effectuent une journalisation des événements qui s'opèrent sur leur système. Ces journaux sont stockés localement et basés sur le protocole Syslog. L'intérêt d'un serveur Syslog-ng est donc de permettre une centralisation de ces journaux d'événements, permettant de repérer plus rapidement et efficacement les défaillances de machines présentes sur un réseau. Avant même d'aller plus loin, je vous invite à lire l'excellent article "Syslog, maîtrisez l'historique" de Vincent Renardias, paru dans le numéro 19 de Linux Magazine. C'est une excellente base et une approche simple de la journalisation sous Linux qui va suivre… Syslog-ng est une solution de journalisation sous systèmes Unix et Linux depuis les années 1980. Pré-requis Pour la suite des opérations, des pré-requis sont nécessaires :  Disposer des droits d'administration ;  Disposer d'une connexion à Internet configurée et activée ;  Avoir activé l'accès au dépôt APT 'universe';  Un serveur LAMP (Linux Apache Mysql Php) fonctionnel si vous décidez d'installer php-syslog- ng. Qu'est-ce que Syslog-NG ? Nous nous intéresserons ici à syslog-ng, un remplaçant de syslog. Il permet notamment de dissocier les logs entrants sur d'autres critères que le 'facility' comme par exemple : le nom ou l'adresse IP de la machine qui émet le log. Son installation n'est pas très complexe, mais nécessite un peu de rigueur. 1. Installer Syslog-NG Vous devez au préalable activer le dépot universe ; l'installation de syslog-ng supprimera les paquets klogd et sysklogd, respectivement en charge de la journalisation des évènements liés au noyau et au reste du système. Idem pour le paquet ubuntu-minimal.  Installez le paquet syslog-ng  Editez le fichier /etc/default/syslog-ng et remplacez #CONSOLE_LOG_LEVEL=0 par CONSOLE_LOG_LEVEL=1
  • 7. Pouvez-vous expliquer pourquoi la valeur par défaut ne convient pas? Après avoir effectué ces changements, redémarrez syslog-ng avec la commande : sudo /etc/init.d/syslog-ng restart Configuration de Syslog-NG Le fichier de configuration par défaut est situé dans /etc/syslog-ng/syslog-ng.conf Pour que syslog-ng accepte de recevoir des messages d'une machine distante, vous devez décommenter une ligne ; pour cela remplacer : # (this is equivalent to the "-r" syslogd flag) # udp(); Par # (this is equivalent to the "-r" syslogd flag) udp(); Pour ma part: J'ai du laisser commenté udp() et ajouter une nouvelle source: source s_net { udp(); }; sinon tous les messages venant du réseaux sont re-dirigé vers les fichiers /var/log/messages et /var/log/syslog en plus du fichier paramétré Rien de tout ça ne semble fonctionner avec Ubuntu 12.04, vu les changements dans le fichier de configuration il est possible que l'authentification et le cryptage soit nécessaire pour accepter les logs distants. 2. Configuration du client Syslog d'une machine Si vous souhaitez envoyer tous les messages syslog d'une station ou d'un serveur sur le serveur syslog qui les collectera (plutôt que localement), vous devez Editez le fichier /etc/syslog.conf et ajouter la ligne suivante : *.* @ip_server_syslog Maintenant, redémarrez le client syslog de la machine : sudo /etc/init.d/sysklogd restart À partir de maintenant, le serveur syslog-ng est fonctionnel : les logs de la machine lui sont envoyés. 3. Configuration de php-syslog-ng php-syslog-ng est une interface web basée sur un script php qui permet de lire les logs qu'aura stocké dans une base mysql un serveur syslog-ng. Elle n'est pas indispensable mais permet
  • 8. d'accéder aux logs plus facilement et intuitivement. Vous devez avoir un serveur LAMP de fonctionnel (Linux Apache MySQL PHP) Télécharger et installer le logiciel mkdir phpsyslogng cd phpsyslogng wget http://php-syslog-ng.googlecode.com/files/php-syslog-ng-2.9.8.tgz tar -zxvf php-syslog-ng-* cd .. sudo mv phpsyslogng /var/www/ cd /var/www/phpsyslogng Configuration de MySQL Le moyen le plus rapide est d'utiliser le fichier dbsetup.sql dans le répertoire 'scripts'(/var/www/phpsyslogng/html/scripts). Éditez ce fichier et renseignez les mots de passe des 3 utilisateurs (sysloguser, syslogfeeder, syslogadmin) qui seront créés (en remplaçant PW_HERE). Le script créera une table pour les journaux et une pour l'authentification des utilisateurs, et affectera des droits sensiblement différents pour chaque utilisateur. Si vous effectuez d'autres changements comme changer le nom de la base de données ou des tables, assurez-vous de faire correspondre ces changement dans le fichier config.php. Après avoir modifié le script dbsetup.sql exécutez le simplement avec la commande : sudo mysql -u root -p < dbsetup.sql Configuration de syslog-ng Maintenant vous devez configurer syslog-ng pour rediriger les messages dans la base MySQL. Vous devrez ajouter 2 entrées dans le fichier de configuration de syslog-ng. Le fichier de configuration est habituellement dans /etc/syslog-ng/syslog-ng.conf Vous devez premièrement ajouter une entrée 'destination'. Ajoutez ceci : destination d_mysql { pipe("/var/log/mysql.pipe" template("INSERT INTO logs (host, facility, priority, level, tag, datetime, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR- $MONTH-$DAY $HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );n") template-escape(yes)); }; Ceci va prendre vos logs et les formater dans une requête SQL qui pourra être exécutée pour les ajouter dans la base de données. Vous devrez également ajouter une entrée de type 'log' qui déterminera quels évènements faire suivre dans la base de données (fonctionnement basé sur le mode First In First Out). Vous voudrez sûrement faire suivre tous les logs dans MySQL et ils seront aussi une entrée de type 'source' pour cela dans votre fichier syslog-ng.conf (habituellement appelés src ou s_all). Pour rattacher cette source à la destination que vous venez juste de créer, vous devez ajouter le code suivant :
  • 9. log { source(s_all); destination(d_mysql); }; Configurer syslog-ng pour la redirection vers MySQL Un exemple de script qui redirige les logs vers la base MySQL est inclus dans le répertoire des scripts (/var/www/phpsyslogng/html/scripts). Le script se nomme syslog2mysql.sh #!/bin/bash if [ ! -e /var/log/mysql.pipe ] then mkfifo /var/log/mysql.pipe fi while [ -e /var/log/mysql.pipe ] do mysql -u syslogfeeder --password=PASS_HERE syslog < /var/log/mysql.pipe >/dev/null done Vous devez remplacer PASS_HERE par le mot de passe que vous avez affecté à l'utilisateur 'syslogfeeder'. Vous voudrez aussi probablement que le script soit lancé automatiquement à chaque démarrage du serveur syslog-ng. Aussi, ajoutez une entrée dans inittab ou démarrez le script via init.d. Mais bien faire attention à lancer le script une fois que Mysql a démarré. Avec un script init.d Ubuntu : Créez un fichier syslog2mysql dans /etc/init.d/ ayant comme contenu : #! /bin/sh # Do NOT "set -e" PATH=/usr/sbin:/usr/bin:/sbin:/bin DESC="Fetch queries from syslog-ng to mysql db" NAME=syslog2mysql PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Exit if mysql client is not installed [ -x "/usr/bin/mysql" ] || exit 0 # Load the VERBOSE setting and other rcS variables [ -f /etc/default/rcS ] && . /etc/default/rcS # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # # Function that starts the daemon/service # do_start() { [ ! -e /var/log/mysql.pipe ] && echo " (Creating $NAME pipe)." && mkfifo /var/log/mysql.pipe if [ -e $PIDFILE ]; then
  • 10. if ps -p $(cat $PIDFILE) >/dev/null; then echo -n -e "nError: $NAME seems to be already running!" return 1 else rm -f $PIDFILE fi fi { while [ -e /var/log/mysql.pipe ] do mysql -u syslogfeeder --password=PASS_HERE syslog < /var/log/mysql.pipe >/dev/null sleep 1 done } & echo $! > $PIDFILE } # # Function that stops the daemon/service # do_stop() { if [ -e $PIDFILE ]; then PID=$(cat $PIDFILE) if ps -p $PID >/dev/null; then # get PID of child CPID=$(pgrep -P $PID) # kill script kill $PID # kill child kill $CPID rm -f $PIDFILE return 0 else echo -e "nWarning: $NAME was not running." echo -n -e "nCleaning PID file" rm -f $PIDFILE return 1 fi else echo -n -e "nWarning: $NAME was not running" return 1 fi } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  • 11. esac ;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac : Pensez à modifier le pwd de syslogfeeder dedans Créez le lien pour lancer le script au démarrage sudo update-rc.d syslog2mysql defaults Maintenant démarrez le service syslog2mysql : sudo /etc/init.d/syslog2mysql start ou si vous préférez ne pas utiliser init.d et utiliser directement le script : sudo ./syslog2mysql.sh & Note : ce script doit toujours s'exécuter en tache de fond parce qu'en l'utilisant tout les messages sont redirigés dans la base de données MySQL. Il est maintenant temps de redémarrer le démon syslog-ng et d'envoyer les logs dans la base de données : sudo /etc/init.d/syslog-ng restart
  • 12. Modification du fichier config.php Si vous utilisez la base de données par défaut initialisée par le fichier dbsetup.sql, tout ce que vous avez à faire est d'entrer le mot de passe pour les utilisateurs sysloguser et syslogadmin, définir l'hote et le port du serveur de base de données s'il n'est pas sur le même serveur que le serveur web, et saisir une URL valide. Sinon, parcourez le fichier config.php et configurez les paramètres dont vous avez besoin. Toutes les options sont expliquées dans le fichier. sudo vi /var/www/phpsyslogng/config/config.php php-syslog-ng est maintenant accessible à l'adresse : http://votre_webserver/phpsyslogng Un compte administrateur (admin) a été créé par dbsetup.sql avec le mot de passe admin Si après la connexion vous obtenez le message "Query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1", c'est parce que votre base mysql n'est pas encore alimentée. Pour les plus pressés, vous pouvez créer un enregistrement factice via la requête SQL suivante : INSERT INTO `search_cache` ( `tablename` , `type` , `value` ,`updatetime` ) VALUES ('logs', 'HOST', 'localhost', NOW( ) ); 4. Configuration de la rotation des journaux La rotation permet d'archiver et/ou purger les plus anciens évènements des journaux afin d'éviter que leur stockage ne devienne trop volumineux Rotation des journaux de la base MYSQL Il est préférable d'utiliser le service de rotation des logs plutôt que de supprimer les enregistrements directement dans la table principale de la base de données. Ceci évite de causer des problèmes de performance. Déplacer les logs de la table principale améliore aussi les performances car la table qui contient les anciens logs est statique et peut donc être optimisée. Vous devez éditer le fichier logrotate.php dans le répertoire 'scripts' pour spécifier le chemin d'installation de php-syslog-ng. Si vous choissiez d'utiliser le script logrotate.php, ajoutez simplement celui-ci dans votre crontab et exécutez le aussi souvent que vous le souhaitez (le maximum est actuellement d'une fois par jour). Pour cela, éditez la crontab du superutilisateur… sudo crontab -e … pour y ajouter une entrée : 00 22 * * 0 php /var/www/phpsyslogng/scripts/logrotate.php
  • 13. Ici, la rotation des logs se fera tout les lundis (0) à 22h00 Si vous activez le paramètre LOGROTATERETENTION du fichier config.php, alors les logs plus anciens que ce paramètre seront supprimés à l'exécution du fichier 'logrotate.php'. (activé par défaut à 90 jours) 5. Résolution des problèmes Si vous rencontrez le messages d'erreur "Query failed: Can't find file: 'all_logs' (errno: 2)" après vous être identifié, il vous faut exécuter la commande suivante : php /var/www/phpsyslogng/scripts/logrotate.php La commande ne résout que temporairement le problème ! Contributeurs : sidney_v