Bonjour Sébastien,
Merci beaucoup ! Ca correspond exactement à ce que je cherchais.
J'ai fait quelques ajustements pour ajouter des règles même s'il est
difficile de savoir quels motifs mettre afin de ne pas être dérangé pour
rien mais, d'un autre côté, de ne pas non plus louper de véritables alertes.
Pour info, je me suis rendu compte que tout ne fonctionnait pas comme je
le voulais tout simplement parce que j'avais créé un lien logique entre
le répertoire /etc/logcheck/ignore.d.server/ et mon fichier de règles
stocké dans mon répertoire d'installation.
Visiblement, il faut le copier car logcheck ne prend pas en compte
celui-ci s'il est là uniquement via un lien (ln -sf).
Globalement, j'ai déjà beaucoup moins de lignes même si j'ai encore du
ménage à faire.
Bonne fin de journée.
David.
-------- Message d'origine --------
De : Sébastien Dinot <[email protected]>
Envoyé : jeudi 2 janvier 2025 à 22:43 UTC+1
Pour : [email protected] French
<[email protected]>
Sujet : RE: Logcheck et expression régulière
Bonsoir David, bonsoir tout le monde,
Le 2025-01-02 09:09, David BERCOT a écrit :
Ainsi, la forme de règle qu'on retrouve habituellement est la suivante :
^\w{3} [ :[:digit:]]{11} [-._[:alnum:]]+ systemd\[1\]: Started [-/:.
[:alnum:]]+$
Et cela fonctionne bien pour, par exemple :
Jan 1 19:12:38 debian systemd[1]...
Maintenant, j'ai constaté que, selon les fichiers de logs, j'avais aussi :
Jan. 1
Janv. 1
Dec 31
Dec. 31
Déc 31
Je décompose tes exemples ainsi :
* La ligne commence par le mois, indiqué sur 3 à 4 caractères
* Suivi d'un point optionnel
* Suivi de un espace
* Suivi du jour du mois, calé ou non sur 2 caractères (et de l'heure),
ce qui donne une suite de 10 à 11 chiffres, espaces et deux-points
* Etc.
Si tu as bien ces variations, la bonne expression rationnelle est :
^\w{3,4}\.? [ :[:digit:]]{10,11} [-._[:alnum:]]+ systemd\[[[:digit:]]+
\]: .*$
Si on décompose :
* *^\w{3,4}* : La ligne commence par le mois, indiqué sur 3 à 4 caractères
* *\.?* : Suivi d'un point optionnel
* **: Suivi de un espace
* *[ :[:digit:]]{10,11}* : Suivi du jour du mois, calé ou non sur 2
caractères (et de l'heure), ce qui donne une suite de 10 à 11
chiffres, espaces et deux-points
* Etc.
Tu noteras que j'ai opté pour l'expression :
systemd\[[[:digit:]]+\]:
Et non :
systemd\[1\]:
Car le PID du processus systemd n'est pas toujours 1. En fait, il y a
plusieurs processus systemd. Voici ce que j'ai sur mon serveur :
$ ps axf | grep '/systemd ' | grep -v grep
1 ? Ss 1:36 /usr/lib/systemd/systemd --system --
deserialize=116
4059223 ? Ss 0:00 /usr/lib/systemd/systemd --user
Maintenant un exemple sur pièce :
Je crée le fichier de log avec les messages que je veux capturer :
$ cat > /tmp/log <<EOF
Jan. 1 22:08:01 debian systemd[1]: Starting [email protected] - User Manager for
UID 0...
Janv. 1 22:08:01 debian systemd[4059223]: Queued start job for default target
default.target.
Dec 31 22:08:01 debian systemd[4059223]: Created slice app.slice - User
Application Slice.
Dec. 31 22:08:01 debian systemd[4059223]: Reached target paths.target - Paths.
Déc 31 22:08:01 debian systemd[1]: Starting [email protected] - User Manager for
UID 0...
EOF
Puis je crée le fichier de règles :
$ cat > /tmp/rules <<EOF
^\w{3,4}\.? [ :[:digit:]]{10,11} [-._[:alnum:]]+ systemd\[[[:digit:]]+\]: .*$
EOF
Puis je vérifie quels messages sont capturés par mes (enfin, ici, ma)
règles :
$ logcheck-test -l /tmp/log -r /tmp/rules
Jan. 1 22:08:01 debian systemd[1]: Starting [email protected] - User
Manager for UID 0...
Janv. 1 22:08:01 debian systemd[4059223]: Queued start job for default
target default.target.
Dec 31 22:08:01 debian systemd[4059223]: Created slice app.slice - User
Application Slice.
Dec. 31 22:08:01 debian systemd[4059223]: Reached target paths.target -
Paths.
Déc 31 22:08:01 debian systemd[1]: Starting [email protected] - User
Manager for UID 0...
================================================================================
parsed file: /tmp/log
used rule file: /tmp/rules
Les 5 lignes sont bien capturées, ma règle fonctionne.
A++, Sébastien
--
Sébastien Dinot
Ne goutez pas au logiciel libre, vous ne pourriez plus vous en passer !
https://www.palabritudes.net/ <https://www.palabritudes.net/>