Nos systèmes Linux exécutent l' utilitaire logwatch (8) par défaut. Sur un système RedHat / CentOS / SL, Logwatch est appelé par le /etc/cron.daily/
cronjob, qui envoie ensuite un e-mail quotidien avec les résultats. Ces e-mails ont un sujet comme:
Subject: Logwatch for $HOSTNAME
Le problème est que par défaut ces e-mails quotidiens sont trop bruyants et contiennent beaucoup d'informations superflues (erreurs HTTP, utilisation quotidienne du disque, etc.) qui sont déjà surveillées par d'autres services (Nagios, Cacti, syslog central, etc.). Pour 100 systèmes, la charge des e-mails est insupportable. Les gens ignorent les e-mails, ce qui signifie que nous pouvons manquer des problèmes qui sont détectés par logwatch.
Comment puis-je réduire la quantité de bruit généré par logwatch, mais toujours utiliser logwatch pour nous signaler des problèmes importants?
Je posterai ma propre réponse ci-dessous, mais j'aimerais voir ce que les autres ont fait.
Remarque : J'ai une question similaire concernant FreeBSD, chez FreeBSD: périodique (8) est trop bruyant. Comment contrôler le niveau de bruit?
la source
Oui - la logwatch est souvent trop bruyante. Vous avez déjà mentionné la désactivation complète des vérifications.
Si vous ne voulez pas faire cela, vous devez empêcher certains événements d'apparaître. Par exemple - ce n'est pas intéressant si nagios se connecte via ssh à un système DMZ. Mais c'est intéressant s'il y a d'autres connexions via ssh.
Nous utilisons rsyslog au lieu de ksyslogd (installez d'abord rsyslog, puis supprimez ksyslogd). Avec rsyslog, vous pouvez affiner ce qui va dans les journaux et ce qui ne l'est pas (par exemple construire une expression qui supprime les messages de sshd co-contenant "nagios connected"). De cette façon, logwatch ne rapportera que des informations utiles.
Un autre cas pourrait être xinetd - je ne veux pas être informé des connexions réussies - cela peut être configuré dans xinetd itselv - sans désactiver la vérification de la journalisation pour xinetd.
la source
Comme point d'intérêt, j'ai suivi l'option 2 de la réponse de Stefan Lasiewski mais pour mes besoins, je voulais uniquement inclure des lignes spécifiques plutôt que d'exclure tout le bruit que je ne voulais pas.
Je configurais vsftpd donc j'ai créé
/etc/logwatch/conf/services/vsftpd.conf
et au lieu d'utiliser quelque chose comme*Remove = testuser
qui supprime les lignes qui incluent le texte,testuser
j'ai utilisé la ligne*OnlyContains = "testuser"
qui ne renvoie que les lignes comprenant ce texte.Ces 2 scripts fonctionnent très basiquement en utilisant
grep
etgrep -v
.La différence étant que vous pouvez utiliser
*Remove
autant de fois que vous le souhaitez, mais avec*OnlyContains
vous devez l'utiliser une fois si vous voulez quelque chose ou quelque chose d'autre ou quelque chose d'autre. Donc, pour plusieurs valeurs que vous faites*OnlyContains = "testuser|testuser2|testuser3"
la source
Avez-vous envisagé de canaliser les messages d'état des e-mails vers un serveur de liste, peut-être un qui peut fournir des résumés basés sur des attributs programmables de taille et / ou de durée / âge? L'approche ne réduit pas la quantité de journalisation envoyée par e-mail, mais peut contrôler la quantité d'e-mails individuels par lots pour réduire la fréquence des e-mails.
la source
J'ai récemment eu besoin de calmer la sortie du service sshd. Certaines sections étaient assez longues et ne pouvaient pas être contrôlées en définissant le niveau de détail.
Ce n'est pas une solution idéale, mais j'ai fini par remplacer le script sshd en le copiant d'ici:
/usr/share/logwatch/scripts/services/sshd
ici:/etc/logwatch/scripts/services/sshd
Bien sûr, vous devez maintenant suivre les mises à jour de ce fichier de script, mais cela vous donne un contrôle très fin sur ce qui est sorti. Alternativement, je suppose que vous pouvez diriger la sortie de
logwatch
via un outil commeawk
oused
pour supprimer ce que vous ne voulez pas, mais cela m'a semblé plus difficile.la source
J'ai eu la même question sur UNIX & Linux Stackexchange et voici la réponse que j'ai corrigée pour moi:
Vous pouvez dire à logwatch de regarder 7 jours au lieu de 1 jour en modifiant le paramètre Range dans votre
logwatch.conf
:Vous pouvez dire
logwatch
d'exécuter chaque semaine au lieu de tous les jours en le déplaçant du répertoire hebdomadaire cron vers lecron
répertoire quotidien :Merci à @JeffSchaller
la source