Notification par mail d'alertes kern.log
Résolu/Fermé
Fred
-
Modifié le 28 juin 2019 à 19:39
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 - 15 juil. 2019 à 11:02
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 - 15 juil. 2019 à 11:02
A voir également:
- Notification par mail d'alertes kern.log
- Yahoo mail - Guide
- Activer notification visite profil facebook - Guide
- Publipostage mail - Guide
- Cci mail - Guide
- Mail outlook.fr - Forum Hotmail / Outlook.com
6 réponses
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
Modifié le 1 juil. 2019 à 16:33
Modifié le 1 juil. 2019 à 16:33
Bonjour,
Méthode 1:
La commande
... en remplaçant "..." par les paramètres adéquats.
Méthode 2:
Tu peux repartir de
Voir par exemple ce tutoriel.
Bonne chance
Méthode 1:
La commande
tail -f /var/log/kern.logaffiche en temps réel l'évolution de ce fichier. Il est possible ensuite de filtrer le tout avec
grep, et déclencher si ce grep est vérifié la commande ou le script adéquat (e.g. la commande
tail -f /var/log/kern.log | (grep -qv -- "Under-voltage detected!" || mail ...)
... en remplaçant "..." par les paramètres adéquats.
Méthode 2:
Tu peux repartir de
fail2ban, c'est un outil qui traite en live des fichiers de logs et qui permet, en fonction d'un motif donné (typiquement une expression régulière, comme pour
grep), de déclencher une action (par exemple un appel à la commande
Voir par exemple ce tutoriel.
Bonne chance
Merci Mamiemando mais je n'arrive à rien.
Méthode 2 :
Avec fail2ban, la failregex suivante :
failregex= Under-voltage detected
renvoie une erreur :
ERROR: No failure-id group in 'Under-voltage detected'
Si je rajoute le champ <HOST> :
failregex= Under-voltage detected <HOST>
Plus d'erreur mais rien de matché puisque pas de <HOST>
Lines: 676 lines, 0 ignored, 0 matched, 676 missed
Méthode 1 :
tail -f /var/log/kern.log | (grep -qv -- "Under-voltage detected!" || mail ...)
ne renvoyait rien
Avec :
grep "Under-voltage" /var/log/kern.log | mail -s "Problème voltage Pi" monmail@domain
je m'en sors mais je ne reçois pas l'alerte au bon moment, uniquement quand la commande est lancée et si je peux recevoir plusieurs messages pour des mêmes alertes si le log n'a pas tourné...
C'est la galère ;(
Fred
Méthode 2 :
Avec fail2ban, la failregex suivante :
failregex= Under-voltage detected
renvoie une erreur :
ERROR: No failure-id group in 'Under-voltage detected'
Si je rajoute le champ <HOST> :
failregex= Under-voltage detected <HOST>
Plus d'erreur mais rien de matché puisque pas de <HOST>
Lines: 676 lines, 0 ignored, 0 matched, 676 missed
Méthode 1 :
tail -f /var/log/kern.log | (grep -qv -- "Under-voltage detected!" || mail ...)
ne renvoyait rien
Avec :
grep "Under-voltage" /var/log/kern.log | mail -s "Problème voltage Pi" monmail@domain
je m'en sors mais je ne reçois pas l'alerte au bon moment, uniquement quand la commande est lancée et si je peux recevoir plusieurs messages pour des mêmes alertes si le log n'a pas tourné...
C'est la galère ;(
Fred
Exileur
Messages postés
1475
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
16 décembre 2022
150
Modifié le 11 juil. 2019 à 09:06
Modifié le 11 juil. 2019 à 09:06
Vous vous prenez vraiment la tête x)
De mon point de vu, le meilleur moyen de catcher des logs c'est de passer par l'outil de log ....
Aller, des bisous
De mon point de vu, le meilleur moyen de catcher des logs c'est de passer par l'outil de log ....
cat <<-'EOF' > /etc/rsyslog.d/40-voltage.conf
:msg, regex, "Under-voltage detected!" ^/usr/local/bin/sendmail.bash
EOF
cat <<-'EOF' > /usr/local/bin/sendmail.bash
#ton code
#
#
#Code de test
date >> /tmp/tests
EOF
chmod +x /usr/local/bin/sendmail.bash
systemctl restart rsyslog.service
echo 'Under-voltage detected!' > /dev/kmsg
sleep 1
echo 'Under-voltage detected!' > /dev/kmsg
cat /tmp/tests
jeudi 11 juillet 2019, 09:05:27 (UTC+0200)
jeudi 11 juillet 2019, 09:05:28 (UTC+0200)
tail -n 2 /var/log/kern.log
Jul 11 09:05:27 po-rez kernel: [174105.023083] Under-voltage detected!
Jul 11 09:05:28 po-rez kernel: [174106.026172] Under-voltage detected!
Aller, des bisous
Exileur
Messages postés
1475
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
16 décembre 2022
150
11 juil. 2019 à 14:19
11 juil. 2019 à 14:19
Il faudra surement revoir la regex pour matcher la ligne compléte.
Ou utiliser plutot un 'contains' ou un 'startswith' a la place de 'regex' tel que :
Ce qui nous donne :
Ou utiliser plutot un 'contains' ou un 'startswith' a la place de 'regex' tel que :
cat <<-'EOF' > /etc/rsyslog.d/40-voltage.conf
:msg, contains, "Under-voltage detected!" ^/usr/local/bin/sendmail.bash
EOF
cat <<-'EOF' > /usr/local/bin/sendmail.bash
#ton code
#
#
#Code de test
date >> /tmp/tests
EOF
chmod +x /usr/local/bin/sendmail.bash
systemctl restart rsyslog.service
echo 'Under-voltage detected!' > /dev/kmsg
sleep 1
echo 'asdadasd Under-voltage detected!' > /dev/kmsg
sleep 1
echo 'Under-voltage detected! asdasdada' > /dev/kmsg
sleep 1
echo 'adasasdasd Under-voltage detected! asdasdada' > /dev/kmsg
Ce qui nous donne :
cat /tmp/tests
jeudi 11 juillet 2019, 14:18:21 (UTC+0200)
jeudi 11 juillet 2019, 14:18:22 (UTC+0200)
jeudi 11 juillet 2019, 14:18:23 (UTC+0200)
jeudi 11 juillet 2019, 14:18:25 (UTC+0200)
Merci Exileur.
Il doit y avoir un pb car le fichier test est vide :
cat: /tmp/tests: Aucun fichier ou dossier de ce type
J'ai mis ceci dans sendmail.bash
#mon code
(echo "Subject: Alerte sous voltage Pi"; echo "date") | sendmail ***@***
#Code de test
date >> /tmp/tests
Peut-être un pb avec rsyslog ?
Fred
Il doit y avoir un pb car le fichier test est vide :
cat: /tmp/tests: Aucun fichier ou dossier de ce type
J'ai mis ceci dans sendmail.bash
#mon code
(echo "Subject: Alerte sous voltage Pi"; echo "date") | sendmail ***@***
#Code de test
date >> /tmp/tests
Peut-être un pb avec rsyslog ?
systemd[1]: Starting System Logging Service...
systemd[1]: Started System Logging Service.
rsyslogd[17960]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.1901.0]
rsyslogd[17960]: [origin software="rsyslogd" swVersion="8.1901.0" x-pid="17960" x-info="https://www.rsyslog.com"] start
Fred
Exileur
Messages postés
1475
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
16 décembre 2022
150
13 juil. 2019 à 11:03
13 juil. 2019 à 11:03
Hello,
Tu peux tester la conf avec :
Quel code as tu utilise?
Le fichier sendmail.bash est il executable?
Alternativement a
Tu peux utiliser la commande
Tu peux tester la conf avec :
sudo rsyslogd -N1
Quel code as tu utilise?
cat /etc/rsyslog.d/40-voltage.conf
Le fichier sendmail.bash est il executable?
/usr/local/bin/sendmail.bashle code genere-t-il, de base le fichier.
Alternativement a
echo 'Under-voltage detected! asdasdada' > /dev/kmsg
Tu peux utiliser la commande
logger - t kernel Under-voltage detected! asdasdadapour faire des tests et generer du log.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alors voilà :
rsyslogd -N1
/etc/rsyslog.d/40-voltage.conf
Le fichier sendmail.bash est bien exécutable (chmod +x)
Rien n'a été modifié dans mon /dev/kmsg depuis le 8/07 alors qu'il y a bien d'autres enregistrements dans le log kern.log !
Fred
rsyslogd -N1
rsyslogd: version 8.1901.0, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.
/etc/rsyslog.d/40-voltage.conf
:msg, contains, "Under-voltage detected!" ^/usr/local/bin/sendmail.bash
Le fichier sendmail.bash est bien exécutable (chmod +x)
Rien n'a été modifié dans mon /dev/kmsg depuis le 8/07 alors qu'il y a bien d'autres enregistrements dans le log kern.log !
Fred
Tout fonctionne parfaitement !
Mille mercis...
Je remets la solution qui va bien ;)
Fred
Mille mercis...
Je remets la solution qui va bien ;)
Fred
cat <<-'EOF' > /etc/rsyslog.d/40-voltage.conf
:msg, regex, "Under-voltage detected!" ^/usr/local/bin/sendmail.bash
EOF
cat <<-'EOF' > /usr/local/bin/sendmail.bash
#!/bin/bash
DATE=`date "+%d.%m.%Y - %Hh%Mm"`
echo "Le $DATE : alerte de sous voltage sur $HOSTNAME " | mail -s "Alerte sous voltage sur $HOSTNAME" ***@***
EOF
#Code de test
date >> /tmp/tests
EOF
chmod +x /usr/local/bin/sendmail.bash
systemctl restart rsyslog.service
Exileur
Messages postés
1475
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
16 décembre 2022
150
15 juil. 2019 à 11:02
15 juil. 2019 à 11:02
Super :)
Hesite pas à passer ton sujet en résolu si c'est le cas !
A bientot !
Hesite pas à passer ton sujet en résolu si c'est le cas !
A bientot !
2 juil. 2019 à 16:44
Configurer un béte match de contenu dans rsyslog :
Method 4 :
Configuration du rsyslog pour executer un script sur un match de log ( via le module omprog ) :
https://www.rsyslog.com/doc/v8-stable/configuration/modules/omprog.html
2 juil. 2019 à 16:51
2 juil. 2019 à 18:44
Je vais tester...
Fred
3 juil. 2019 à 10:16
3 juil. 2019 à 10:52
J'ai créé ce filtre :
Je le teste via :
fail2ban-regex /var/log/kern.log /etc/fail2ban/filter.d/fredkern.conf
mais cela ne fonctionne pas ;(
Le failregex ne doit pas avoir la bonne syntaxe...
Fred