[Tuto]Centralisation et gestion des logs avec rsyslog et Loganalyzer

Tweet about this on Twitter1Share on Facebook6Share on Google+0Email this to someone

Premier tutoriel du site tiré de mon expérience personnelle:

Un réseau est constitué de nombreux équipements actifs tels des switchs, des pare feu et bien sûr des postes. Tous ces équipements génèrent des journaux d’activité rendant compte de divers évènements (connexions, changement d’adresse, etc…). Ces journaux ou logs sont formatés d’une certaine façon qui les rend difficilement lisibles. D’autre part les logs sont éparpillés sur le réseau ce qui a pour conséquence de devoir être sur le périphérique qui émet ces logs pour les consulter. De ces constatations on en déduit une solution simple à savoir : la centralisation des logs sur un seul et même serveur. Une fois le problème de la centralisation résolu il faut ensuite en venir à l’exploitation de ces logs. On va donc voir ce qu’il est possible de faire avec rsyslog et une interface web: LogAnalyzer

Rsyslog est le démon de log présent par défaut dans Ubuntu et Debian depuis peu. Il est plus simple à paramétrer que Syslog-ng et plus sécurisé.

Loganalyzer est une interface web permettant d’intéragir avec la base de donnée dans laquelle rsyslog va stocker les logs qui lui parviennent du réseau.

Le seul pré requis à ce tuto est d’avoir un serveur LAMP fonctionnel. Vous pouvez suivre ce tuto pour en monter un sous Debian 5 ainsi que sous Ubuntu.

Installation et configuration de rsyslog:

rsyslog est installé par défaut dans Ubuntu mais il faut rajouter le module MySQL::

aptitude install rsyslog-mysql

Pour la configuration tout passe par le fichier de configuration situé dans /etc. Afin d’activer la réception des logs via le réseau il faut simplement décommenter deux lignes:

 provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

Par défaut et par convention le service Syslog utilise le port 514 du protocole UDP.

Ensuite pour que LogAnalyzer puisse récupérer les logs et les analyser il faut les stocker dans une base de donnée. Normalement on dispose d’un serveur MySQL donc il faut là encore activer le module MySQL de rsyslog en décommentant ou ajoutant une ligne:

$ModLoad MySQL

Ensuite pour que rsyslog rentre automatiquement les logs dans la base de donnée il faut lui donner les informations de connexion à cette base:

*.*  >serveurSQL,nomdelabase,utilisateur,motdepasse

Ensuite pour il nous faut créer la base de donnée :

mysql  -u root --password=votremotdepasse
mysql> CREATE DATABASE Syslog;

Pour plus de sécurité on peut aussi créer un utilisateur dédié à cette base.

Installation de LogAnalyzer

Tout d’abord on le télécharge ici

Puis on le décompresse:

tar -zxvf  /root/Bureau/loganalyzer-3.0.0.tar.gz

Une fois décompressé on copie le répertoire src à la racine du serveur Web:

cp -R loganalyzer-3.0.0/src/ /var/www/

Afin que l’installation se déroule sans encombre il faut mettre les droits d’écriture sur le contenu de /src pour plus de simplicité on va appliquer ces droits à tout le répertoire ainsi qu’aux sous-dossiers.

Ceci n’est pas sécurisé c’est pourquoi on reviendra à un chmod plus correct après l’installation.

Ensuite à l’aide d’un navigateur type Firefox ou autre on se rend à l’adresse: http://127.0.0.1/src

Cet écran s’affiche et c’est tout à fait normal étant donné que l’on a pas créé de fichier de configuration. On va le faire en continuant l’installation.

Suivent plusieurs écrans de vérification de la configuration. Le plus important est le 3e qui doit nous permettre de configurer l’interaction avec notre base de donnée notamment ici pour stocker les utilisateurs.

On y renseigne les informations de connexion à la base ainsi que le nombre de log qui vont apparaître simultanément sur la page de LogAnalyzer.

Puis l’assistant d’installation va créér les tables.

L’étape 6 est très importante car elle permet de déterminer le login et le mot de passe pour l’accès à l’interface de LogAnalyzer

Ensuite on paramètre notre première source de log soit notre base de données:

Voilà la configuration est terminée on peut se connecter à l’interface d’administration et visualiser en un seul endroit les logs de notre réseau. Il est possible de faire des recherches de générer des graphes ou encore de classer les logs par sévérité !

On peut reprocher à LogAnalyzer de ne pas être disponible encore en français mais vous remarquerez vite qu’un fichier de log en français n’existe pas !

Voilà pour ce tuto assez simple pour commencer j’espère que cela vous sera utile !

Articles Similaires:

  • isador999

    Bonjour, merci pour ce tuto très utile.
    Je galérais un peu avec Syslog-Ng, il y avait quelques bugs d'installation.

    J'ai donc réussi, j'ai bien mon interface, en revanche j'ai le message d'erreur
    suivant : Could not find the configured table, maybe misspelled or the tablenames are case sensitive

    En gros, ca veut dire qu'il n'y a juste pas encore de logs, ou bien que les tables de ma base ont un problème ??
    Merci

    • gizeek

      Alors comme cela fait très longtemps que je n'ai pas retouché a tout cela je ne sais pas si ma réponse va être très fiable. Mais à mon avis c'est juste un problème de table qui: soit n'existe pas, soit n'as pas le bon nom (attention à la casse !). Même s'il n'y a pas encore de logs les bases doivent exister. Sinon dans le doute vérifie dans les sources de LogAnalyzer s'il n'y a pas un schéma SQL fourni pour créer les tables.

  • isador999

    Ok, donc je pense que c'est un problème plus important.
    Sur mon serveur, j'ai regardé les bases MySQL dont je disposais.

    Dans la base Syslog, le nom de table SystemEvents n'existe pas (avec ou sans majuscules)
    Il n'y a que des tables avec des noms commençant par : logcon_

    Il n'y a pas non plus d'attribut de table qui s'appelle SystemEvents ou quelque chose qui y ressemble.
    J'ai essayé de mettre des noms de tables existantes, mais cela génère d'autres erreurs SQL dans LogAnalyzer.
    En plus, c'est étonnant, on ne crée jamais de tables dans ton tuto ?
    Enfin, après, vu que tu n'y a pas touché depuis longtemps, si tu ne sais pas ce n'est pas grave.
    Merci quand même.

    • gizeek

      Des bases qui commencent par "logcon_" ? Donc à mon avis le fonctionnement du logiciel a du changer depuis le temps ! Je t'invite à aller voir dans la doc officielle: http://loganalyzer.adiscon.com/doc/manual.html

    • fabien

      as tu trouvé la solution? car je suis dans le meme cas que toi?

  • fbb

    as tu trouvé ta solution isador999? car je suis dans le même cas que toi

  • Kze

    Pour information, j'ai bien suivis le tuto mais effectivement la table SystemEvents
    n'existe pas à la fin.

    Car loganalyzer créé lui même de nombreuses tables,
    mais il ne créé pas celle la, ni SystemEventsProperties.

    Pour ma part, je l'ai créé moi même à la main et le problème est réglé.

    Voici le script de création des deux tables pour ceux qui sont intéressé:

    CREATE DATABASE Syslog;
    USE Syslog;
    CREATE TABLE SystemEvents
    (
    ID int unsigned not null auto_increment primary key,
    CustomerID bigint,
    ReceivedAt datetime NULL,
    DeviceReportedTime datetime NULL,
    Facility smallint NULL,
    Priority smallint NULL,
    FromHost varchar(60) NULL,
    Message text,
    NTSeverity int NULL,
    Importance int NULL,
    EventSource varchar(60),
    EventUser varchar(60) NULL,
    EventCategory int NULL,
    EventID int NULL,
    EventBinaryData text NULL,
    MaxAvailable int NULL,
    CurrUsage int NULL,
    MinUsage int NULL,
    MaxUsage int NULL,
    InfoUnitID int NULL ,
    SysLogTag varchar(60),
    EventLogType varchar(60),
    GenericFileName VarChar(60),
    SystemID int NULL
    );

    CREATE TABLE SystemEventsProperties
    (
    ID int unsigned not null auto_increment primary key,
    SystemEventID int NULL ,
    ParamName varchar(255) NULL ,
    ParamValue text NULL
    );

    En ce qui concerne

    " Il n'y a que des tables avec des noms commençant par : logcon_ "

    Et bien il suffit cocher l'option " pré fixé les tables " quand tu installe loganalyzer

    Bonne journée.

    • gizeek

      Merci de partager ce tuyau ! En espérant que cela puisse en aider certains.

  • http://preaux.org jcpreaux

    Bonjour,

    Personnellement pour faire fonctionner LogAnalyzer (version 3.2.1) avec RsysLog
    (version 4.6.4-2 sous Debian), j'ai du modifier la tableSystemEvents (créer lors
    de l'installation de Rsyslog) et créer un template Rsyslog comme expliqué à
    cette adresse : http://wiki.rsyslog.com/index.php/LogAnalyzer_Use

    • gizeek

      Merci du partage cela pourra servir à d'autres !

  • vilsafur

    Bonjour,

    Je sais que je déterre un peut le post mais savez vous comment faire pour rapatrié les log de windows vers le serveur rsyslog mis en place?

    Merci d'avance

  • Pingback: Remote Syslog » Amagob()