Maison  >  Article  >  Opération et maintenance  >  Comment configurer la gestion des journaux sous Linux

Comment configurer la gestion des journaux sous Linux

PHPz
PHPzoriginal
2023-07-06 16:25:553762parcourir

Comment configurer la gestion des journaux sous Linux

Dans les systèmes Linux, les journaux sont un composant clé qui enregistre des informations importantes telles que l'état d'exécution du système, les informations d'exécution des applications, les erreurs et les avertissements. Une configuration et une gestion correctes des journaux sont cruciales pour la surveillance et le dépannage du système. Cet article vous expliquera comment configurer la gestion des journaux sous Linux et fournira quelques exemples de code pour vous aider à mieux comprendre et mettre en pratique.

1. Comprendre les types et les emplacements des fichiers journaux

Tout d'abord, nous devons comprendre les types et les emplacements courants des fichiers journaux dans le système. Voici plusieurs types de fichiers journaux courants et leurs emplacements :

  1. Journal système : ce type de journal enregistre l'état de fonctionnement, les informations de démarrage et d'arrêt du système, etc. Généralement géré par rsyslog et stocké dans /var/log/syslog ou /var/log/messages.
  2. Journal d'application : ce type de journal est généré par diverses applications et enregistre les informations d'exécution et les informations d'erreur de l'application. Ces journaux sont généralement stockés dans un répertoire spécifique à l'application, tel que /var/log/nginx/access.log.
  3. Journal de sécurité : ce type de journal enregistre les événements de sécurité du système, tels que les tentatives de connexion, les demandes d'autorisation, etc. Dans la plupart des systèmes Linux, les journaux de sécurité sont enregistrés dans /var/log/secure ou /var/log/auth.log.

2. Configurer la rotation des journaux

La rotation des journaux fait référence à l'archivage et à la compression réguliers des fichiers journaux pour éviter que les fichiers journaux ne deviennent trop volumineux ou n'occupent trop d'espace de stockage. Dans les systèmes Linux, logrotate est un outil de rotation de journaux couramment utilisé.

  1. Installer logrotate :
$ sudo apt-get install logrotate
  1. Configurer logrotate :

Créer un nouveau fichier de configuration afin que nous puissions personnaliser le comportement de logrotate.

$ sudo nano /etc/logrotate.d/myapp

Dans le fichier de configuration, vous pouvez spécifier des paramètres tels que les fichiers journaux à faire pivoter, l'intervalle de rotation et le nombre de fichiers pivotés à conserver. Par exemple :

/var/log/myapp/*.log {
    weekly
    rotate 4
    compress
    delaycompress
    missingok
    notifempty
    sharedscripts
}

Dans l'exemple ci-dessus, /var/log/myapp/*.log spécifie le chemin du fichier journal à faire pivoter, et hebdomadaire signifie la rotation sur une base hebdomadaire. rotate 4 signifie conserver les quatre derniers fichiers pivotés, compress signifie compresser les fichiers pivotés, delaycompress signifie une compression retardée, >missingok Indique que le fichier journal sera ignoré s'il n'existe pas. notifempty signifie que le fichier journal ne sera pas pivoté lorsqu'il est vide. /var/log/myapp/*.log 指定了要轮转的日志文件路径,weekly 表示按周轮转,rotate 4 表示保留最近四个轮转文件,compress 表示压缩轮转文件,delaycompress 表示延迟压缩,missingok 表示如果日志文件不存在则忽略,notifempty 表示当日志文件为空时不进行轮转。

  1. 手动执行轮转:

可以手动执行轮转,以验证配置是否正确。

$ sudo logrotate -vf /etc/logrotate.d/myapp

三、配置日志旋转和清理策略

除了日志轮转外,我们还可以在配置文件中指定日志旋转和清理的策略。Linux系统中,logrotate 支持以下策略:

  1. postrotate:该选项指定轮转后执行的命令。可以在该选项下,进行日志分析、数据库备份等操作。
/var/log/myapp/*.log {
    ...
    postrotate
        /usr/bin/analyze_logs /var/log/myapp/*.log > /dev/null
    endscript
}
  1. prerotate:该选项指定轮转前执行的命令。可以在该选项下,执行一些预处理操作。
/var/log/myapp/*.log {
    ...
    prerotate
        /usr/bin/sync_logs /var/log/myapp/*.log
    endscript
}
  1. size:该选项指定日志文件达到多大时触发轮转操作,单位可以是k(千字节)或M(兆字节)。
/var/log/myapp/*.log {
    ...
    size 10M
}
  1. maxage:该选项指定日志文件保留的最大天数。
/var/log/myapp/*.log {
    ...
    maxage 30
}

四、配置远程日志收集

有时候,我们需要将日志文件中的内容发送到远程服务器进行中央日志收集和分析。在Linux系统中,rsyslog 是常用的日志收集和处理工具。

  1. 安装 rsyslog:
$ sudo apt-get install rsyslog
  1. 配置 rsyslog:

打开 rsyslog 的主配置文件,并编辑以下内容:

$ sudo nano /etc/rsyslog.conf

取消以下行的注释(删除行首的#):

#$ModLoad imudp
#$UDPServerRun 514

在文件的末尾,添加以下内容:

*.* @192.168.0.100:514

其中,192.168.0.100 是远程服务器的IP地址,514

    Effectuer une rotation manuellement :
Vous pouvez effectuer une rotation manuellement pour vérifier que la configuration est correcte.

$ sudo systemctl restart rsyslog

3. Configurer les stratégies de rotation et de nettoyage des journaux

En plus de la rotation des journaux, nous pouvons également spécifier des stratégies de rotation et de nettoyage des journaux dans le fichier de configuration. Dans les systèmes Linux, logrotate prend en charge les stratégies suivantes :

🎜postrotate : Cette option spécifie la commande à exécuter après la rotation. Vous pouvez effectuer des opérations telles que l'analyse des journaux et la sauvegarde de la base de données sous cette option. 🎜🎜rrreee🎜🎜prerotate : Cette option spécifie la commande à exécuter avant la rotation. Vous pouvez effectuer certaines opérations de prétraitement avec cette option. 🎜🎜rrreee🎜🎜size : Cette option spécifie la taille du fichier journal pour déclencher l'opération de rotation. L'unité peut être k (kilo-octets) ou M<.> (mégaoctets). 🎜🎜rrreee<ol start="4">🎜<code>maxage : Cette option spécifie le nombre maximum de jours de conservation des fichiers journaux. 🎜🎜rrreee🎜4. Configurer la collecte de journaux à distance🎜🎜Parfois, nous devons envoyer le contenu du fichier journal à un serveur distant pour la collecte et l'analyse centralisées des journaux. Dans les systèmes Linux, rsyslog est un outil de collecte et de traitement de journaux couramment utilisé. 🎜🎜🎜Installer rsyslog : 🎜🎜rrreee🎜🎜Configurer rsyslog : 🎜🎜🎜Ouvrez le fichier de configuration principal de rsyslog et éditez le contenu suivant : 🎜rrreee🎜Décommentez les lignes suivantes (supprimez le # à la fin début de la ligne) ) : 🎜rrreee🎜A la fin du fichier, ajoutez le contenu suivant : 🎜rrreee🎜où, 192.168.0.100 est l'adresse IP du serveur distant, et 514 est le numéro de port pour la collecte des journaux. 🎜🎜🎜Redémarrez rsyslog : 🎜🎜rrreee🎜Avec la configuration ci-dessus, le journal sera envoyé au port 514 du serveur distant via le protocole UDP. 🎜🎜Résumé : 🎜🎜Cet article présente comment configurer la gestion des journaux sur un système Linux. Depuis la compréhension des types et des emplacements de fichiers journaux jusqu'à la configuration de la rotation des journaux, la configuration des politiques de rotation et de nettoyage des journaux et la configuration de la collecte des journaux à distance, nous fournissons des exemples de code pertinents pour vous aider à mieux comprendre et mettre en pratique. Une configuration et une gestion correctes des journaux sont cruciales pour la surveillance et le dépannage du système. J'espère que cet article vous sera utile. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn