Logcheck
Ce guide vous explique comment analyser les journaux système avec logcheck.
Démarrer avec logcheck
Arrière-plan
app-admin/logcheck est une mise à jour de app-admin/logsentry, c'est un outil qui permet d'analyser les journaux système. En prime, logcheck est fourni avec une base de données interne de "messages de journaux sans intérêt" dans le but de filtrer le bruit. L'idée générale de l'outil est que tous les messages sont dignes d'intérêt, sauf ceux qui sont explicitement marqués comme étant du bruit. logcheck vous adresse périodiquement un courriel avec un résumé des messages intéressants.
Installer logcheck
Il est vivement recommandé de retirer logsentry s'il est installé sur votre système. De plus, vous devriez retirer /etc/logcheck pour éviter des problèmes d'autorisation d'accès et de collision de fichiers.
root #
emerge -c logsentry
root #
rm -rf /etc/logcheck
Ensuite, vous pouvez maintenant procéder à l'installation de logcheck.
root #
emerge --ask app-admin/logcheck
Configuration de base
app-admin/logcheck crée un utilisateur séparé "logcheck" pour éviter d'être exécuté en tant que root. En réalité, il refuserait de tourner en tant que root. Pour l'autoriser à analyser les journaux, vous devez vous assurer qu'ils sont lisibles par logcheck. Voici un exemple pour app-admin/syslog-ng :
options {
owner(root);
## (Make log files group-readable by logcheck)
group(logcheck);
perm(0640);
};
Maintenant rechargez la configuration et assurez-vous que les changements fonctionnent comme vous l'espérez.
root #
/etc/init.d/syslog-ng reload
root #
ls -l /var/log/messages
-rw-r----- 1 root logcheck 1694438 Feb 12 12:18 /var/log/messages
Vous devriez maintenant ajuster quelques réglages de base de logcheck dans /etc/logcheck/logcheck.conf.
# Contrôle le niveau de filtrage :
# Peut être défini à "workstation", "server" ou "paranoid" pour différents
# niveaux de filtrage . Prend la valeur ''server'' par défaut.
## (Le niveau ''workstation'' inclut ''server'' et ''server'' inclut ''paranoid''.
Le niveau ''paranoid'' ne filtre pratiquement aucun message.)
REPORTLEVEL="server"
# Contrôle à qui sont adressés les mails:
# *NOTE* le script ne définit pas de valeur par défaut pour cette variable !
# Devrait être définie comme un site extérieur, "emailaddress@some.domain.tld"
## (Assurez-vous que vous pouvez recevoir les e-mails de logcheck. Le test est vivement recommandé)
SENDMAILTO="root"
# Contrôle si ''syslog-summary'' est exécuté pour chacune des sections.
# En alternative, définissez-le à "1" pour activer un résumé supplémentaire.
# HINT: ''syslog-summary'' doit être installé.
## (Si vous obtenez beaucoup de messages identiques, vous pouvez installer ''app-admin/syslog-summary'' et activer cette option.)
SYSLOGSUMMARY=0
Vous devez aussi dire à logcheck quels journaux analyser ( /etc/logcheck/logcheck.logfiles ).
## (Ceci est un exemple pour syslog-ng)
/var/log/messages
Enable periodical log check
Pour terminer, activez la tâche programmée pour exécuter logcheck.
Cron users
If logcheck is emerged with the cron USE flag enabled, it can read /etc/cron.hourly/logcheck.cron
#!/bin/sh
#
# To enable sync via cron, execute "sudo -u logcheck touch /etc/logcheck/cron-logcheck-enabled"
if [[ ! -f /etc/logcheck/cron-logcheck-enabled ]]; then
exit
fi
if [ ! -d /var/lock/logcheck ]; then
mkdir -p /var/lock/logcheck
chown logcheck:logcheck /var/lock/logcheck
fi
sudo -u logcheck nice -n10 /usr/sbin/logcheck
To enable an hourly cron job, run:
root #
sudo -u logcheck touch /etc/logcheck/cron-logcheck-enabled
Pour plus d'informations sur cron lisez le Cron Guide.
Systemd users
If logcheck is emerged with systemd USE flag enabled, a logcheck.timer can be activated running:
root #
systemctl enable --now logcheck.timer
Félicitations ! Vous recevrez désormais les messages des journaux importants par courriel. Un message ressemble à ceci :
System Events
=-=-=-=-=-=-=
Feb 10 17:13:53 localhost kernel: [30233.238342] conftest[25838]: segfault at 40 ip 40061403 sp bfc443c4 error 4
in libc-2.10.1.so[4003e000+142000]
Feb 11 12:31:21 localhost postfix/pickup[18704]: fatal: could not find any active network interfaces
Feb 11 12:31:22 localhost postfix/master[3776]: warning: process //usr/lib/postfix/pickup pid 18704 exit status 1
Feb 11 12:31:22 localhost postfix/master[3776]: warning: //usr/lib/postfix/pickup: bad command startup -- throttling
Dépannage
Astuces générales
Vous pouvez utiliser le commutateur -d
de logcheck pour afficher plus d'informations de débogage. Exemple :
root #
su -s /bin/bash -c '/usr/sbin/logcheck -d' logcheck
D: [1281318818] Turning debug mode on D: [1281318818] Sourcing - /etc/logcheck/logcheck.conf D: [1281318818] Finished getopts c:dhH:l:L:m:opr:RsS:tTuvw D: [1281318818] Trying to get lockfile: /var/lock/logcheck/logcheck.lock D: [1281318818] Running lockfile-touch /var/lock/logcheck/logcheck.lock D: [1281318818] cleanrules: /etc/logcheck/cracking.d/kernel ... D: [1281318818] cleanrules: /etc/logcheck/violations.d/su D: [1281318818] cleanrules: /etc/logcheck/violations.d/sudo ... D: [1281318825] logoutput called with file: /var/log/messages D: [1281318825] Running /usr/sbin/logtail2 on /var/log/messages D: [1281318825] Sorting logs D: [1281318825] Setting the Intro D: [1281318825] Checking for security alerts D: [1281318825] greplogoutput: kernel ... D: [1281318825] greplogoutput: returning 1 D: [1281318825] Checking for security events ... D: [1281318825] greplogoutput: su D: [1281318825] greplogoutput: Entries in checked D: [1281318825] cleanchecked - file: /tmp/logcheck.uIFLqU/violations-ignore/logcheck-su D: [1281318825] report: cat'ing - Security Events for su ... D: [1281318835] report: cat'ing - System Events D: [1281318835] Setting the footer text D: [1281318835] Sending report: 'localhost 2010-08-09 03:53 Security Events' to root D: [1281318835] cleanup: Killing lockfile-touch - 17979 D: [1281318835] cleanup: Removing lockfile: /var/lock/logcheck/logcheck.lock D: [1281318835] cleanup: Removing - /tmp/logcheck.uIFLqU
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: phajdan.jr, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.