Ceci est une ancienne révision du document !


Dernière mise-à-jour : 2020/01/30 03:36

SO206 - Gestion de la Journalisation

La majorité des journaux du système et des applications se trouve dans le répertoire /var/adm.

Il est conseillé de déplacer le point de montage du répertoire /var/adm sur une tranche ou un volume logique à part. De cette façon, en cas de journalisation rapide trop bavarde la limite de la taille de ce répertoire est celle de la taille de la tranche ou du volume logique. Si vous laissez ce répertoire dans la racine du système, il existe un risque à ce que les journaux grossissent si vite qu'ils occupent toute l'espace disque libre, créant ainsi un crash système.

Gestion des journaux

Journalisation du Système

/var/sadm/system/logs

Ces répertoire contient les journaux générés par le processus d'installation de Solaris.

# ls /var/sadm/system/logs
begin.log                           install_launch.log_2010_01_03_0752
begin.log_2010_01_03                install_log
finish.log                          sysidtool.log
finish.log_2010_01_03
#
# cat /var/sadm/system/logs/begin.log
Executing begin script "install_begin"...
Begin script install_begin execution completed.

/var/adm/messages

Ce fichier contient la plupart des messages du système, y compris les heures de connexion et déconnexion réussies ou non :

# tail /var/adm/messages
Aug 28 12:14:15 unknown genunix: [ID 882269 kern.info]  PIO mode 4 selected
Aug 28 12:14:15 unknown genunix: [ID 935449 kern.info]  ATA DMA off: disabled. Control with "atapi-cd-dma-enabled" property
Aug 28 12:14:15 unknown genunix: [ID 882269 kern.info]  PIO mode 4 selected
Aug 28 12:14:15 unknown syslogd: line 24: WARNING: loghost could not be resolvedAug 28 12:14:16 unknown sendmail[407]: [ID 702911 mail.crit] My unqualified host name (unknown) unknown; sleeping for retry
Aug 28 12:14:16 unknown sendmail[409]: [ID 702911 mail.crit] My unqualified host name (unknown) unknown; sleeping for retry
Aug 28 12:14:37 unknown pseudo: [ID 129642 kern.info] pseudo-device: devinfo0
Aug 28 12:14:37 unknown genunix: [ID 936769 kern.info] devinfo0 is /pseudo/devinfo@0
Aug 28 12:15:16 unknown sendmail[407]: [ID 702911 mail.alert] unable to qualify my own domain name (unknown) -- using short name
Aug 28 12:15:16 unknown sendmail[409]: [ID 702911 mail.alert] unable to qualify my own domain name (unknown) -- using short name

La commande /usr/sbin/dmesg

Les messages générés pendant le démarrage du système peuvent être visualisés grâce à la commande dmesg :

# dmesg | more

mardi 28 août 2012 13 h 53 CEST
Aug 28 11:11:51 unknown pseudo: [ID 129642 kern.info] pseudo-device: profile0
Aug 28 11:11:51 unknown genunix: [ID 936769 kern.info] profile0 is /pseudo/profile@0
Aug 28 11:11:51 unknown pseudo: [ID 129642 kern.info] pseudo-device: systrace0
Aug 28 11:11:51 unknown genunix: [ID 936769 kern.info] systrace0 is /pseudo/systrace@0
Aug 28 11:11:51 unknown pseudo: [ID 129642 kern.info] pseudo-device: fbt0
Aug 28 11:11:51 unknown genunix: [ID 936769 kern.info] fbt0 is /pseudo/fbt@0
Aug 28 11:11:51 unknown pseudo: [ID 129642 kern.info] pseudo-device: sdt0
Aug 28 11:11:51 unknown genunix: [ID 936769 kern.info] sdt0 is /pseudo/sdt@0
Aug 28 11:11:51 unknown pseudo: [ID 129642 kern.info] pseudo-device: fasttrap0
Aug 28 11:11:51 unknown genunix: [ID 936769 kern.info] fasttrap0 is /pseudo/fasttrap@0
Aug 28 11:11:51 unknown pseudo: [ID 129642 kern.info] pseudo-device: fcp0
Aug 28 11:11:51 unknown genunix: [ID 936769 kern.info] fcp0 is /pseudo/fcp@0
Aug 28 11:11:51 unknown pseudo: [ID 129642 kern.info] pseudo-device: fcsm0
Aug 28 11:11:51 unknown genunix: [ID 936769 kern.info] fcsm0 is /pseudo/fcsm@0
Aug 28 11:11:51 unknown pseudo: [ID 129642 kern.info] pseudo-device: lx_systrace0
Aug 28 11:11:51 unknown genunix: [ID 936769 kern.info] lx_systrace0 is /pseudo/l--A suivre--

Journalisation des Services

/var/svc/log

Ce répertoire contient les journaux des services :

# ls /var/svc/log | more
application-cde-printinfo:default.log
application-database-postgresql_83:default_32bit.log
application-database-postgresql_83:default_64bit.log
application-database-postgresql:version_81.log
application-database-postgresql:version_82_64bit.log
application-database-postgresql:version_82.log
application-font-fc-cache:default.log
application-gdm2-login:default.log
application-graphical-login-cde-login:default.log
application-management-common-agent-container-1:default.log
application-management-dmi:default.log
application-management-seaport:default.log
application-management-sma:default.log
application-management-snmpdx:default.log
application-management-wbem:default.log
application-management-webmin:default.log
application-opengl-ogl-select:default.log
application-print-ipp-listener:default.log
application-print-ppd-cache-update:default.log
application-print-server:default.log
application-stosreg:default.log
milestone-devices:default.log
--A suivre--

Journalisation Sécuritaire

/var/adm/sulog

Ce fichier contient la journalisation de l'utilisation de la commande su :

# tail /var/adm/sulog
SU 08/27 09:39 + ??? root-root
SU 08/27 16:08 + pts/3 root-test
SU 08/28 11:12 + ??? root-root
SU 08/28 11:17 + pts/3 root-test
SU 08/28 12:14 + ??? root-root
SU 08/28 12:22 + pts/3 root-test
SU 08/28 12:25 + ??? root-root
SU 08/28 12:25 + pts/3 root-test
SU 08/28 12:35 + ??? root-root
SU 08/28 12:35 + pts/3 root-test

/var/adm/wtmpx

La commande last indique les dates et heures des dernières connexions des utilisateurs lues à partir du fichier binaire /var/adm/wtmpx :

# last
root      pts/3        :0.0             Tue Aug 28 13:49   encore connecté
root      pts/3        :0.0             Tue Aug 28 13:32 - 13:49  (00:16)
root      pts/3        :0.0             Tue Aug 28 12:35 - 12:39  (00:03)
root      console      :0               Tue Aug 28 12:35   encore connecté
test      console      :0               Tue Aug 28 12:32 - 12:35  (00:02)
root      pts/3        :0.0             Tue Aug 28 12:25 - 12:32  (00:06)
root      console      :0               Tue Aug 28 12:25 - 12:32  (00:06)
test      console      :0               Tue Aug 28 12:23 - 12:25  (00:01)
root      pts/3        :0.0             Tue Aug 28 12:16 - 12:23  (00:06)
root      console      :0               Tue Aug 28 12:14 - 12:23  (00:08)
reboot    system boot                   Tue Aug 28 12:14
reboot    system down                   Tue Aug 28 12:13
root      pts/3        :0.0             Tue Aug 28 11:13 - 12:13  (01:00)
root      console      :0               Tue Aug 28 11:12 - arrêté   (01:01)
reboot    system boot                   Tue Aug 28 11:11
reboot    system down                   Mon Aug 27 17:30
root      pts/4        :0.0             Mon Aug 27 14:26 - 16:16  (01:50)
root      pts/3        :0.0             Mon Aug 27 09:39 - arrêté  (1+01:32
root      console      :0               Mon Aug 27 09:39 - arrêté  (1+01:32
reboot    system boot                   Mon Aug 27 09:38
reboot    system down                   Fri Aug 24 12:03
root      pts/3        :0.0             Fri Aug 24 11:57 - arrêté  (2+21:40
root      console      :0               Fri Aug 24 11:56 - arrêté  (2+21:41
reboot    system boot                   Fri Aug 24 11:56
reboot    system down                   Fri Aug 24 11:55
root      pts/3        :0.0             Fri Aug 24 11:45 - arrêté   (00:10)
root      console      :0               Fri Aug 24 11:45 - arrêté   (00:10)
reboot    system boot                   Fri Aug 24 11:44
reboot    system down                   Thu Aug 23 16:34
root      pts/3        :0.0             Thu Aug 23 14:05 - arrêté   (21:39)
root      pts/3        :0.0             Wed Aug 22 14:43 - 13:59  (23:16)
root      console      :0               Wed Aug 22 14:35 - arrêté  (1+21:08
reboot    system boot                   Wed Aug 22 14:35
reboot    system down                   Wed Aug 22 14:34
root      pts/3        :0.0             Fri Aug 17 09:12 - 14:34 (5+05:22)
root      console      :0               Fri Aug 17 09:08 - arrêté  (5+05:26
reboot    system boot                   Fri Aug 17 10:07
reboot    system down                   Thu Aug 16 17:20
root      pts/3        :0.0             Thu Aug 16 17:01 - 17:12  (00:10)
root      pts/3        :0.0             Thu Aug 16 12:09 - 16:54  (04:44)
root      pts/3        :0.0             Tue Aug 14 14:38 - 12:07 (1+21:29)
root      console      :0               Tue Aug 14 14:31 - arrêté  (2+19:36
reboot    system boot                   Tue Aug 14 15:12
reboot    system down                   Mon Jan 30 11:59
root      console      :0               Mon Jan 30 11:56 - arrêté  (197+02:
reboot    system boot                   Mon Jan 30 11:53
reboot    system down                   Sun Dec  4 13:40
root      console      :0               Sun Dec  4 13:39 - arrêté  (56+22:1
reboot    system boot                   Sun Dec  4 13:38
reboot    system down                   Sun Mar 13 15:18
root      console      :0               Sun Mar 13 15:18 - arrêté  (265+22:
root      pts/3        :0.0             Sun Mar 13 15:08 - 15:18  (00:09)
root      console      :0               Sun Mar 13 15:08 - 15:18  (00:10)
reboot    system boot                   Sun Mar 13 15:07
reboot    system down                   Thu Jan 14 15:17
root      console      :0               Thu Jan 14 15:16 - arrêté  (422+23:
reboot    system boot                   Thu Jan 14 14:22
reboot    system down                   Sun Jan  3 08:52
root      console      :0               Sun Jan  3 08:51 - arrêté  (11+05:3
reboot    system boot                   Sun Jan  3 08:43

début de wtmp : Sun Jan  3 08:43

/var/adm/utmpx

La commande whodo indique qui fait quoi sur le système à l'instant t. L'information provient des fichiers /var/adm/utmpx et /proc/<pid> :

# whodo
mardi 28 août 2012 14 h 31 CEST
unknown

console      root     12:35
      ?          24578    0:00 Xsession
      ?          24624    0:00 Xsession
      ?          24679    0:00 sconadm
      ?          24687    0:03 java
      ?          24727    0:00 sh
      ?          24831    0:00 csm
      ?          24837    0:00 init-scn-base
      ?           3052    0:00 sleep
      ?          24832    0:00 sconadm
      ?          24667    0:00 dsdm
    pts/2        24660    0:00 sdt_shell
    pts/2        24662    0:00 sh
    pts/2        24697    0:00 Xsession2.jds
    pts/2        24699    0:00 gnome-session
    pts/2        24708    0:00 gnome-keyring-d
    pts/2        24705    0:03 gconfd-2
    pts/2        24710    0:00 xscreensaver
      ?          25640    0:13 java

pts/3        root     13:49
      ?          26489    0:01 gnome-terminal
    pts/3        26492    0:00 sh
    pts/3         3053    0:00 whodo
      ?          26490    0:00 gnome-pty-helpe

syslogd

Syslog

Syslog centralise les journaux du système grâce au daemon syslogd. Chaque daemon qui le souhaite peut communiquer avec syslogd via le port 514/udp ou via une socket unix. Les messages de journalisation envoyés à syslogd sont taggés avec un sous-système applicatif et une priorite.

# cat /etc/services | grep 514/udp
syslog          514/udp

Syslogd décide ensuite de l'action à entreprendre concernant les informations transmises :

  • ignorer les informations
  • envoyer les informations à un syslogd sur une autre machine
  • inscrire les informations dans un fichier sur disque
  • transmettre les informations à un utilisateur
  • transmettre les informations à tous les utilisateurs
  • transmettre les informations à une application liée à syslogd via un tube

Sous-systèmes applicatifs

Le Sous-système applicatif, aussi appelé facility, permet d'indiquer à syslogd le type de programme qui envoie les informations

Sous-système applicatif Description
auth Message de sécurité / autorisation
security Message de sécurité / autorisation
auth-priv Message de sécurité / autorisation privé
cron Message de cron ou at
daemon Message d'un daemon
ftp Message du daemon ftp
kern Message du noyau
local0 - local7 Message d'une application
lpr Message du système d'impression
mail Message du système de mail
news Message du système de news
syslog Message interne de syslogd
user Message utilisateur
uucp Message du système UUCP
mark Message interne

Priorités

La priorité détermine l'importance des informations :

Priorité Description
emerg Système inutilisable
panic Système inutilisable
alert Action immédiate requise
crit Condition critique atteinte
err (error) Erreurs rencontrées
warn (warning) Avertissements présentés
notice Condition normale - message important
info Condition normale - message simple
debug Condition normale - message de débogage

/etc/syslog.conf

syslogd est configuré par le fichier /etc/syslog.conf :

# cat /etc/syslog.conf
#ident  "@(#)syslog.conf        1.5     98/12/14 SMI"   /* SunOS 5.0 */
#
# Copyright (c) 1991-1998 by Sun Microsystems, Inc.
# All rights reserved.
#
# syslog configuration file.
#
# This file is processed by m4 so be careful to quote (`') names
# that match m4 reserved words.  Also, within ifdef's, arguments
# containing commas must be quoted.
#
*.err;kern.notice;auth.notice                   /dev/sysmsg
*.err;kern.debug;daemon.notice;mail.crit        /var/adm/messages

*.alert;kern.err;daemon.err                     operator
*.alert                                         root

*.emerg                                         *

# if a non-loghost machine chooses to have authentication messages
# sent to the loghost machine, un-comment out the following line:
#auth.notice                    ifdef(`LOGHOST', /var/log/authlog, @loghost)

mail.debug                      ifdef(`LOGHOST', /var/log/syslog, @loghost)

#
# non-loghost machines will use the following lines to cause "user"
# log messages to be logged locally.
#
ifdef(`LOGHOST', ,
user.err                                        /dev/sysmsg
user.err                                        /var/adm/messages
user.alert                                      `root, operator'
user.emerg                                      *
)

La syntaxe du fichier /etc/syslog.conf est la suivante :

Sélecteur[; ...]  [-] Action

Un Sélecteur est défini d'une des façons suivantes :

Sous-système applicatif.Priorité

Dans ce cas on ne tient compte que des messages de priorité égale ou supérieure à la Priorité indiquée.

Sous-système applicatif!Priorité

Dans ce cas on ne tient compte que des messages de priorité inférieure à la Priorité indiquée.

Sous-système applicatif=Priorité

Dans ce cas on ne tient compte que des messages de priorité égale à la Priorité indiquée.

L'utilisation du caractère spécial *

La valeur du Sous-système applicatif et/ou de la Priorité peut également être *. Dans ce cas, toutes les valeurs possibles du Sous-système applicatif et/ou de la Priorité sont concernées, par exemple : *.emerg.

n Sous-systèmes avec la même priorité

Plusieurs Sous-systèmes applicatifs peuvent être stipulés pour la même Priorité en les séparant avec un virgule. Par exemple : root, operator.

n Sélecteurs avec la même Action

Une Action peut s'appliquer à plusieurs Sélecteurs en les séparant par le caractère ;, par exemple : *.alert;kern.err;daemon.err.

Une Action précédée par le signe - est entreprise d'une manière asynchrone. Dans le cas ou l'action est entreprise d'une manière synchrone, la pertinence des journaux est garantie mais au prix d'un ralentissement du système.

/usr/bin/logger

La commande /usr/bin/logger permet d'intégrer des informations dans syslog. Ceci peut s'avérer utile dans des scripts bash.

La syntaxe de la commande est :

logger -p Sous-système applicatif.Priorité message

Par exemple saisissez la commande suivante :

# logger -p user.err Unix est super

Consultez ensuite le fichier /var/adm/messages. Vous obtiendrez un résultat similaire à celui-ci :

# tail /var/adm/messages
Aug 29 09:55:48 unknown rootnex: [ID 349649 kern.info] xsvc0 at root
Aug 29 09:55:48 unknown genunix: [ID 936769 kern.info] xsvc0 is /xsvc
Aug 29 09:56:40 unknown sendmail[393]: [ID 702911 mail.alert] unable to qualify my own domain name (unknown) -- using short name
Aug 29 09:56:40 unknown sendmail[394]: [ID 702911 mail.alert] unable to qualify my own domain name (unknown) -- using short name
Aug 29 09:57:15 unknown pseudo: [ID 129642 kern.info] pseudo-device: devinfo0
Aug 29 09:57:15 unknown genunix: [ID 936769 kern.info] devinfo0 is /pseudo/devinfo@0
Aug 29 11:43:49 unknown root: [ID 702911 user.error] Unix est super
Aug 29 11:43:49 unknown root: [ID 702911 user.error] Unix est super

/usr/sbin/logadm

Les fichiers journaux grossissent régulièrement. Le programme /usr/sbin/logadm est utilisé pour effectuer des rotations de ces fichiers selon la configuration contenue dans le fichier /etc/logadm.conf.

Visualisez le fichier /etc/logadm.conf :

# cat /etc/logadm.conf
# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident  "@(#)logadm.conf        1.7     07/01/10 SMI"
#
# logadm.conf
#
# Default settings for system log file management.
# The -w option to logadm(1M) is the preferred way to write to this file,
# but if you do edit it by hand, use "logadm -V" to check it for errors.
#
# The format of lines in this file is:
#       <logname> <options>
# For each logname listed here, the default options to logadm
# are given.  Options given on the logadm command line override
# the defaults contained in this file.
#
# logadm typically runs early every morning via an entry in
# root's crontab (see crontab(1)).
#
/var/log/syslog -C 8 -a 'kill -HUP `cat /var/run/syslog.pid`'
/var/adm/messages -C 4 -a 'kill -HUP `cat /var/run/syslog.pid`'
/var/cron/log -c -s 512k -t /var/cron/olog
/var/lp/logs/lpsched -C 2 -N -t '$file.$N'
/var/fm/fmd/errlog -N -s 2m -M '/usr/sbin/fmadm -q rotate errlog && mv /var/fm/fmd/errlog.0- $nfile'
/var/fm/fmd/fltlog -N -A 6m -s 10m -M '/usr/sbin/fmadm -q rotate fltlog && mv /var/fm/fmd/fltlog.0- $nfile'
smf_logs /var/svc/log/*.log -C 8 -s 1m
#
# The entry below is used by turnacct(1M)
#
/var/adm/pacct -C 0 -N -a '/usr/lib/acct/accton pacct' -g adm -m 664 -o adm -p never
#
# The entry below manages the Dynamic Resource Pools daemon (poold(1M)) logfile.
#
/var/log/pool/poold -N -s 512k -a 'pkill -HUP poold; true'

Dans ce fichier, le format de chaque ligne est :

nomjournal [espace] options

Les options les plus importantes de la commande sont :

Option Explication
-C Suppression des anciens fichiers de journalisation jusqu'à ce qu'il ne reste que C fichiers. Cette option définit donc le nombre d'anciens fichiers de journalisation à garder sur disque
-a Exécuter la commande qui suit après la rotation de journal
-s La rotation n'a lieu que si la taille du fichier de journalisation est égale ou supérieur à la valeur indiquée
-P La rotation n'a lieu qu'après la période indiquée

En règle générale, le renommage d'un fichier journal lors de la rotation de celui-ci suit une règle spécifique. Prenons l'exemple d'un fichier de journal nommé journal :

nom Description
journal Le fichier journal courant
journal.0 Le fichier journal avant la dernière rotation
journal.1 Le fichier journal avant l-avant-dernière rotation

Références


<html> <center> Copyright © 2011-2018 I2TCH LIMITED.<br><br> </center> </html>

Menu