Soutenir Vision du Web dans son partage de logiciels et de ressources libres

Ce mineur crée de la monnaie numérique Monero pour soutenir Vision du web.
Merci de désactiver votre bloqueur de publicité.
Aucune publicité ne sera affichée.
Le mineur utilise les ressources de votre machine pour créer gratuitement de la monnaie numérique.
Le montant des donations pour Vision du web est de 0.073609455008949 Monero.

Gestion des logs : Différence entre versions

De Wiki. Analyse, Communication, Développement, Hacking.
Aller à : navigation, rechercher
m (Création manuelle de la base de données Syslog)
m (Installation)
Ligne 68 : Ligne 68 :
 
  # Penser a activer les règles NAT adaptées aux ports sélectionnés dans la configuration.
 
  # Penser a activer les règles NAT adaptées aux ports sélectionnés dans la configuration.
 
  # Rediriger le traffic UDP et TCP 514->514 vers le serveur de logs.
 
  # Rediriger le traffic UDP et TCP 514->514 vers le serveur de logs.
 +
 +
=====A OPTIMISER - Création manuelle de la base de données Syslog=====
 +
"
 +
Créons maintenant la structure de base de données requise sur un serveur MySQL pour stocker les messages de journalisation. Pour ce faire, nous avons besoin de la définition du schéma de base de données donnée dans le fichier createDB.sql disponible dans l’archive source Rsyslog. J'ai pris le fichier dans l'archive source de la version 7.4.10 de Rsyslog à l'adresse http://www.rsyslog.com/files/download/rsyslog/rsyslog-7.4.10.tar.gz. Le chemin d'accès au fichier est ./rsyslog-7.4.10/plugins/ommysql/createDB.sql.
 +
Pour créer la structure de base de données, exécutez la commande suivante dans l'hôte Ubuntu1404lts2:
 +
mysql -u root -p < createDB.sql
 +
"
 +
 +
 +
Créer alors les tables qui semblent manquer dans la base de données pour stocker les logs de syslog :
 +
sudo bash
 +
mysql -u root -p
 +
Pas de mot de passe ici, en local, continuer avec la touche entrée. (Si besoin, renseigner votre mot de passe.)
 +
 +
 +
# Les tables ont aussi été ajoutées dans la première bdd : bddloganalyzer.
 +
Si je change le nom de la base de la source, depuis l'interface, il me dit que pas de base configurée. Peut être un problème de préfixe ! ?
 +
The source 'MySQL' checking returned with an error:
 +
Could not find the configured database
 +
 +
 +
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
 +
);
 +
 +
# Donner les droits à notre utilisateur déjà créé précédemment, pour qu'il puisse utiliser cette nouvelle base de données.
 +
# CREATE USER 'Logs'@'localhost' IDENTIFIED BY 'Analyzer';
 +
GRANT ALL PRIVILEGES ON Syslog.* TO [email protected] IDENTIFIED BY 'Analyzer';
  
 
====Vérifier que la table MySQL est bien alimentée avec les logs====
 
====Vérifier que la table MySQL est bien alimentée avec les logs====

Version du 14 novembre 2018 à 13:14

Naviguer sur le wiki : Accueil du wiki - Administrateur - Développeur - Intégrateur - Marketing - Multimédia - Objectifs - We make Hack
Naviguer sur le site : Accueil du site - Les annuaires - Les éditoriaux - Le forum - Les outils - Les projets
 
Consulter le sommaire de cette page en étant déconnecté du réseau : Télécharger le sommaire en PDF

Sommaire

Gestion des logs

Adiscon LogAnalyzer

Rsyslog et Loganalyzer.png.
L’installation de Rsyslog et de LogAnalyzer a été effectuée sur un machine virtuelle GNU/Linux Mint Tara.

Installer Rsyslog

Présentation

Rsyslog est un programme open source permettant de transférer les messages de journalisation sur un réseau IP pour les systèmes UNIX et de type Unix.
Il implémente le protocole syslog de base, et l'étend avec un filtrage basé sur le contenu, des fonctionnalités de filtrage avancées, des options de configuration flexibles et ajoute des fonctionnalités tel que l’utilisation de TCP pour le transport. Rsyslog offre de hautes performances, des fonctionnalités de sécurité et une conception modulaire.
Site officiel de Rsyslog : https://www.rsyslog.com

Installation

Cette installation est nécessaire si l'on souhaite utiliser LogAnalyzer.
# Prérequis : apache.
Installation Ubuntu / Mint :
sudo add-apt-repository ppa:adiscon/v8-stable
sudo apt update
sudo apt install rsyslog
# Ajouter la documentation si nécessaire :
sudo apt install rsyslog-doc
# Installer également le paquet rsyslog-mysql pour enregistrer les logs de syslog dans une base de données MySQL.
sudo apt install rsyslog-mysql

# La configuration de rsyslog-mysql se fait automatiquement à la fin de l’installation avec dbconfig.
# Les options par défaut créent une base MySQL nommée Syslog, contenant 2 tables SystemEvents et SystemEventsProperties.
# L’utilisateur [email protected] aura le contrôle total sur la base Syslog.
# Les informations de connexion sont stockées dans /etc/rsyslog.d/mysql.conf :

### Fichier de configuration pour rsyslog-mysql.
### Les modifications sont conservées.
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,motdepasse
# Les informations de syslog peuvent être reçues via UDP ou TCP. (Les instructions de configuration sont un peu différentes entre UDP et TCP.)
# Dans la plupart des cas, UDP Syslog devrait être entièrement suffisant et performant.
# Cependant, lors d'un enchaînement de messages volumineux, si la mémoire tampon système pour UDP est saturée, les messages seront perdus.

# Ce n'est pas le cas avec TCP syslog car l'expéditeur et le destinataire communiquent à propos de l'arrivée des paquets réseau.
# Certains périphériques, tels que les routeurs, ne peuvent pas envoyer TCP Syslog par conception. Dans ce cas, utiliser UDP avec TCP.
# TCP syslog est adapté pour les environnements dans lesquels les messages de journal ne peuvent pas être perdus ou qui doivent assurer la conformité PCI (Par exemple les banques.).
# Utilisation du protocole RELP :
# Sur la (non) fiabilité de plain TCP syslog, utiliser le protocole RELP semblerait être encore plus pertinent.
# On the (un)reliability of plain TCP syslog : https://rainer.gerhards.net/2008/04/on-unreliability-of-plain-tcp-syslog.html

# Activer la réception des logs distantes en éditant /etc/rsyslog.conf :
# Par défaut, le syslog UDP est reçu sur le port 514. Le syslog TCP nécessite un port différent, car le service RPC utilise souvent ce port également.
# Fournit une réception UDP syslog :
$ModLoad imudp
$UDPServerRun 514

# Fournit une réception TCP syslog :
$ModLoad imtcp
$InputTCPServerRun 1514
# Redémarrer le démon rsyslog :
/etc/init.d/rsyslog restart
# Le serveur est maintenant configuré pour enregistrer les logs dans la base.
# Il écoute sur le port 514 les messages entrant.
# Dans le cas ou le serveur de logs se trouve derrière un routeur :
# Penser a activer les règles NAT adaptées aux ports sélectionnés dans la configuration.
# Rediriger le traffic UDP et TCP 514->514 vers le serveur de logs.
A OPTIMISER - Création manuelle de la base de données Syslog
"
Créons maintenant la structure de base de données requise sur un serveur MySQL pour stocker les messages de journalisation. Pour ce faire, nous avons besoin de la définition du schéma de base de données donnée dans le fichier createDB.sql disponible dans l’archive source Rsyslog. J'ai pris le fichier dans l'archive source de la version 7.4.10 de Rsyslog à l'adresse http://www.rsyslog.com/files/download/rsyslog/rsyslog-7.4.10.tar.gz. Le chemin d'accès au fichier est ./rsyslog-7.4.10/plugins/ommysql/createDB.sql.
Pour créer la structure de base de données, exécutez la commande suivante dans l'hôte Ubuntu1404lts2:
mysql -u root -p < createDB.sql
"


Créer alors les tables qui semblent manquer dans la base de données pour stocker les logs de syslog :
sudo bash
mysql -u root -p
Pas de mot de passe ici, en local, continuer avec la touche entrée. (Si besoin, renseigner votre mot de passe.)


# Les tables ont aussi été ajoutées dans la première bdd : bddloganalyzer.
Si je change le nom de la base de la source, depuis l'interface, il me dit que pas de base configurée. Peut être un problème de préfixe ! ?
The source 'MySQL' checking returned with an error:
Could not find the configured database


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
);
# Donner les droits à notre utilisateur déjà créé précédemment, pour qu'il puisse utiliser cette nouvelle base de données.
# CREATE USER 'Logs'@'localhost' IDENTIFIED BY 'Analyzer';
GRANT ALL PRIVILEGES ON Syslog.* TO [email protected] IDENTIFIED BY 'Analyzer';

Vérifier que la table MySQL est bien alimentée avec les logs

# Créer une entrée de journal avec la commande suivante :
logger foo
# Tester si il existe des enregistrements depuis le terminal avec la commande suivante :
mysql -u rsyslog -p -Bsr -e "SELECT Message FROM SystemEvents LIMIT 0,20" Syslog
# Tester si il existe des enregistrements depuis l'interface en ligne de commande de MySQL avec les commandes suivantes :
mysql -u root -p
# Saisir votre mot de passe utilisateur pour root ou appuyer directement sur entrée si le mot de passe est vide.
# Sélectionner la base de données Syslog sur laquelle la requête va être lancée.
mysql> use Syslog;
mysql> select * from SystemEvents limit 1;
# Cette commande fonctionne également et devrait être plus rapide en sélectionnant moins d'informations.
# mysql> select ReceivedAt,Message from SystemEvents;

Optimiser les tables de la base de données

# Pour utiliser InnoDB et des tables compressées :
ALTER TABLE SystemEvents
ENGINE=innodb DEFAULT CHARSET=latin1 row_format=COMPRESSED KEY_BLOCK_SIZE=4;
# Après quelques mois d’exploitation, les requêtes lancées depuis LogAnalyser peuvent devenir plus lentes, rendant l’outil pénible à utiliser.
# Avec la version du plugin MySQL de rsyslog (v 4.6.4) les index ne sont pas créés dans la table SystemEvents à l’installation.
# Quand les enregistrements se comptent en millions dans la table ce n'est plus adapté.
# La solution est d’indexer les champs qui serviront le plus souvent dans les requêtes, par exemple, Facility, Priority, FromHost, SysLogTag et DeviceReportedTime.
ALTER TABLE `SystemEvents` ADD INDEX(`Facility`);
ALTER TABLE `SystemEvents` ADD INDEX(`Priority`);
ALTER TABLE `SystemEvents` ADD INDEX(`FromHost`);
ALTER TABLE `SystemEvents` ADD INDEX(`SysLogTag`);
ALTER TABLE `SystemEvents` ADD INDEX(`DeviceReportedTime`);

Configuration de nouveaux clients Rsyslog

# Configurer les autres serveurs pour qu’ils puissent envoyer leurs logs à la machine qui aura le rôle de serveur de log.
# Fonctionne avec syslog ou syslog-ng (Avec un paramétrage différent pour syslog-ng.).
# Cette utilisation de Rsyslog n'a pas été testée lors de la rédaction de ce tutoriel.
Étape 1 : Installer le paquet rsyslog
# apt-get install rsyslog
Étape 2 : Créer un répertoire de travail
mkdir /var/spool/rsyslog
Étape 3 : Ouvrir le fichier de configuration de Rsyslog et modifier la configuration qui permet l'envoi des logs au serveur de logs :
# nano /etc/rsyslog.conf
$ModLoad imuxsock # Réception des messages local.
$WorkDirectory /var/spool/rsyslog  # Emplacement par défaut pour les fichiers de travail (spool).
# Commencer la règle de transfert 1 :
$ActionQueueType LinkedList # Exécuter le traitement de façon asynchrone.
$ActionQueueFileName srvrfwd1 # Préfixe de nom unique pour les fichiers spool. Active également le mode disque.
$ActionQueueMaxDiskSpace 1g # Limite d'espace de 1 Go.
$ActionQueueSaveOnShutdown on # Enregistrer les données sur le disque si Rsyslog est arrêté.
$ActionResumeRetryCount -1 # Tentatives infinies en cas d'échec de connexion avec l'hôte.
# jouter les lignes suivantes dans la section RULES :
# Envoyer tous les messages sur le serveur de journalisation distant avec la commande suivante :
*.* @@Cible_IP_serveur_1_LogAnalayzer:514 # Ou 514 est le port d'écoute qui a été défini dans la configuration.
# Commencer la règle de transfert 2 :
$ActionQueueType LinkedList # Exécuter le traitement de façon asynchrone.
$ActionQueueFileName srvrfwd2 # Préfixe de nom unique pour les fichiers spool. Active également le mode disque.
$ActionQueueMaxDiskSpace 1g # Limite d'espace de 1 Go.
$ActionQueueSaveOnShutdown on # Enregistrer les données sur le disque si Rsyslog est arrêté.
$ActionResumeRetryCount -1 # Tentatives infinies en cas d'échec de connexion avec l'hôte.
# jouter les lignes suivantes dans la section RULES :
# Envoyer tous les messages sur le serveur de journalisation distant avec la commande suivante :
*.* @@Cible_IP_serveur_1_LogAnalayzer:514 # Ou 514 est le port d'écoute qui a été défini dans la configuration.
Étape 4 : Redémarrer le service RSyslog
sudo /etc/init.d/rsyslog restart

Installer LogAnalyzer

Présentation

Adiscon LogAnalyzer est une interface Web pour syslog et d'autres données d'événement de réseau.
Il offre une navigation facile, une analyse des événements réseau en temps réel et des services de reporting.

Installation

Installer l’interface web Adiscon LogAnalyser sur le serveur de logs qui va permettre de visualiser et d’analyser les messages syslog.
# Prérequis : apache et php.

Télécharger et décompresser Loganalyzer

Site officiel de Adiscon LogAnalyzer : https://loganalyzer.adiscon.com
Page de téléchargement pour l'archive de Adiscon LogAnalyzer : https://loganalyzer.adiscon.com/download/
# Télécharger la dernière version de Adiscon LogAnalyzer sur votre machine locale ou serveur distant :
cd ~/
wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gz
# Décompresser l'archive :
tar -xvzf loganalyzer-4.1.6.tar.gz

Déplacer le dossier de loganalyzer vers le serveur web

# On crée un répertoire loganalyzer à la racine du serveur web :
sudo mkdir /var/www/html/loganalyzer
# On copie les fichiers LogAnalyzer requis dans ce répertoire :
sudo cp -a loganalyzer-4.1.6/src/* /var/www/html/loganalyzer
# On rend le user Apache propriétaire du dossier :
sudo chown -R www-data:www-data /var/www/html/loganalyzer
# Depuis le dossier de l'archive décompressée, copier les deux fichiers suivants vers le serveur web :
~/loganalyzer-4.1.6/contrib# cp configure.sh /var/www/html/loganalyzer/configure.sh
~/loganalyzer-4.1.6/contrib# cp secure.sh /var/www/html/loganalyzer/secure.sh
# Aller dans le dossier loganalyzer pour rendre ses deux fichiers exécutables :
cd /var/www/html/loganalyzer/
sudo chmod +x configure.sh secure.sh
# Lancer le fichier configure.sh va créer un fichier config.php vide :
./configure.sh
# Changer les droits de config.php
chown www-data:www-data config.php
chmod 777 config.php
# Suite à l'installation, le fichier semble retrouver des droits normaux, en 644.
# A vérifier après chaque installation, pour ne pas laisser ce fichier en 777, éventuellement, tester une installation avec les droits 755, moins permissifs.

Créer la base de données de Loganalyzer

mysql -u root -p
# Le mot de passe est vide. Appuyer sur entrée. (Ou saisir son mot de passe root ou utilisateur gestionnaire.)
CREATE DATABASE bddloganalyzer CHARACTER SET utf8;
CREATE USER 'Logs'@'localhost' IDENTIFIED BY 'Analyzer';
GRANT ALL PRIVILEGES ON bddloganalyzer.* TO [email protected] IDENTIFIED BY 'Analyzer';
FLUSH PRIVILEGES;
exit

Lancer l'installation depuis l'interface web de LogAnalyzer

# Avec un navigateur on se rend à l’adresse http://localhost/loganalyzer/install.php
# Configurer LogAnalyzer en suivant les étapes proposées par l’assistant.
Main-configuration-file-is-missing.png
Main configuration file is missing.

Cet affichage est normal, il indique que le fichier de configuration est vide, et, que l'installation peut commencer.
Step-1-prerequisites.png
Step 1 - Prerequisites.

Vérifier les prérequis pour installer LogAnalyzer.
Step-2-verify-file-permissions.png
Step 2 - Verify file permissions.

Vérifie les permissions appliquées sur les fichiers.
Step-3-basic-configuration.png
Step 3 - Basic configuration.

Configuration pour l'accès à la base de données dédiée à LogAnalyzer.
Step-4-create-tables.png
Step 4 - Create tables.

Créer les tables pour LogAnalyzer dans la base de données qui a été précédemment créée.
Step-5-check-sql-results.png
Step 5 - Check SQL results.

Vérifier le résultat du traitement SQL. Tout c'est correctement déroulé.
Step-6-creating-the-main-useraccount.png
Step 6 - Creating the main useraccount.

Créer le compte utilisateur pour l'interface web de LogAnalyzer.
Step-7-create-the-first-source-for-syslog-messages.png
Step 7 - Create the first source for syslog messages.

Je choisi de récupérer les logs de syslog depuis le fichier syslog, avec l'option Source Type : Diskfile.
J'aurais pu choisir l'option Source Type : MySQL. Cette méthode sera a tester par la suite.
Step-8-done.png
Step 8 - Done.

LogAnalyzer est maintenant installé et configuré.
Supprimer le fichier d'installation une fois l'installation terminée :
rm -f /var/www/html/loganalyzer/install.php

Consulter la page principale de Loganalyzer

# La page principale de Loganalyzer :
http://localhost/loganalyzer/index.php
Syslog-file-is-not-readable-read-access-may-be-denied.png
No syslog records found - Error Details: Syslog file is not readable, read access may be denied

Le fichier Syslog n'est pas lisible, l'accès en lecture peut être refusé.
Les autorisations utilisateur dans les fichiers syslog sont 640. Pour que LogAnalyzer fonctionne, les fichiers syslog doivent être lisibles par www-data.
1. Ajouter un nouveau groupe appelé "logadmin" : groupadd logadmin
2. Ajouter l'utilisateur www-data au groupe logadmin : usermod -a -G logadmin www-data
3. Vérifier le résultat : groups www-data
4. Modifier le fichier de configuration /etc/logrotate.conf : nano /etc/logrotate.conf
   Rechercher la commande "create" par défaut et modifier-la comme suit : create 640 syslog logadmin
   Lors de la prochaine exécution de logrotate, les fichiers journaux deviendront lisibles par défaut sur le serveur Web.

No syslog records found - Error Details: No syslog records found

5. Le fichier syslog est vide. Il faut attendre que de nouvelles informations soient écrites dans le fichier log.
6. Adapter le groupe adm pour logadmin dans le fichier /etc/rsyslog.conf (Sans certitude.)
   sudo nano /etc/rsyslog.conf
   # Définir les autorisations par défaut pour tous les fichiers logs.
   $FileOwner syslog
   $FileGroup logadmin #adm
   $FileCreateMode 0640
   $DirCreateMode 0755
   $Umask 0022
   $PrivDropToUser syslog
   $PrivDropToGroup syslog
7. Redémarrer rsyslog avec sudo /etc/init.d/rsyslog restart pour prendre en compte la nouvelle configuration.
8. Appliquer les propriétaires suivants aux fichiers rsyslog.log et syslog : sudo chown syslog:logadmin rsyslog.log syslog
   syslog            logadmin         44419 nov.  12 05:00 rsyslog.log
   syslog            logadmin          6604 nov.  12 05:03 syslog
Accueil-loganalyzer.png
Résoudre une erreur qui boucle plusieurs fois
Cette erreur s'affiche plusieurs fois :
action 'action-1-builtin:omfile' resumed (module 'builtin:omfile') [v8.39.0 try http://www.rsyslog.com [More Information] /e/2359 ]
# sudo touch cron.log
# sudo chown root:root /var/log/cron.log
# sudo chmod 666 /var/log/cron.log
# Les propriétaires pour le fichier auth.log sont modifiés de root:logadmin pour syslog:logadmin.
# sudo chown syslog:logadmin auth.log
Si les lignes qui s'affichent sont toujours présentes malgré les changements de droits précédents, tenter le changer de droits récursif du dossier suivant :
# sudo chmod 775 /var/log/
# Éviter cette commande de préférence, donner des droits chmod aussi élevés ne devrait pas être nécessaire.
Pour le moment, cette erreur boucle encore, notamment, suite au démarrage de la machine virtuelle.
Une issue Github a été ouverte : https://github.com/rsyslog/rsyslog/issues/3287

Vérifier la version de LogAnalyzer

rsyslogd -v
rsyslogd 8.39.0, compiled with:
 PLATFORM:				x86_64-pc-linux-gnu
 PLATFORM (lsb_release -d):		
 FEATURE_REGEXP:				Yes
 GSSAPI Kerberos 5 support:		No
 FEATURE_DEBUG (debug build, slow code):	No
 32bit Atomic operations supported:	Yes
 64bit Atomic operations supported:	Yes
 memory allocator:			system default
 Runtime Instrumentation (slow code):	No
 uuid support:				Yes
 systemd support:			Yes
 Number of Bits in RainerScript integers: 64

Logs de Rsyslogd avec trace

# Dans une première console, lancer la commande suivante :
sudo strace -p $(pgrep rsyslogd) -o fichier.trace
# Ouvrir une deuxième console, et, redémarrer Rsyslog, par exemple :
sudo /etc/init.d/rsyslog restart
Rsyslog Debug Support : https://www.rsyslog.com/doc/v8-stable/troubleshooting/debug.html
Debugging Rsyslogd : https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/s1-debugging_rsyslog

Stocker les logs de syslog dans une base de données avec Rsyslog

Stocker les logs de syslog dans MySQL avec Rsyslog
Je part d'une installation de Loganalizer faite sans utiliser rsyslog-mysql, en utilisant la source Disk pour syslog.
Je n'arrive pas à modifier la configuration de Loganalyzer pour utiliser le stockage de syslog avec MySQL.
J'obtiens le message suivant : No syslog records found - Error Details: No syslog records found
Avant de chercher a configurer Loganalyzer, il faut pouvoir stocker les données de syslog dans la base de données MySQL.
Todo.png
Pour le moment, mon essai ne fonctionne pas, car la première installation de Loganalyzer a été faite en se basan sur les sources Disk.
Je n'avais donc pas pu tester si les prérequis étaient bien installés, pour Rsyslog.
Il semble qu'il faille créer la base de données qui va stocker les informations de syslog avant d'installer LogAnalizer.
Puis, il faut configurer Rsyslog correctement, et, vérifier si la base de données reçoit bien les logs.
Enfin seulement, on peut installer LogAnalyzer.
Installer le paquet rsyslog-mysql pour automatiser la création de la base de données Syslog
# Installer le paquet rsyslog-mysql :
sudo apt install rsyslog-mysql
# Créer une base de données Syslog et ses tables SystemEvents et SystemEventsProperties pour stocker les données de syslog dans MySQL
# Laisser la configuration et la création de la base de données et des tables se faire automatiquement avec le paquet rsyslog-mysql.
# Les mêmes étapes de création de la base de données et des tables devraient pouvoir être réalisées manuellement.
Configurer Rsyslog
sudo nano /etc/rsyslog.conf
# S'assurer des bonnes règles a utiliser pour Mint / Ubuntu, ou Debian.
$ModLoad ommysql
$Modload imudp
$UDPServerRun 514
$Modload imtcp
$InputTCPServerRun 514
*.* :ommysql:localhost,Syslog,Logs,Analyzer

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

### <rsyslogUserName>: rsyslog (Ou Logs dans mon cas, est le nom d'utilisateur de la base de données.)
### <SyslogDatabase>: Syslog , (Ou Syslog par défaut lors du processus d'installation des dépendances. Avant d'installer LogAnalyser et de lui créer une base de données bddloganalyzer. C'est ici notamment que j'ai oublié une étape.)
### <rsyslogUserPassword>: (Mot de passe inséré lors du processus d'installation des dépendances.)

# Pour faire gérer d'autres logs par Rsyslog (Apache2, Mysql, ...), ajouter une ligne :
# $InputFileName <chemin du log a géré>

## Liste des sous réseaux autorisés à se connecter
## $AllowedSender UDP, 127.0.0.1, 192.168.1.0/24
## $AllowedSender TCP, 127.0.0.1, 192.168.1.0/24
# Redémarrer Rsyslog pour appliquer la nouvelle configuration.
service rsyslog restart
sudo /etc/init.d/rsyslog restart
Suite
Dans la configuration assistée de Loganalizer, choisir la source MYSQL Native avec Syslog Fields.
Une fois l’installation terminée, modifiez le fichier config.php en utilisant les valeurs appropriées à votre configuration :
$CFG['Sources']['Source1']['DBServer'] = 'localhost';
$CFG['Sources']['Source1']['DBName'] = 'Syslog';
$CFG['Sources']['Source1']['DBUser'] = 'whateveruseryoulike';
$CFG['Sources']['Source1']['DBPassword'] = 'whateverpasswordyoulike';
$CFG['Sources']['Source1']['DBTableName'] = 'SystemEvents';

Optimiser la table MySQL utilisée par Loganalyzer

La table MySQL SystemEvents peut se remplir rapidement et devenir très volumineuse.
Un script d’archivage placé dans une tâche Cron permettra d’éviter les mauvaises surprises.
Ce script Cron n'a pas été testé.
Proposition script 1
#!/bin/bash
# Archivage mensuel des logs de la base MySQL
Syslog RETENTION=180 # Durée de rétention des logs (en jours)
DESTDIR="/var/backups/syslog" # Répertoire de stockage des archives
ARCHIVE="syslog-$(date '+%Y-%m-%d-%Hh%M').gz"
# Paramètres MySQL
MYSQL_HOST="localhost"
MYSQL_DB="Syslog"
MYSQL_USER="rsyslog"
MYSQL_PASSWD="motdepasse"
# Archivage
sql="SELECT * FROM SystemEvents WHERE DATEDIFF(NOW(), DeviceReportedTime) > $RETENTION"
mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWD -e "$sql" -B -s $MYSQL_DB | gzip > $DESTDIR/$ARCHIVE
# Suppression des enregistrements
MySQL sql="DELETE FROM SystemEvents WHERE DATEDIFF(NOW(), DeviceReportedTime) > $RETENTION"
mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWD -e "$sql" -B -s $MYSQL_DB
Proposition script 2
#!/bin/bash
# Purge mensuelle des logs de la base MySQL Syslog
RETENTION=180 # Durée de rétention des logs (en jours)
# Initialisation variables
SCRIPT="${0##*/}"
SCRIPT="${SCRIPT%%.*}"
MYSQL_HOST="localhost"
MYSQL_DB="Syslog"
MYSQL_USER="rsyslog"
MYSQL_PASSWD="mot_de_passe"
TMP_LOG="/tmp/$SCRIPT.log"
LOG_DIR="/var/log"
LOG_FILE="$SCRIPT.log"
ADMIN=root

echo "+++$(date) Debut $SCRIPT" > $TMP_LOG
echo "(I) Purge des logs antérieures à $RETENTION jours" >> $TMP_LOG
# Fonction sortie du script
sortie() {
 # Enregistre la fin de traitement dans la log
 echo "+++$(date) Fin $SCRIPT" >> $TMP_LOG
 cat $TMP_LOG >> $LOG_DIR/$LOG_FILE
 if [ $1 = 0 ]; then
   mail -s "Rapport $SCRIPT" $ADMIN < $TMP_LOG
 else
   mail -s "Erreur execution $SCRIPT" $ADMIN < $TMP_LOG
 fi
 rm -f $TMP_LOG
 exit $1
}
# Comptage des enregistrements à supprimer
sql="SELECT COUNT(*) FROM SystemEvents WHERE DATEDIFF(NOW(), DeviceReportedTime) > $RETENTION"
compteur=`mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWD -e "$sql" -B -s $MYSQL_DB`
if [ "$compteur" = "0" ]; then
 echo "(I) Il n'y a pas d'enregistrements plus vieux que $RETENTION jours" >> $TMP_LOG
else
 echo "(I) Il y a $compteur enregistrements à supprimer" >> $TMP_LOG
 # Suppression des enregistrements MySQL
 sql="DELETE FROM SystemEvents WHERE DATEDIFF(NOW(), DeviceReportedTime) > $RETENTION"
 mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWD -e "$sql" -B -s $MYSQL_DB
 cr=$?
 if [ $cr -gt 0 ]; then
   echo "(E) Erreur lors de la suppression des enregistrements. Code retour $cr" >> $TMP_LOG
   sortie 1
 else
   echo "(I) L'opération s'est déroulée correctement" >> $TMP_LOG
 fi
fi
sortie 0

A voir également

Le cryptage SSL pour l'échange avec Syslog...
Ko.png Consolidation des logs avec rsyslog, MySQL et LogAnalyser : https://www.paperblog.fr/4653301/consolidation-des-logs-avec-rsyslog-mysql-et-loganalyzer/
Ok-ko.png How to Setup LogAnalyzer with Rsyslog and MySQL : https://tecadmin.net/setup-loganalyzer-with-rsyslog-and-mysql/
Ko.png Rsyslog mit MySQL als zentraler Logserver : http://lab4.org/wiki/Rsyslog_mit_MySQL_als_zentraler_Logserver
Ko.png http://yallalabs.com/linux/how-to-setup-loganalyzer-with-rsyslog-on-ubuntu-16-04-lts-ubuntu-18-04-lts/
Ko.png http://fibrevillage.com/sysadmin/223-how-to-config-rsyslog-to-use-mysql
--> Ko.png https://www.server-world.info/en/note?os=Ubuntu_16.04&p=rsyslog&f=2
Ko.png https://www.youtube.com/watch?v=BUEeKG6dgxs
Ko.png https://www.youtube.com/watch?v=z1313LUe3xQ

CCZE pour lire ses logs en couleur

Installer CCZE

Sur Debian :
sudo apt install ccze
Sur ArchLinux :
sudo pacman -S ccze
Sur Fedora :
sudo yum install ccze

Le fichier de configuration de CCZE

# Consulter le fichier de configuration de CCZE :
nano /etc/cczerc

Utilisation de CCZE

Utiliser CCZE pour lire les logs du système en couleurs.
Avec un fichier en entrée, la lecture est trop rapide, ce qui empêche de lire le fichier de log :
ccze < /var/log/syslog
Avec un fichier en entrée, avec une limite du nombre de lignes a afficher :
tail -100 /var/log/syslog | ccze -A
Coupler dmesg avec CCZE :
dmesg | ccze | more
Convertir la sortie au format HTML pour partager les logs avec ses collaborateurs :
tail -10000 /var/log/syslog | grep kernel | ccze -h > kernel.html
tail -10000 /var/log/syslog | ccze -h > kernel.html
cat /var/log/syslog | grep kernel | ccze -h > kernel.html
cat /var/log/syslog | ccze -h > syslog.html
Lire la fin d'un fichier de logs en continu :
tail -f /var/log/syslog | ccze -A
La commande less permet la lecture page par page :
ccze -A < /var/log/syslog | less -R
Créer un raccourci pour utiliser CCZE à l'aide du fichier .bashrc
Ok-ko.png Améliorer la lecture de ses logs avec des raccourcis dans .bashrc : http://linux-attitude.fr/post/Lire-les-logs-en-couleur
lesslog() { ccze -A < $1 | less -R; }
logtail() { tail -f $1 | ccze -A; }
Utiliser les raccourcis créés de la façon suivante :
lesslog Chemin/vers/le/fichier/de/log
lesslog /var/log/syslog
logtail Chemin/vers/le/fichier/de/log
logtail /var/lor/syslog
Connaître la liste des fichiers de logs colorisés par CCZE :
ccze -l

Décompresser les fichiers .gz pour lire les archives des fichiers de logs

# Se placer dans le dossier /var/log/
# Décompresser un seul fichier de log :
gzip -d syslog.7.gz
# Décompresser tous les fichiers de logs :
gzip -d *.gz

dmesg

Dmesg : dmesg.fr
Lancer la commande dmesg pour obtenir des informations complémentaires sur d'éventuelles erreurs.
Plus d'informations : https://manpages.debian.org/jessie/manpages-fr-extra/dmesg.1.fr.html

Logwatch

apt-get install logwatch
Source : https://www.informatiweb-pro.net/admin-systeme/linux/12--debian-ubuntu-detecter-les-attaques-effectuees-contre-votre-serveur-grace-a-logwatch.html

Utiliser pastebin pour partager les logs de votre machine

Utiliser pastebin pour partager les logs de votre machine avec d'autres administrateurs système.
inxi -Fxxxzc0 |pastebin
sudo rfkill list all |pastebin
dmesg |pastebin
Utiliser pastebin pour partager les logs de vos noyaux avec d'autres administrateurs système.
dpkg -l linux-image* | pastebin

OSSEC

Site officiel : http://www.ossec.net

Picviz

Picviz est un applicatif qui utilise les fichiers log générés par diverses sources telles Apache, Netfilter, ..., va concevoir des graphiques au format png permettant une vue plus synthétique et plus compréhensible des données contenues dans ces fichiers log, erreurs, anomalies...
Source : https://doc.ubuntu-fr.org/picviz

Syslog-ng

Centraliser les logs avec syslog-ng.
Source : https://doc.ubuntu-fr.org/syslog-ng
Pour se tenir informé de ce qui se passe sur votre serveur et système tout entier, installer syslog-ng.
apt install syslog-ng

Configuration de quelques programmes avec Syslog-ng

Fail2ban
# Éditer le fichier /etc/fail2ban/fail2ban.conf :
logtarget = SYSLOG
Apache 2
# Éditer le fichier /etc/apache2/apache2.conf :
ErrorLog syslog:local7
PHP
# Éditer le fichier /etc/php5/apache2/php.ini :
log_errors = On
error_log = syslog

Consolidation des logs avec Rsylog, Mysql et Loganalyzer

Consolidation des logs avec Rsylog, Mysql et Loganalyzer : https://journaldunadminlinux.fr/tutoriel-consolidation-des-logs-avec-rsylog-mysql-et-loganalyzer/

Vérifier les logs du boot

Dernier boot :
journalctl -b
Les logs kernel depuis le dernier boot :
journalctl -b -k
Seulement les erreurs depuis le dernier boot :
journalctl -b -p err
ou
journalctl -b -p 3
On peut changer la priorité recherchée (-p) comme suit :
0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug

Lire des fichiers logs spécifiques

utmp

Le contenu du fichier utmp n'est pas intelligible à l'écran, on utilise le logiciel last afin d'interpréter et d'afficher correctement son contenu.
last -f /var/run/utmp

wtmp

Le fichier wtmp enregistre toutes les connexions et déconnexions.
Le contenu du fichier wtmp n'est pas intelligible à l'écran, on utilise le logiciel last afin d'interpréter et d'afficher correctement son contenu.
last -f /var/log/wtmp

Signer ses logs

Signer ses logs : http://linux-attitude.fr/post/signer-ses-logs

Aller plus loin avec les logs

Belaïd MOUNSI de la liste Debian user french propose une solution pas forcément évidente à mettre en oeuvre mais efficace une fois mise en place : Le triplet "Elasticsearch, Logstach et Kibana".
Par contre c'est très très gourmand en ressources, donc pour une machine personnelle, c'est pas la peine: https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html
Autres façons de rechercher des logs spécifiques dans votre système GNU/Linux : https://wiki.debian-fr.xyz/Consulter_les_logs_:_quoi,_o%C3%B9_et_comment_chercher_%3F
Des logs, des logs, oui mais des logs amis : http://linux-attitude.fr/post/des-logs-des-logs-oui-mais-des-logs-amis
Lire et modifier l’historique d’accès : http://linux-attitude.fr/post/lire-et-modifier-l-historique-d-acces
Logs locaux et distants : http://linux-attitude.fr/post/logs-locaux-et-distants
Log de l’historique : http://linux-attitude.fr/post/log-de-lhistorique

Partager un rendu visuel de ses logs sur son site

AWStats

AWStats : Installation, Configuration and Reporting : https://awstats.sourceforge.io/docs/awstats_setup.html

Bibliographie

Rsyslog

Ok.png Tutoriel | Consolidation des logs avec Rsylog, Mysql et Loganalyzer : https://journaldunadminlinux.fr/tutoriel-consolidation-des-logs-avec-rsylog-mysql-et-loganalyzer/
Ok.png Consolidation des logs avec rsyslog, MySQL et LogAnalyser : http://tavie.onsenfout.com/2011/07/05/consolidation-des-logs-avec-rsyslog-mysql-et-loganalyser/
Ok.png How to install Rsyslog with loganalyzer in Ubuntu : http://techies-world.com/how-to-install-rsyslog-with-loganalyzer-in-ubuntu/
Ok.png Optimisations LogAnalyser : http://tavie.onsenfout.com/2012/03/08/optimisations-loganalyser/
Ok.png Using the syslog receiver module : https://www.rsyslog.com/using-the-syslog-receiver-module/

NAVIGATION

PARTICIPER ET PARTAGER

Vous êtes sur le wiki de Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Pour participer sur le wiki, créer un compte utilisateur en haut à droite.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Identifiez-vous pour poser vos questions sur la page de discussion de VisionDuWeb.
Améliorer le contenu des pages en faisant des propositions depuis l'onglet discussion.
Pour écrire en Markdown : Éditeur - Générateur de tableau 1 - Générateur de tableau 2.
Les informations du wiki ne doivent pas servir à nuire à autrui ou à un système informatique.
De nombreux outils gratuits sont listés et disponibles dans la boîte à outils de Vision du web.
D'autres pages du wiki peuvent correspondre à vos attentes. La liste de toutes les pages du wiki.

VALORISER LE WIKI

Valoriser le contenu partagé sur le wiki avec un don en monnaie numérique :
AEON - Bitcoins (BTC) - Bitcoins Cash - Bitcoins Gold - Bitcore (BTX) - Blackcoins - Bytecoins - Clams - Dash - Monero - Dogecoins - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash

OBTENIR DE LA MONNAIE NUMERIQUE

Obtenir gratuitement de la monnaie numérique :
Gagner des Altcoins - Miner des Altcoins.
Miroir PlanetHoster du 1er Novembre 2018.