====== Les outils de journalisation ======
----
===== le service Journald =====
**Journald** est un service (deamon) de gestion des journaux système (il fait partie du projet systemd) qui remplace les fichiers texte traditionnels comme **/var/log/syslog**. Il stocke les journaux dans une **base de données binaire indexée**, ce qui permet une recherche et un filtrage plus rapides et efficaces des entrées de journal.
La commande **journalctl** permet d'afficher et de filtrer les entrées du journal
----
===== Journalctl =====
----
===== Syslog =====
**Syslog** est une solution **historique** sur Linux/UNIX, il récupère des informations **noyau** (via **klogd**), celles envoyées sur le socket **/dev/log**, et possiblement via le réseau (**protocole syslog, UDP port 514**) et les écrit (par défaut) dans des fichiers textes dans **/var/log/...**
Les logs sont classé par 2 codes :
- Les **"facility"** de 0 à 26, ils aident à déterminer les types de message journalisé.
- Les **"Severity Level"** de 0 à 7, 0 étant le plus critique (emergency) et le 7 du debug.
[[https://en.wikipedia.org/wiki/Syslog#Message_components|Voir ici le tableau en entier]]
----
===== Rsyslog =====
----
===== Logrotate =====
**Logrotate** est un utilitaire qui permet de gérer la **rotation**, l'**archivage** et la **compression** des fichiers journaux (logs) sur les systèmes Unix/Linux. Il est généralement utilisé pour éviter que les fichiers journaux ne deviennent trop **volumineux** et n'occupent trop d'**espace disque**.
Pour installé **logrotate** ou vérifier si il est installé :
sudo apt install logrotate
Les configurations et les options par défaut de l'utilitaire **Logrotate** sont disponibles dans le fichier **/etc/logrotate.conf**
Mais les informations spécifiques à la journalisation de certaines applications (surchargeant les paramètres par défaut) sont conservées dans le répertoire **/etc/logrotate.d/.** .
Voici un **exemple** de configuration d'un logrotate d'unserveur web stocké dans **/etc/logrotate.d/httpd.conf**
/var/log/httpd/access.log
/var/log/httpd/error.log
/var/log/httpd/monsite/*.log
{
rotate 5
mail mail@example.org
size 100k
shadescripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}
* concerne les logs d’un **serveur web**
* les fichiers sont « rotatés » **5 fois** ; la rotation intervenant à chaque fois que le fichier de log **atteint 100 Ko** (puis supprimés)
* un **mail** est envoyé à chaque rotation
* une **action est réalisée** après chaque rotation
Pour s'assurer qu'un fichier de logs effectue correctement ses rotations ou, pour vérifier la date et l'heure de sa dernière rotation, consulter le fichier **/var/lib/logrotate/status** ou **logrotate.status**.
sudo cat /var/lib/logrotate/logrotate.status
S'il y a besoin de **forcer** la rotation, voici la commande.
sudo logrotate -f /etc/logrotate.conf
[[https://doc.ubuntu-fr.org/logrotate|Documentation d'Ubuntu France pour d'autres exemples]]
----