logwatch¶
Surveiller ses journaux applicatifs (ou fichiers de trace) est une activité nécessaire mais bien souvent rébarbative. De nombreux programmes existent pour nous faciliter la tâche, mais le propre de ces programmes est d’être exhaustifs. De plus, ils demandent une action de la part de l’administrateur, à savoir : penser à aller les regarder.
logwatch
est une petite application permettant d’analyser les journaux de nombreux services
et de produire un rapport synthétique. Le nombre de services connus est impressionnant
et il est simple d’en ajouter de nouveaux. logwatch
est le plus souvent intégré à votre distribution Linux.
Après installation, il se lancera tous les jours grâce au fichier /etc/cron.daily/00logwatch
.
Vous recevrez tous les jours par mail les rapports des événements importants détectés dans les logs.
Vous pouvez aussi le lancer manuellement comme dans l’exemple qui suit.
Ce qui est intéressant avec cet outil, c’est qu’il synthétise les messages trouvés dans les traces, donne la date/heure de première apparition dans les traces et la période de temps sur laquelle le message s’est reproduit.
La configuration et le script relatifs au traitement des journaux applicatifs de PostgreSQL
par logwatch
sont à présent intégrés à logwatch
.
Exemple d’utilisation¶
Note
Ce qui suit suppose que les traces (postgresql.log
) de PostgreSQL
sont redirigées vers /var/log/postgresql/
.
C’est le défaut pour les paquets Debian, pas pour les paquets Red Hat/Rocky Linux.
Au besoin, modifier le paramètre log_directory
dans postgresql.conf
,
ou le paramètre LogFile
dans la configuration de logwatch
.
L’exécution peut durer un peu s’il y a beaucoup de lignes.
--range All
indique que l’on veut un rapport sur tous les fichiers de traces existants.
Pour n’avoir de rapport que sur la journée, la valeur devrait être Today
.
Celle par défaut est Yesterday
.
Il est possible de changer le niveau de détail, avec --detail Low
.
Seuls les messages de type FATAL
, PANIC
et ERROR
seront alors remontés.
Avec la valeur Med
comme ci-dessus, les messages de type WARNING
et HINTS
sont ajoutés aux précédents.
Il est aussi possible d’envoyer le rapport par mail et d’avoir un rapport au format HTML :
sudo /usr/sbin/logwatch --detail Med --service postgresql --range Yesterday --output mail --mailto admin@mydom.com --format html
Exemple de résultat :
################### Logwatch 7.3.6 (05/19/07) ####################
Processing Initiated: Tue Dec 13 12:28:46 2011
Date Range Processed: all
Detail Level of Output: 5
Type of Output/Format: stdout / text
Logfiles for Host: devel
##################################################################
--------------------- PostgreSQL Begin ------------------------
Fatals:
-------
9 times:
[2011-12-04 04:28:46 +/-9 day(s)] password authentication failed for user "postgres"
8 times:
[2011-11-21 10:15:01 +/-11 day(s)] terminating connection due to administrator command
6 times:
[2011-11-01 06:38:20 +/-23 hour(s)] password authentication failed for user "test"
4 times:
[2011-10-24 17:26:24 +/-14 seconds] Ident authentication failed for user "test"
[2011-11-24 23:22:02 +/-1 day(s)] database system is shut down
3 times:
[2011-12-10 02:49:02 +/-23 day(s)] database "test" does not exist
1 times:
[2011-12-09 17:39:06] role "test" is not permitted to log in
Errors:
-------
7 times:
[2011-11-14 12:20:44 +/-58 minute(s)] relation "COUNTRIES" does not exist
6 times:
[2011-11-14 12:19:43 +/-56 minute(s)] constraint "dept_loc_fk" of relation "departments" does not exist
[2011-11-14 12:19:43 +/-56 minute(s)] constraint "loc_c_id_fk" of relation "locations" does not exist
[2011-11-14 12:19:43 +/-56 minute(s)] constraint "dept_mgr_fk" of relation "departments" does not exist
[2011-11-14 12:19:43 +/-56 minute(s)] constraint "afpr_aft_fk" of relation "flx_properties" does not exist
[2011-11-14 12:19:43 +/-56 minute(s)] constraint "jhist_job_fk" of relation "job_history" does not exist
[2011-11-14 12:19:43 +/-56 minute(s)] constraint "emp_manager_fk" of relation "employees" does not exist
[2011-11-14 12:19:43 +/-56 minute(s)] constraint "emp_dept_fk" of relation "employees" does not exist
[2011-11-14 12:19:42 +/-56 minute(s)] syntax error at or near "dbms_lob"
[2011-11-14 12:19:43 +/-56 minute(s)] constraint "emp_job_fk" of relation "employees" does not exist
[2011-11-14 12:19:42 +/-56 minute(s)] syntax error at or near "NAME"
5 times:
[2011-11-14 12:21:24 +/-59 minute(s)] syntax error at or near "role_permission_view"
4 times:
[2011-12-08 20:46:37 +/-16 hour(s)] conflicting or redundant options
[2011-11-01 19:10:33 +/-6 minute(s)] relation "t_test" does not exist
2 times:
[2011-11-14 12:30:51 +/-1 minute(s)] schema "hr" already exists
[2011-11-14 14:32:15 +/-4 hour(s)] syntax error at or near "hr"
Warnings:
---------
55 times:
[2011-11-18 12:26:39 +/-6 day(s)] terminating connection because of crash of another server process
1 times:
[2011-11-29 09:05:47] pgstat wait timeout
[2011-11-14 16:34:03] nonstandard use of \' in a string literal
Hints:
------
55 times:
[2011-11-18 12:26:39 +/-6 day(s)] In a moment you should be able to reconnect to the database and repeat your command.
14 times:
[2011-12-08 09:47:16 +/-19 day(s)] No function matches the given name and argument types. You might need to add explicit type casts.
2 times:
[2011-10-10 17:38:28 +/-3 minute(s)] No operator matches the given name and argument type(s). You might need to add explicit type casts.
[2011-10-25 09:18:52 +/-2 seconds] Consider increasing the configuration parameter "checkpoint_segments".
1 times:
[2011-11-15 15:20:50] Could not choose a best candidate function. You might need to add explicit type casts.
[2011-11-14 16:34:03] Use '' to write quotes in strings, or use the escape string syntax (E'...').
---------------------- PostgreSQL End -------------------------
###################### Logwatch End #########################
Adaptation de la configuration¶
La configuration livrée par défaut est dans :
/usr/share/logwatch/default.conf/services/postgresql.conf
/usr/share/logwatch/default.conf/logfiles/postgresql.conf
L’adaptation de la configuration est décrite dans le fichier
/usr/share/doc/logwatch/HOWTO-Customize-LogWatch
(compressé en .gz
sous Debian)
(version en ligne).
En résumé, les paramètres modifiés doivent être écrits dans /etc/logwatch/conf/
,
et ils surchargeront la configuration précédente.
Danger
Ne pas modifier la configuration dans /usr/share/logwatch/default.conf/
!
Références¶
- Page de manuel
- Script de configuration original (dépôt Dalibo), intégré à logwath en 2012.