Centralisation des logs avec Rsyslog et LogAnalyzer sous Debian 8

Cette documentation va vous permettre d'installer et configurer un serveur de centralisation des logs.

Rsyslog est un logiciel  libre utilisé sur des systèmes d'exploitation de type Unix transférant les messages des journaux d'événements sur un réseau IP. Rsyslog implémente le protocole basique syslog qui centralise les journaux d'événements, permettant de repérer plus rapidement et efficacement les défaillances d'ordinateurs présents sur un réseau. Il présente la particularité d'en étendre les fonctionnalités comme l'utilisation du protocole TCP de la couche transport.

Dans notre situation, nous allons utiliser ce serveur de centralisation des logs sous le système d'exploitation Debian 8. Les commandes se feront toutes en mode super-utilisateur.

Pour que le serveur Rsyslog soit fonctionnel, il nous faut installer un certain nombre de paquets. Nous commencons d'abord par mettre à jour notre machine avec :

apt-get update && upgrade

Ensuite, nous allons installer beaucoup de dépendances :

apt-get install python-software-properties rsyslog rsyslog-mysql unzip zip binutils cpp fetchmail flex gcc libc6-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules zlib1g-dev autoconf libtool bison autotools-dev g++ mysql-server mysql-client libmysqlclient-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-intl php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-common php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Il va maintenant nous être demandé de rentrer un mot de passe pour la base de donnée. Ici le mot de passe sera hhhhh.

Pour vérifier que les services Apache2 et MySQL sont bien sur écoute, nous pouvons utiliser la commande netstat -tapn qui devrait nous montrer ces lignes :

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 25240/mysqld

tcp 0 0 0.0.0.0::80 0.0.0.0:* LISTEN 25844/apache2

Maintenant que l'outil Rsyslog est bien installé, nous passons à la configuration du fichier de configuration : nano /etc/rsyslog.conf

Dans la première page de configuration, il faut décommenter (enlever le # en début de ligne) quelques paramètres qui sont :

$ModLoad imtcp

$InputTCPServerRun 1514 (il faut remplacer 514 par 1514)

$ModLoad imudp

$UDPServerRun 1514 (même chose ici)

Nous nous rendons à la fin du fichier et nous allons rentrer ces lignes : 

$ModLoad ommysql

*.* :ommysql:127.0.0.1,<SyslogDatabase>,<rsyslogUserName>,<rsyslogUserPassword>

Nous avons à remplacer rsyslogUserName par rsyslog qui est le nom d'utilisateur par défaut, SyslogDatabase par le nom de la base qui est Syslog puis rsyslogUserPassword par le mot de passe qui a été choisi durant l'installation de Rsyslog.

Nous allons maintenant redémarrer notre service Rsyslog : /etc/init.d/rsyslog restart

Pour vérifier que notre outil Rsyslog est bien sur écoute, nous revérifions avec la commande netstat ntap.

Nous devrions voir une nouvelle ligne : tcp 0 0 0.0.0.0:1514 0.0.0.0:* LISTEN 27177/rsyslogd

Pour faciliter la vision des logs, nous allons télécharger le logiciel LogAnalyzer qui nous permet d'avoir une vision des logs via un navigateur internet. Pour l'installer nous allons utiliser ces commandes :

cd /usr/local/src

wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.6.tar.gz (cette version est la dernière version stable en Juin 2016)

tar -zxvf loganalyzer-3.6.6.tar.gz

mv loganalyzer-3.6.6/src/* /var/www/html

chown www-data:www-data -Rf /var/www/html/*

cp loganalyzer-3.6.6/contrib/* /var/www/html

chmod +x /var/www/html/configure.sh /var/www/html/secure.sh

cd /var/www/html

./configure

Maintenant que LogAnalyzer est installé, nous allons accéder à l'interface web avec http://localhost/install.php

L'installation nécessite d'être minutieux. En effet, il ne suffit pas de faire Next tout le temps. Les étapes 1 et 2 sont simple, là il faut faire Next. Mais arrivé à l'étape 3, il faut prendre le temps de correctement remplir les informations. Il faut cocher la case Enable User Database puis rentrer les informations comme le port (1514), le nom de la base (Syslog), enlever la Table Prefix changer le nom d'utilisateur par rsyslog et rentrer son mot de passe puis cocher la case Require user to be logged in. Et LA nous pouvons faire Next. Continuons jusqu'à l'étape 6 et créons notre utilisateur avec root et hhhhh en mot de passe. Nous arrivons à l'étape 7 qui demande presque les mêmes paramètres qu'à l'étape 3. Dans Source type, nous choisissons MYSQL Native puis nous allons rentrer les informations suivantes : Syslog dans Database NameSystemEvents (très important les majuscules) dans Database Tablename ainsi que notre utilisateur et son mot de passe. Passons l'étape numéro 8 puis connectons nous à note Loganalyzer !

Pour que les clients connectés au même réseau envoient leurs logs au serveur, il faut installer le paquet rsyslog : apt-get install rsyslog puis nous allons configurer le fichier rsyslog.conf : nano /etc/rsyslog.conf. Nous nous rendons à la fin du fichier et nous allons ajouter cette ligne : *.* @@adresseipduserveur:1514.

En ce qui concerne les clients Windows, l'utilitaire Monitor Ware fonctionne très bien.

Si vous le souhaitez, vous pouvez télécharger la procédure qui est plus complète -> Installation rsyslogInstallation rsyslog (1.96 Mo)