Unix / Linux - Journalisation du système

Dans ce chapitre, nous discuterons en détail de la journalisation système sous Unix.

Les systèmes Unix ont un système de journalisation très flexible et puissant, qui vous permet d'enregistrer presque tout ce que vous pouvez imaginer, puis de manipuler les journaux pour récupérer les informations dont vous avez besoin.

De nombreuses versions d'Unix fournissent une fonction de journalisation à usage général appelée syslog. Les programmes individuels qui doivent avoir des informations enregistrées, envoient les informations à syslog.

Unix syslog est une fonction de journalisation système uniforme configurable par l'hôte. Le système utilise un processus de journalisation système centralisé qui exécute le programme/etc/syslogd ou /etc/syslog.

Le fonctionnement de l'enregistreur système est assez simple. Les programmes envoient leurs entrées de journal à syslogd , qui consulte le fichier de configuration/etc/syslogd.conf ou /etc/syslog et, lorsqu'une correspondance est trouvée, écrit le message de journal dans le fichier journal souhaité.

Il y a quatre termes syslog de base que vous devez comprendre -

Sr.No. Terme et description
1

Facility

Identificateur utilisé pour décrire l'application ou le processus qui a soumis le message de journal. Par exemple, mail, noyau et ftp.

2

Priority

Un indicateur de l'importance du message. Les niveaux sont définis dans Syslog en tant que directives, des informations de débogage aux événements critiques.

3

Selector

Une combinaison d'une ou plusieurs installations et niveaux. Lorsqu'un événement entrant correspond à un sélecteur, une action est effectuée.

4

Action

Qu'advient-il d'un message entrant qui correspond à un sélecteur - Les actions peuvent écrire le message dans un fichier journal, envoyer le message à une console ou à un autre périphérique, écrire le message à un utilisateur connecté ou envoyer le message à un autre serveur syslog.

Installations Syslog

Nous allons maintenant comprendre les fonctionnalités de syslog. Voici les fonctionnalités disponibles pour le sélecteur. Toutes les fonctionnalités ne sont pas présentes sur toutes les versions d'Unix.

Établissement La description
1

auth

Activité liée à la demande de nom et de mot de passe (getty, su, login)

2

authpriv

Identique à auth mais connecté à un fichier qui ne peut être lu que par les utilisateurs sélectionnés

3

console

Utilisé pour capturer les messages qui sont généralement dirigés vers la console système

4

cron

Messages du planificateur du système cron

5

daemon

Démon système fourre-tout

6

ftp

Messages relatifs au démon ftp

sept

kern

Messages du noyau

8

local0.local7

Installations locales définies par site

9

lpr

Messages du système d'impression en ligne

dix

mail

Messages relatifs au système de messagerie

11

mark

Pseudo-événement utilisé pour générer des horodatages dans les fichiers journaux

12

news

Messages relatifs au protocole de nouvelles du réseau (nntp)

13

ntp

Messages relatifs au protocole de temps réseau

14

user

Processus utilisateurs réguliers

15

uucp

Sous-système UUCP

Priorités Syslog

Les priorités syslog sont résumées dans le tableau suivant -

Sr.No. Priorité et description
1

emerg

Condition d'urgence, telle qu'une panne système imminente, généralement diffusée à tous les utilisateurs

2

alert

Condition qui doit être corrigée immédiatement, telle qu'une base de données système corrompue

3

crit

Condition critique, telle qu'une erreur matérielle

4

err

Erreur ordinaire

5

Warning

Attention

6

notice

Condition qui n'est pas une erreur, mais qui devrait éventuellement être gérée d'une manière spéciale

sept

info

Message d'information

8

debug

Messages utilisés lors du débogage des programmes

9

none

Pseudo niveau utilisé pour spécifier de ne pas consigner les messages

La combinaison des fonctionnalités et des niveaux vous permet de discerner ce qui est enregistré et où ces informations vont.

Au fur et à mesure que chaque programme envoie ses messages consciencieusement à l'enregistreur système, l'enregistreur prend des décisions sur les éléments à suivre et à rejeter en fonction des niveaux définis dans le sélecteur.

Lorsque vous spécifiez un niveau, le système gardera une trace de tout à ce niveau et plus.

Le fichier /etc/syslog.conf

le /etc/syslog.conffichier contrôle où les messages sont enregistrés. Un typiquesyslog.conf le fichier pourrait ressembler à ceci -

*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice           /var/log/messages
lpr.info                     /var/log/lpr.log
mail.*                       /var/log/mail.log
ftp.*                        /var/log/ftp.log
auth.*                       @prep.ai.mit.edu
auth.*                       root,amrood
netinfo.err                  /var/log/netinfo.log
install.*                    /var/log/install.log
*.emerg                      *
*.alert                      |program_name
mark.*                       /dev/console

Chaque ligne du fichier contient deux parties -

  • UNE message selectorqui spécifie le type de messages à consigner. Par exemple, tous les messages d'erreur ou tous les messages de débogage du noyau.

  • Un action fieldcela dit ce qu'il faut faire avec le message. Par exemple, placez-le dans un fichier ou envoyez le message au terminal d'un utilisateur.

Voici les points notables pour la configuration ci-dessus -

  • Les sélecteurs de messages comportent deux parties: a facility et a priority. Par exemple, kern.debug sélectionne tous les messages de débogage (la priorité) générés par le noyau (la fonction).

  • Le sélecteur de messages kern.debug sélectionne toutes les priorités supérieures à debug.

  • Un astérisque à la place de la fonction ou de la priorité indique «tout». Par exemple,*.debug signifie tous les messages de débogage, tandis que kern.* signifie tous les messages générés par le noyau.

  • Vous pouvez également utiliser des virgules pour spécifier plusieurs installations. Deux sélecteurs ou plus peuvent être regroupés en utilisant un point-virgule.

Actions de journalisation

Le champ d'action spécifie l'une des cinq actions -

  • Enregistrez le message dans un fichier ou un appareil. Par exemple,/var/log/lpr.log ou /dev/console.

  • Envoyez un message à un utilisateur. Vous pouvez spécifier plusieurs noms d'utilisateur en les séparant par des virgules; par exemple, root, amrood.

  • Envoyez un message à tous les utilisateurs. Dans ce cas, le champ d'action se compose d'un astérisque; par exemple, *.

  • Dirigez le message vers un programme. Dans ce cas, le programme est spécifié après le symbole du tube Unix (|).

  • Envoyez le message au syslog sur un autre hôte. Dans ce cas, le champ d'action se compose d'un nom d'hôte, précédé d'un arobase; par exemple, @ tutorialspoint.com.

La commande logger

Unix fournit le loggercommande, qui est une commande extrêmement utile pour gérer la journalisation du système. lelogger La commande envoie des messages de journalisation au démon syslogd et provoque par conséquent la journalisation du système.

Cela signifie que nous pouvons vérifier à tout moment depuis la ligne de commande syslogddémon et sa configuration. La commande logger fournit une méthode pour ajouter des entrées sur une ligne au fichier journal système à partir de la ligne de commande.

Le format de la commande est -

logger [-i] [-f file] [-p priority] [-t tag] [message]...

Voici le détail des paramètres -

Sr.No. Option et description
1

-f filename

Utilise le contenu du fichier filename comme message à consigner.

2

-i

Enregistre l'ID de processus du processus de journalisation avec chaque ligne.

3

-p priority

Entre le message avec la priorité spécifiée (entrée de sélecteur spécifiée); la priorité du message peut être spécifiée numériquement ou sous la forme d'une paire installation.prioritaire. La priorité par défaut est user.notice.

4

-t tag

Marque chaque ligne ajoutée au journal avec la balise spécifiée.

5

message

Arguments de chaîne dont le contenu est concaténé dans l'ordre spécifié, séparés par l'espace.

Vous pouvez utiliser l' aide de la page de manuel pour vérifier la syntaxe complète de cette commande.

Rotation du journal

Les fichiers journaux ont tendance à croître très rapidement et à consommer de grandes quantités d'espace disque. Pour activer les rotations des journaux, la plupart des distributions utilisent des outils tels quenewsyslog ou logrotate.

Ces outils doivent être appelés à intervalles fréquents en utilisant le cron daemon. Consultez les pages de manuel pour newsyslog ou logrotate pour plus de détails.

Emplacements de journaux importants

Toutes les applications système créent leurs fichiers journaux dans /var/loget ses sous-répertoires. Voici quelques applications importantes et leurs répertoires de journaux correspondants -

Application Annuaire
httpd / var / log / httpd
samba / var / log / samba
cron / var / log /
courrier / var / log /
mysql / var / log /