Guide de journalisation Linux Partie 1 : Principes de base
Linux est un système d’exploitation open source dérivé du noyau Unix. C’est aujourd’hui l’un des systèmes d’exploitation les plus utilisés sur les appareils. Vous connaissez peut-être diverses versions de Linux, notamment Ubuntu, Centos et Red Hat Enterprise Linux (RHEL). Leur noyau Linux commun signifie que tous ces systèmes d’exploitation ont un cadre de journalisation installé pour surveiller le système et ses services.
La structure de journalisation pour Linux comprend un ensemble de répertoires, de fichiers, de services et de commandes que les administrateurs peuvent utiliser. En tant qu’administrateur système Linux, il est essentiel de connaître les emplacements, les commandes et les configurations des journaux Linux pour résoudre les problèmes liés aux systèmes ou aux applications que vous administrez.
Cet article fait partie d’une série en deux parties sur la journalisation Linux. Dans la première partie, nous passerons en revue les bases des journaux Linux : le cadre de journalisation Linux standard, les emplacements de ces fichiers journaux et les différents types de démons et de protocoles de journalisation. -log (tels que syslog et rsyslog). Enfin, nous passerons en revue certaines commandes de journal Linux courantes pour lire et rechercher les journaux sur un système.
Journaux Linux courants et leurs emplacements
En utilisant le modèle de journaux Linux, vous pouvez voir les journaux situés sous le /var/log
répertoire, avec des fichiers et des répertoires pour chaque service ou flux de messages de journal dans le système. Les fichiers journaux courants incluent :
/var/log/syslog
(Debian) ou/var/log/messages
(RHEL) : il s’agit d’un flux intégré de messages et de métriques généraux du système. Dans ce fichier journal, vous pouvez trouver des messages provenant de services tels que la messagerie, le noyau, l’authentification et cron./var/log/auth.log
(Debian) ou/var/log/secure
(RHEL) : ce fichier contient les journaux d’authentification pour les tentatives réussies et échouées de connexion au système./var/log/wtmp
: Ce fichier contient l’historique de toutes les activités de connexion et de déconnexion des utilisateurs pour l’audit de l’activité des utilisateurs dans le système./var/log/lastlog
: Semblable àwtmp
audit, ce fichier journal trace les dernières connexions des utilisateurs. Ceci est un fichier binaire que vous pouvez lirelastlog
ordre/var/log/kern.log
: Ce fichier contient des messages de journal produits par le noyau avant d’être transmis à un service de journalisation système (tel que rsyslog) pour un traitement ultérieur./var/log/cron
: Le service cron s’exécute en tant qu’orchestrateur pour démarrer des tâches à des intervalles planifiés. Les messages de ce service, tels que le démarrage d’une tâche cron et si des erreurs se produisent lors de son exécution, peuvent être trouvés dans ce fichier journal.
Lors de l’exécution de services sur vos systèmes tels que PostgreSQL ou Apache, vos journaux spécifiques à l’application sont mis à disposition dans des sous-répertoires dans /var/log
. Par exemple, si vous exécutez un serveur Web Apache sur votre système Linux basé sur Debian, vous trouverez les fichiers journaux sous le /var/log/apache2
annuaire. Vous trouverez des fichiers séparés pour chaque flux de journaux dans ce répertoire, tels que access.log
ou la error.log
.
Présentation de Syslog
Syslog est un protocole de journalisation basé sur le réseau qui surveille vos systèmes et vos applications. Ce protocole fournit un moyen commun pour les services et les applications de signaler leurs journaux. De cette façon, ils peuvent être traités et redirigés au besoin.
Format de message standardisé
Le protocole syslog fournit un format de message défini par la norme RFC 5424. Dans ce format, des informations d’événement communes sont spécifiées, telles que l’horodatage, le nom d’hôte et le nom de l’application qui a créé le message. Pour mieux prendre en charge cette structuration des messages, les fonctions syslog peuvent être utilisées pour spécifier de quelle partie du système provient le journal. Cela se fait en joignant un numéro au message. Vous trouverez ci-dessous une liste de toutes les installations disponibles, numérotées de 0 à 23 :
Code des installations | Mots clés | La description |
---|---|---|
0 | noyau | Messages du noyau |
1 | utilisateur | Messages au niveau de l’utilisateur |
2 | courrier | Système de messagerie |
3 | démon | Démons système |
4 | authentification | Messages de sécurité/d’autorisation |
5 | journal système | Messages générés dans syslogd |
6 | Lpr | Sous-système d’imprimante en ligne |
sept | nouvelles | Sous-système de nouvelles du réseau |
8 | uucp | Sous-système UUCP |
9 | cron | Démon de l’horloge |
dix | authpriv | Messages de sécurité/d’authentification |
11 | ftp | Démon FTP |
12 | etc | Sous-système NTP |
13 | Sécurité | Journal d’audit |
14 | console | Alerte de journal |
15 | l’horloge | Démon de l’horloge |
16-23 | local0 – local7 | Installations utilisées localement |
De même, la priorité peut être attachée à un message en utilisant un nombre compris entre 0 et 7.
Code des installations | Mots clés | La description |
---|---|---|
0 | urgence | Le système est indisponible |
1 | alerte | Doit agir immédiatement |
2 | dangereux | Conditions critiques |
3 | erreur | Conditions d’erreur |
4 | Attention | Conditions d’avertissement |
5 | remarquer | État normal mais significatif |
En utilisant à la fois les fonctionnalités et les priorités des messages syslog, les outils qui accèdent aux données syslog peuvent désormais filtrer les messages en fonction de la fonctionnalité d’origine et de la gravité des messages. Nous en verrons un exemple dans la section suivante.
Implémentations du protocole Syslog
Le journal système traiter s’exécute en tant que démon sur le système pour recevoir, stocker et interpréter les messages syslog d’autres services ou applications. Ce service écoute généralement sur le port 514
pour TCP et 601
pour les connexions UDP. De nombreuses applications vous permettent de configurer leur journalisation des événements pour pousser les messages vers un service syslog en cours d’exécution.
Le protocole syslog est également mis en œuvre par divers services tels que rsyslog et syslog-ng, vous permettant de choisir un service en fonction de l’ensemble de fonctionnalités dont vous avez besoin. Étant donné que ces services sont alignés sur le protocole syslog, ils sont interchangeables pour la journalisation du système et des applications, ce qui les rend hautement évolutifs.
Le démon Rsyslog
Rsyslog est une implémentation open source moderne du démon syslog, offrant une conception modulaire hautes performances, axée sur la sécurité, pour n’importe quel environnement. Le démon rsyslog s’exécute en tant que service sur votre hôte, écoutant les messages de journal qui lui sont envoyés et acheminant ces messages en fonction d’actions spécifiées.
Dans une installation typique de rsyslog, le démon est configuré via un fichier situé dans le /etc/rsyslog.conf
. Dans ce fichier de configuration, l’utilisation de sélecteurs pour les installations de message de journal et la priorité vous permet de spécifier l’action à entreprendre pour le message. Dans l’exemple suivant, tous les messages avec la fonction de mail
et une priorité de notice
ou supérieur sera écrit dans un fichier journal situé à /var/log/mail_errors
.
#. mail.notice /var/log/mail_errors
Ces sélecteurs sont organisés par fonctionnalité (source du message) et priorité (gravité du message), séparés par un point. L’exemple ci-dessous montre quelques possibilités d’utilisation de cette configuration simple pour effectuer des actions sur les journaux entrants.
# Log a message to file mail.notice /var/log/mail_errors # Log a message to a user Kern.debug bob # Emergency messages from any facility should go to all users *.emerg * # Log a message to another host over UDP *.* @remote-host # Log a message to another host over TCP *.* @@remote-host:514
Commandes de base pour la journalisation Linux
En tant qu’administrateur de serveurs Linux, vous vous connectez souvent à ces serveurs pour lire les messages du journal afin de dépanner les systèmes ou les services qui y sont exécutés. De nombreuses commandes utilitaires sont disponibles sur les systèmes Linux, ce qui simplifie la navigation dans les messages de journal stockés. La section suivante décrit certaines commandes de journal de base disponibles :
cat
: Court pour lienqui permet de visualiser le contenu d’un ou plusieurs fichiers dans le terminal.more
: Pareil quecat
utilitaire, cette commande lit le contenu des fichiers dans le terminal. Cependant, cet utilitaire l’affichera de manière interactive une page à la fois pour une expérience de lecture manuelle plus facile.less
: Semblable àmore
utilitaire, cette commande affiche un écran de terminal de contenu à la fois, ce qui facilite la navigation dans les fichiers texte volumineux.tail
: Par défaut,tail
affiche les dix dernières lignes écrites dans un fichier. En utilisant l’option suivante (-f
o--follow
) vous permet de suivre le fichier en continu. Au fur et à mesure que de nouvelles lignes sont écrites, elles sont imprimées sur le terminal de l’utilisateur.head
: Cet utilitaire est à l’opposé detail
commande, en extrayant les lignes de départ d’un fichier. Par défaut,head
affichera les dix premières lignes d’un fichier.grep
: Cette commande vous permet d’analyser la saisie de texte à l’aide de filtres et de regex pour trouver des modèles spécifiques dans le texte. Ceci est utile pour rechercher et manipuler du texte dans des scripts ou une automatisation.
À l’aide de ces commandes de base, vous pouvez facilement accéder et naviguer dans les messages du journal de votre système. En utilisant des tuyaux (|
) dans vos commandes, vous pouvez enchaîner plusieurs commandes ensemble, en filtrant encore plus leurs sorties. Par exemple, l’ensemble de commandes suivant lira le contenu du /var/log/cron
fichier et voir si des messages contiennent la chaîne foo
.
cat /var/log/cron | grep "foo"
Les opérations de journalisation avancées peuvent également être effectuées avec d’autres commandes telles que awk
, cut
et avancé grep
filtres, qui vous permettent de mieux comprendre ce qui se passe dans votre système.
Enregistrez tout, répondez à tout – Gratuit
Falcon LogScale Community Edition (anciennement Humio) offre une plate-forme de gestion de journaux moderne et gratuite pour le cloud. Utilisez l’ingestion de données en continu pour obtenir une visibilité instantanée sur les systèmes distribués et prévenir et résoudre les incidents.
Falcon LogScale Community Edition, disponible immédiatement sans frais, comprend les éléments suivants :
- Consommez jusqu’à 16 Go par jour
- 7 jours de rétention
- Pas de carte de crédit nécessaire
- Accès continu sans période d’essai
- Journalisation sans index, alertes en temps réel et tableaux de bord en direct
- Accédez à notre place de marché et à nos packages, y compris des guides pour créer de nouveaux packages
- Apprendre et collaborer dans une communauté active
Commencez gratuitement