Lorsque vous rencontrez des problèmes avec les performances de votre serveur, la première chose à faire est de vérifiez vos journaux LinuxDans le journal système, vous pouvez trouver des messages de diagnostic utiles provenant de différents composants du système d'exploitation comme le noyau ou divers services, vous y trouverez donc très probablement la cause de l'échec.
Chaque message du journal est généré suite à certains événements du système d'exploitation : utilisateur, autorisation, arrêt de service ou défaillance d'application. Ces événements ont des priorités différentes selon leur criticité. Voici les types d'événements sous Linux :
emerg- échec, priorité la plus élevée ;alert- avertissement urgent ;crit- événement critique ;err- erreur ordinaire ;warn- avertissement ordinaire ;notice- notification;info- message d'information;debug- informations de débogage ;
À l’heure actuelle, les principaux services de collecte de journaux sous Linux sont rsyslog et systemd-journalIls sont compatibles avec la plupart des packages de distribution modernes et fonctionnent de manière indépendante.
rsyslog
Les journaux de ce service se trouvent dans «/ var / log /« » sous forme de fichiers texte ordinaires. Les messages de journal sont placés dans différents fichiers selon le type d'événement. Par exemple : « /var/log/auth.log" contient des informations sur l'autorisation des utilisateurs dans le système, et "/var/log/kern.log« » contient les messages du noyau. Les noms de fichiers peuvent varier selon les distributions. Examinons donc le fichier de configuration pour comprendre où se trouve le fichier./etc/rsyslog.d/50-default.conf ».
Ces règles indiquent le fichier contenant chaque type de message de journal. La partie gauche affiche le type de message sous la forme suivante : « [Source].[Priorité]« » et la partie droite affiche le nom du fichier journal. Lors de la saisie du type de message, « *Le caractère « » peut être ajouté. Il signifie une valeur vide ou « »aucun« ce qui le retire de la liste. Examinons de plus près les deux premières règles.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
La première règle signifie que tous les messages reçus du mécanisme d’autorisation seront enregistrés dans «/var/log/auth.logToutes les tentatives d'autorisation (réussies ou non) seront enregistrées dans ce fichier. La deuxième règle stipule que tous les messages, à l'exception de ceux liés à l'autorisation, seront enregistrés dans le fichier « »./ var / log / syslogFichier. Ces deux fichiers sont généralement les plus utilisés. Les règles suivantes définissent le chemin d'accès pour stocker les journaux du noyau.crénage.*« et les journaux du service de messagerie »mail.* »
Les fichiers journaux peuvent être ouverts à l’aide de n’importe quel éditeur de texte, comme moins, cat, queue. Ouvrons le «/var/log/auth.log" déposer
less /var/log/auth.log
Chaque ligne du fichier correspond à un message distinct reçu de l'application ou du service. Tous les messages, quelle que soit leur source, ont un format unique et sont composés de cinq parties. Prenons l'exemple du message mis en évidence dans la capture d'écran.
- Horodatage du message : « 12 févr. 06:18:33 »
- Nom de l'ordinateur qui a envoyé le message - « vds »
- Nom de l'application ou du service qui a envoyé le message - « sshd »
- ID de processus - [653]
- Texte du message : « Mot de passe accepté pour mihail depuis 188.19.42.165 port 2849 ssh2 »
Il s’agit d’un exemple de connexion réussie à SSH.
Et voici à quoi ressemble une tentative de connexion infructueuse :
Ce fichier enregistre également les commandes avec des autorisations avancées
Ouvrons le / var / log / syslog filet
Un message mis en évidence sur la capture d'écran est le message concernant l'arrêt de l'interface réseau.
Pour rechercher des informations dans de longs fichiers texte, utilisez grep utilitaire. Vous pouvez retrouver tous les messages reçus de pptpd service dans le «/ var / log / syslog" fichier.
grep 'pptpd' /var/log/syslog
Pendant le diagnostic, vous pouvez utiliser queue Utilitaire permettant d'afficher plusieurs dernières lignes de fichiers. Commande « tail -f / var / log / syslog" vous permettra de regarder les journaux d'enregistrement en temps réel.
Le service rsyslog est très flexible et puissant. Il permet de collecter des journaux sur des systèmes locaux comme à l'échelle de l'entreprise. Vous trouverez la documentation complète sur le site officiel. https://www.rsyslog.com/
Rotation des journaux sous Linux
L'enregistrement des journaux est continu, la taille des fichiers augmentant donc constamment. Un mécanisme de rotation assure l'archivage automatique des anciens journaux et la création de nouveaux fichiers. Selon les règles, l'archivage peut être quotidien, hebdomadaire, mensuel ou limité. À mesure que de nouveaux journaux sont créés, les anciens peuvent être supprimés ou envoyés par e-mail. La rotation des journaux est effectuée par tourner utilitaire. Vous trouverez la configuration principale dans «/etc/logrotate.conf" fichier. Le contenu des fichiers est également traité dans "/etc/logrotate.d/"Dossier"
Les nouvelles règles peuvent être enregistrées dans le fichier de configuration principal. Cependant, il est préférable de créer un fichier séparé dans « /etc/logrotate.d/Par défaut, il y a quelques fichiers dans ce répertoire
Jetons un oeil au fichier «/etc/logrotate.d/rsyslog" qui contient des règles de rotation pour les journaux de la rsyslog après-vente.
Tout d'abord, la règle doit contenir le chemin d'accès au fichier journal, puis toutes les lignes directrices entre crochets incurvés.
- faire pivoter 7 - nombre de fichiers à conserver - 7
- Tous les jours - créer un nouveau fichier chaque jour
- compresser - compresser et archiver les anciens fichiers
Vous pouvez voir sur la capture d'écran que dans le «/ var / log /« dossier où se trouvent les journaux principaux »syslog" et 7 archives, ce qui correspond aux règles du fichier de configuration.
Vous pouvez trouver une description plus détaillée de logrotate dans le manuel, en exécutant la commande «homme logrotate”Commande
Collecte des journaux Linux - journald
Service de récolte de grumes systemd-journal fait partie du système d'initialisation systemdLes fichiers journaux Linux sont stockés dans «/var/log/journal/" dans un format spécial et peut être ouvert à l'aide de journalctl utilitaire. Le format des enregistrements est exactement le même que dans rsyslog.
Command journalctl Sans attributs, affiche tous les enregistrements, mais ne convient pas aux journaux volumineux. Examinons quelques options de cet utilitaire.
journalctl -b- afficher tous les enregistrements depuis le dernier démarragejournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- afficher l'enregistrement dans une certaine période de tempsjournalctl -u pptpd- afficher les enregistrements d'un certain servicejournalctl -k- afficher les messages du noyaujournalctl -p err- afficher les messages d'une certaine priorité, les messages de priorité supérieure dans ce cas (crit, alerte, urgence)journalctl -f- afficher les messages en temps réel
Pour une plus grande flexibilité, vous pouvez combiner ces options. Montrons toutes les erreurs du pptpd service
journalctl -u pptpd -p err
Si vous spécifiez le chemin d'accès au fichier exécutable comme attribut, l'utilitaire affichera tous les messages envoyés par ce fichier. Voyons maintenant tous les messages envoyés par le fichier « /usr/bin/sudo" depuis 04:15 le 18 février 2020. En fait, il affichera toutes les commandes exécutées avec des autorisations plus élevées.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
Pour savoir combien d'espace disque les fichiers journaux occupent, exécutez la commande suivante
journalctl --disk-usage
Afin de limiter le fichier journal à 1 Go, exécutez la commande suivante
journalctl --vacuum-size=1G
Ouverture de fichiers binaires
Examinons maintenant quelques fichiers spéciaux dans le «/ var / log /Dossier contenant toutes les tentatives de connexion. Ces fichiers sont binaires et ne peuvent être ouverts qu'avec des programmes spécifiques.
/var/log/wtmp Contient des informations sur les tentatives de connexion réussies. Utilisez le dernier utilitaire pour l'ouvrir.
/var/log/btmp - Contient toutes les tentatives de connexion échouées. L'accès peut se faire avec lastb avec des autorisations avancées. Attribut -n définit le nombre de lignes affichées à partir de la fin du fichier.
/ var / log / lastlog - contient l'heure de la dernière connexion pour chaque enregistrement de compte. Ce fichier peut être ouvert avec dernier journal