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.07360960705314 Monero.

Gestion des logs : Différence entre versions

De Wiki. Analyse, Communication, Développement, Hacking.
Aller à : navigation, rechercher
m (Adiscon LogAnalyzer)
m (Installation)
(4 révisions intermédiaires par le même utilisateur non affichées)
Ligne 8 : Ligne 8 :
 
====Présentation====
 
====Présentation====
 
  Rsyslog est un programme open source qui permet de transférer les messages de journalisation sur un réseau IP pour les systèmes UNIX et de type Unix.
 
  Rsyslog est un programme open source qui permet 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.
+
  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, SSL et RELP pour le transport. Rsyslog est un remplaçant direct de syslogd. Rsyslog offre de hautes performances, des fonctionnalités de sécurité et une conception modulaire. Rsyslog peut nous permettre de stocker les messages de journalisation dans une base de données qui pourra être exploitée par un programme complémentaire, comme par exemple l'interface Web de LogAnalyzer.
  
 
  Site officiel de Rsyslog : https://www.rsyslog.com
 
  Site officiel de Rsyslog : https://www.rsyslog.com
Ligne 40 : Ligne 40 :
 
  cd /etc/apk/keys
 
  cd /etc/apk/keys
 
  wget http://alpine.adiscon.com/[email protected]
 
  wget http://alpine.adiscon.com/[email protected]
  echo 'http://alpine.adiscon.com/3.7/stable' >> /etc/apk/repositories
+
  echo "http://alpine.adiscon.com/3.7/stable" >> /etc/apk/repositories
 
  apk update
 
  apk update
 
  apk add rsyslog
 
  apk add rsyslog
Ligne 616 : Ligne 616 :
 
====Vérifier la version de LogAnalyzer====
 
====Vérifier la version de LogAnalyzer====
 
  rsyslogd -v
 
  rsyslogd -v
 +
 
  rsyslogd 8.39.0, compiled with:
 
  rsyslogd 8.39.0, compiled with:
 
   PLATFORM: x86_64-pc-linux-gnu
 
   PLATFORM: x86_64-pc-linux-gnu

Version du 17 novembre 2018 à 16:42

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

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

Rsyslog

Présentation

Rsyslog est un programme open source qui permet 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, SSL et RELP pour le transport. Rsyslog est un remplaçant direct de syslogd. Rsyslog offre de hautes performances, des fonctionnalités de sécurité et une conception modulaire. Rsyslog peut nous permettre de stocker les messages de journalisation dans une base de données qui pourra être exploitée par un programme complémentaire, comme par exemple l'interface Web de LogAnalyzer.
Site officiel de Rsyslog : https://www.rsyslog.com
Documentation : https://www.rsyslog.com/doc/v8-stable/

Installation

Cette installation permettra de stocker les logs de syslog dans une base de données.
Si aucune base de données n'est configurée, l'interface Web de LogAnalyzer pourra utiliser les données fournies par syslog depuis le disque.
Si une base de données est configurée, l'interface Web de LogAnalyzer pour utiliser les données fournies par la base de données.
# Prérequis : apache.
# Installation de la version 8.39.0 de Rsyslog depuis les dépôts officiels Ubuntu / Mint :
# Ajouter un des deux référentiels :
# Ajouter le référentiel PPA stable : sudo add-apt-repository ppa:adiscon/v8-stable
# Ajouter le référentiel PPA en développement : sudo add-apt-repository ppa:adiscon/v8-devel
sudo apt update
sudo apt-get install rsyslog
# Installation de la version 8.39.0 de Rsyslog depuis les dépôts officiels Debian 9 :
# Installer la clé PGP dans votre système apt :
sudo apt-key adv --recv-keys --keyserver keys.gnupg.net AEF0CF8E
# Éditer votre /etc/apt/sources.list et ajouter ces lignes à la fin :
# Pour v8-stable sur Debian (7) Wheezy 
# Adiscon repository
deb http://debian.adiscon.com/v8-stable wheezy/
deb-src http://debian.adiscon.com/v8-stable wheezy/
sudo apt update
sudo apt-get install rsyslog
# Installation de la version 8.39.0 de Rsyslog depuis les dépôts officiels Alpine :
cd /etc/apk/keys
wget http://alpine.adiscon.com/[email protected]
echo "http://alpine.adiscon.com/3.7/stable" >> /etc/apk/repositories
apk update
apk add rsyslog
# Installation de la version 8.39.0 de Rsyslog depuis les dépôts officiels RHEL/CentOS :
cd /etc/yum.repos.d/
wget http://rpms.adiscon.com/v8-stable/rsyslog.repo
yum install rsyslog
# Installation de la version 8.39.0 de Rsyslog depuis les sources officielles :
Code sources et support officiel sur Github : https://github.com/rsyslog/rsyslog/tree/master
Télécharger la source de Rsyslog 8.39.0 : https://www.rsyslog.com/downloads/download-v8-stable/
https://www.rsyslog.com/doc/v8-stable/installation/install_from_source.html
# Ajouter la documentation de Rsyslog :
sudo apt install rsyslog-doc
# Installer 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 avec dbconfig.
# Par défaut une base MySQL nommée Syslog contenant 2 tables SystemEvents et SystemEventsProperties est créée.
# L’utilisateur [email protected] possède le contrôle total sur la base de données Syslog.
# La configuration de connexion est stockée dans le fichier /etc/rsyslog.d/mysql.conf.
Configurer le fichier de connexion mysql.conf
# Éditer le fichier de configuration mysql.conf qui permet de se connecter à la base de données Syslog de MySQL pour y stocker les données de logs venant de syslog.
sudo nano /etc/rsyslog.d/mysql.conf

# Faire les modifications suivantes si la version du serveur est Debian. ( A vérifier ! )
### Fichier de configuration pour rsyslog-mysql.
### Les modifications sont conservées.
# $ModLoad ommysql
# *.* :ommysql:localhost,Syslog,Utilisateur_BDD,Password_BDD
# Remarque : Il semble important d’utiliser les espaces de tabulation entre les entrées de la configuration.

# Faire les modifications suivantes si la version du serveur est Ubuntu 18.04 Lts.
### Fichier de configuration pour rsyslog-mysql.
### Les modifications sont conservées.
module (load="ommysql")
*.* action(type="ommysql" server="localhost" db="Syslog" uid="Utilisateur_BDD" pwd="Password_BDD")
#?# Ajouter cette ligne à la fin de la configuration du fichier /etc/rsyslog.d/mysql.conf
#?# Filtrer le niveau d'alertes à enregistrer : *.warning >domain.com,syslog,syslog,<pwd>
Configurer l'écoute du réseau dans la configuration de Rsyslog
# Paramétrer le fichier de configuration de Rsyslog.
sudo nano /etc/rsyslog.conf
# Réception des messages local. Sans cette commande, les données locales ne peuvent pas être réceptionnées.
$ModLoad imuxsock
# 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.).

# Préférer l'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.

 # Cette syntaxe devrait convenir pour Debian. ( A vérifier ! )
# Fournit une réception UDP syslog :
## $ModLoad imudp
## $UDPServerRun 514
# Fournit une réception TCP syslog :
## $ModLoad imtcp
## $InputTCPServerRun 1514
# Cette syntaxe devrait convenir pour Ubuntu 16.04 LTS / Ubuntu 18.04 LTS.
# Fournit une réception UDP syslog :
module(load="imudp")
input(type="imudp" port="514") 
# Fournit une réception TCP syslog :
module(load="imtcp")
input(type="imtcp" port="514")

## 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
# Ajouter une ligne pour faire gérer d'autres logs par Rsyslog (Apache2, Mysql, ...) :
# $InputFileName <chemin du log a géré>
# Le serveur est maintenant configuré pour enregistrer les logs dans la base.
# Il écoute sur le port 514 les messages entrant.
Redémarrer le démon Rsyslog pour appliquer la nouvelle configuration
# Redémarrer le démon Rsyslog pour appliquer la nouvelle configuration.
sudo service rsyslog restart
sudo /etc/init.d/rsyslog restart
sudo systemctl restart rsyslog
Créer la base de données Syslog pour stocker les données de syslog avec Rsyslog et MySQL
Si le paquet rsyslog-mysql n'a pas été utilisé pour créer la base de données, la base de données peut être créée manuellement.
Première méthode
# Créer la structure de base de données avec le script officiel pour stocker les messages de journalisation dans MySQL :
La définition du schéma de base de données donnée est disponible depuis le fichier createDB.sql depuis l’archive de Rsyslog 7.6.1.
Le chemin d'accès au fichier est ./rsyslog-7.6.1/plugins/ommysql/createDB.sql.
# Lancer l'import de la base :
mysql -u rsyslog -D Syslog -p < /path/createDB.sql
Deuxième méthode
# Créer la structure de base de données manuellement pour stocker les messages de journalisation dans MySQL :
sudo bash
mysql -u root -p
Si besoin, renseigner le mot de passe de l'utilisateur pour la base de données. Continuer avec la touche entrée.
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 à l'utilisateur rsyslog pour pouvoir utiliser la base de données Syslog
mysql -u root -p
# Le mot de passe est vide sur le système local. Appuyer sur entrée.
# Sécuriser la base avec un mot de passe pour un système en production.
# La base de données a déjà été créée.
# CREATE DATABASE Syslog CHARACTER SET utf8;
# Si l'utilisateur rsyslog n'existe pas encore, créer l'utilisateur rsyslog pour gérer la base de données.
CREATE USER 'rsyslog'@'localhost' IDENTIFIED BY 'Analyzer';
# Donner les droits à l'utilisateur rsyslog.
GRANT ALL PRIVILEGES ON Syslog.* TO [email protected] IDENTIFIED BY 'Analyzer';
FLUSH PRIVILEGES;
exit
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 la base de données Syslog
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.
Proposition script Cron 1
# Ce script n'a pas été testé.
#!/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 Cron 2
# Ce script n'a pas été testé.
#!/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
Utiliser InnoDB et des tables compressées
# Ce script n'a pas été testé.
# Pour utiliser InnoDB et des tables compressées :
ALTER TABLE SystemEvents
ENGINE=innodb DEFAULT CHARSET=latin1 row_format=COMPRESSED KEY_BLOCK_SIZE=4;
Indexer les champs qui serviront souvent dans les requêtes
# Ce script n'a pas été testé.
# 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 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`);
Centraliser les logs sur un serveur de logs avec Rsyslog
Complète la configuration proposée précédemment pour utiliser Rsyslog comme serveur de logs centralisé.
# Créer un fichier modèle dans lequel nous créerons un nouveau format de journal personnalisé depuis /etc/rsyslog.d/tmpl.conf
sudo nano /etc/rsyslog.d/tmpl.conf
# Ajouter les lignes suivantes :
$template TmplAuth, "/var/log/client_logs/%HOSTNAME%/%PROGRAMNAME%.log"
$template TmplMsg, "/var/log/client_logs/%HOSTNAME%/%PROGRAMNAME%.log"
# La syntaxe proposée est a vérifier.
authpriv.* ?TmplAuth
*.info;mail.none;authpriv.none;cron.none ?TmplMsg
Autoriser le port 514 par défaut de Rsyslog sur votre pare-feu. Les commandes suivantes ouvriront ce port via UFW.
sudo ufw allow 514/tcp
sudo ufw allow 514/udp
Redémarrer le service UFW pour prendre en compte les modifications.
sudo ufw reload
Recharger le service Rsyslog en utilisant la commande suivante :
systemctl restart rsyslog
# 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.
Ajouter de nouveaux clients Rsyslog
# Configurer les serveurs clients pour qu’ils puissent envoyer leurs logs à la machine qui aura le rôle de serveur de logs.
# 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 sur chaque client :
# 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
$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
Consigner le message en erreur standard (écran), ainsi que le journal système à l’aide de la commande suivante :
logger -s " Ceci est un client Rsyslog "
Aller maintenant sur le serveur Rsyslog sous le répertoire /var/log/client_logs.
Un nouveau dossier nommé avec le nom d’hôte de votre client Rsyslog devrait être disponible.
/var/log/client_logs/Client01/
Déboguer Rsyslogd et obtenir ses logs
sudo nano /etc/rsyslog.conf
$DebugFile /home/USER/Bureau/debug.txt
$DebugLevel 2
# <0|1|2> - Définir le niveau de débogage : 0 correspond au débogage désactivé, 1 au débogage à la demande activé (mais le mode débogage désactivé) et 2 au mode débogage complet.
sudo service 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
# La méthode trace pourrait peut être aussi aider, mais, la première méthode est plus adaptée.
# 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

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.
#  #  #  #  #  #  #  #  #  # 
# Premier essai pour installer LogAnalyzer :
# 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.
# Pour le moment, mon essai ne fonctionne pas, car la première installation de Loganalyzer a été faite en se basant sur la source Disk pour syslog.
# 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.
# Je n'avais pas testeé si les prérequis étaient bien installés et fonctionnels pour Rsyslog.
# Alors seulement, on peut installer 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/

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, php-mysql, php-gd.
# 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.

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 de la base de données de LogAnalyzer.
Premières valeurs proposées : 50 80 30 yes yes yes.
Hôte : localhost
Port : 3306
Nom de la base de données : Syslog
Préfixe : logcon_
Utilisateur de la base de données : rsyslog
Mot de passe de l'utilisateur de la base de données : Au choix.
Nécessite que l'utilisateur soit connecté : non
Méthode d’authentification : Authentification interne.
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 nécessite la bonne configuration de Rsyslog avec MySQL : Les données de syslog doivent apparaître dans la base de données de Syslog.
Configurer alors l'accès de LogAnalyzer à la base de données dédiée à Syslog qui est alimentée par Rsyslog.
Préférer l'utilisation des paramètres configurés par défaut lors de l'installation du paquet rsyslog-mysql.
Name of the source : Ma source Syslog
Source Type : MYSQL Native
Select View : Syslog Fields
Custom Searchfilter : Je laisse le champ vide.
Table type : MonitorWare
Database Host : localhost
Database Name : Syslog
Database Tablename : systemevents
Database User : rsyslog
Database Password : Au choix
Enable Row Counting : no
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
# Si la source MYSQL Native avec Syslog Fields a été choisie dans la configuration assistée de Loganalizer : 
# Une fois l’installation terminée, modifier le fichier /var/www/html/loganalizer/config.php en utilisant les valeurs appropriées à votre configuration :
# $CFG['Sources']['Source1']['DBServer'] = 'localhost';
# $CFG['Sources']['Source1']['DBName'] = 'Syslog';
# $CFG['Sources']['Source1']['DBUser'] = 'Votre utilisateur';
# $CFG['Sources']['Source1']['DBPassword'] = 'Votre mot de passe';
# $CFG['Sources']['Source1']['DBTableName'] = 'SystemEvents';

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. 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
# Les propriétés suivantes sont obsolètes : https://www.rsyslog.com/doc/v8-stable/configuration/modules/omfile.html
# 7. 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
8. Redémarrer rsyslog avec sudo /etc/init.d/rsyslog restart pour prendre en compte la nouvelle configuration.
Accueil-loganalyzer.png
Les logs sont maintenant affichés depuis l'interface de LogAnalizer.
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

A compléter - Rsyslog et SSL

Le cryptage SSL pour l'échange entre Syslog et Rsyslog.
Encrypting Syslog Traffic with TLS (SSL) [short version] : https://www.rsyslog.com/doc/v8-stable/tutorials/tls.html
Encrypting Syslog Traffic with TLS (SSL) : https://www.rsyslog.com/doc/v8-stable/tutorials/tls_cert_summary.html

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 et Loganalyzer

Ok.png How to Setup LogAnalyzer with Rsyslog On Ubuntu 16.04 LTS / Ubuntu 18.04 LTS : http://yallalabs.com/linux/how-to-setup-loganalyzer-with-rsyslog-on-ubuntu-16-04-lts-ubuntu-18-04-lts/
Ok.png How to Setup A Centralized Log Server Using Rsyslog on Ubuntu 16.04 LTS : http://yallalabs.com/linux/how-to-setup-a-centralized-log-server-using-rsyslog-on-ubuntu-16-04-lts/
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 How to Setup LogAnalyzer with Rsyslog and MySQL : https://tecadmin.net/setup-loganalyzer-with-rsyslog-and-mysql/
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/
Ok.png Ce contenu de recherche effectué par Visionduweb sur Rsyslog est partagé sur le wiki officiel de Debian : https://wiki.debian.org/Rsyslog -> https://wiki.debian.org/fr/Rsyslog
Ko.png https://www.youtube.com/watch?v=z1313LUe3xQ
Ko.png Install a Centralized Log Server with Rsyslog in Debian 9 : https://www.howtoforge.com/tutorial/rsyslog-centralized-log-server-in-debian-9/

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.