====== Fichiers de log ======
----
===== RSYSLOG =====
Pour isoler les logs d'un service dans un fichier plutôt que dans /var/log/messages créer un fichier /etc/rsyslog.d/.conf
==== Syntaxe ====
:propriété, [!]Opérations de comparaison basées sur la propriété, "valeur"
=== Propriétés ===
* **msg** : la partie MSG du message.
* **hostname** : nom d’hôte du message
* **source** : alias pour HOSTNAME
* **timegenerated** : horodatage de la réception du message. Toujours en haute résolution
* **fromhost** : nom d’hôte du système duquel le message a été reçu.
* **fromhost-ip** : Identique à fromhost, mais toujours sous forme d’adresse IP.
* **syslogtag** : TAG du message
* **programname** : la partie «statique» de la balise, telle que définie par BSD syslogd. Par exemple, lorsque TAG est «nommé [12345]», le nom du programme est «nommé».
=== Opérations ===
* **contains** : Vérifie si la chaîne fournie dans valeur est contenue dans la propriété. Il doit y avoir une correspondance exacte, les caractères génériques ne sont pas pris en charge. Une option insensible à la casse est contains_i.
* **isequal** : Compare la chaîne «valeur» fournie et le contenu de la propriété. Ces deux valeurs doivent être exactement égales pour correspondre. isequal est le plus utile pour les champs comme syslogtag ou FROMHOST, où vous connaissez probablement le contenu exact.
* **startswith** : Vérifie si la valeur se trouve exactement au début de la valeur de la propriété. Par exemple, si vous recherchez “val” avec: msg, commence par, “val”, ce sera une correspondance si msg contient “les valeurs sont dans ce message” mais il ne correspondra pas si le msg contient “Il y a des valeurs dans ce message message”. Pour effectuer des comparaisons insensibles à la casse, utilisez startswith_i.
* **regex** : Compare la propriété à l’expression régulière POSIX BRE fournie.
* **ereregex** : Compare la propriété à l’expression régulière POSIX ERE fournie.
* **isempty** : Vérifie si la propriété est vide.
La négation se fait avec !
==== Exemples ====
=== contenu ===
Rediriger tous les journaux avec [IPTABLES vers /var/log/firewall.log
:msg,contains, "[IPTABLES" -/var/log/firewall.log
=== hostname ===
Sélectionner les messages syslog reçus du nom d’hôte toto.com
:hostname, isequal, "toto.com"
=== syslogtag ===
Rediriger tous les messages dont le TAG contient Node-Red vers vers /var/log/nodered/nodered.log
:syslogtag, contains, "Node-RED" -/var/log/nodered/nodered.log
& stop
----
===== LOGROTATE =====
Pour provoquer la rotation des fichiers de log créer un fichier /etc/logrotate.d/.conf
==== Exemple ====
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
==== Syntaxe ====
* **daily, weekly, monthly** : pour une rotation sur un jour, une semaine ou un mois.
* **missingok** : permet au processus de ne pas s’arrêter à chaque erreur et de poursuivre avec le fichier de log suivant.
* **rotate** : indique le nombre de fichiers conservés, ici on conserve 14 mois de journalisation.
* **compress** ou **delaycompress** : pour compresser les fichiers au format gzip. ‘delaycompress’ retarde le processus de compression jusqu’à la prochaine rotation.
* **notifempty** : empêche la rotation de s’effectuer si le fichier de log est vide.
* **create** : cré un fichier vide avec les propriétés spécifiées, après la rotation des logs.
* **sharedscripts** : les scripts ne sont exécutés qu’une seule fois, quel que soit le nombre de journaux correspondant au modèle générique, et le modèle entier leur est transmis. Cependant, si aucun des journaux du modèle ne nécessite une rotation, les scripts ne seront pas exécutés du tout. Si les scripts se terminent avec une erreur, les actions restantes ne seront exécutées pour aucun journal. Cette option remplace l’option nosharedscripts et implique l’option de création.
* **prerotate** et **postrotate** : permet de spécifier des actions à effectuer avant et après la rotation de log.
* **copytruncate** : le fichier est copié avant d'être vidé au lieu d'être déplacé. A utiliser avec certaines applications qui ne peuvent être alertée pour fermer le fichier et qui poursuivent l'écriture dans le fichier.
==== Forcer la rotation ====
Pour forcer la rotation exécuter la commande :
sudo logrotate -f /etc/logrotate.conf
----
[[all:bibles:linux:log|Haut de page]]