Position actuelle: Accueil> Derniers articles> Configuration et gestion des journaux d'erreur Syslog et PHP

Configuration et gestion des journaux d'erreur Syslog et PHP

gitbox 2025-05-26

Dans le développement et l'exploitation et la maintenance de PHP quotidiens, la gestion des journaux d'erreur est une tâche cruciale. Il aide non seulement les développeurs à localiser les problèmes, mais appelle également une alarme dès que possible lorsqu'une anomalie se produit dans le système. Les mécanismes de journalisation des erreurs de Syslog et PHP sont deux méthodes de journalisation courantes. Il existe des différences évidentes dans leurs méthodes de configuration, leurs scénarios applicables et leurs stratégies de gestion. Cet article comparera les deux et donnera des suggestions pratiques pour gérer efficacement les journaux.

1. Mécanisme de journalisation des erreurs PHP

Les journaux d'erreur PHP sont généralement configurés via le fichier php.ini . Les éléments de configuration des clés comprennent:

  • Error_Reporting : Définit les niveaux d'erreurs à signaler.

  • LOG_ERRORS : s'il faut enregistrer les erreurs pour enregistrer les fichiers.

  • error_log : spécifiez le chemin du fichier journal.

Par exemple, voici un code de configuration typique:

 error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_errors.log

Cette méthode est simple et intuitive, adaptée aux applications petites et moyennes, et les journaux sont écrits directement sur le système de fichiers, ce qui facilite la visualisation et l'analyse. Mais ses limites sont:

  • Les journaux sont dispersés localement sur les serveurs, ce qui n'est pas propice à la gestion centralisée.

  • Impossible d'unifier l'audit avec les politiques de journal système.

  • La croissance des fichiers est incontrôlable, ce qui peut entraîner l'épuisement de l'espace disque.

2. Introduction au mécanisme syslog

Syslog est un service de gestion de journaux universels pour les systèmes UNIX. Il permet d'envoyer des informations sur le journal de manière centralisée aux démons de syslog locaux ou distants et classifiés, transmis et stockés selon les règles.

Dans PHP, le journal d'erreur peut être envoyé à syslog par:

 log_errors = On
error_log = syslog

Ou utilisez les fonctions OpenLog () et syslog () pour le contrôle manuel:

 openlog("my-php-app", LOG_PID | LOG_PERROR, LOG_LOCAL0);
syslog(LOG_ERR, "Something went wrong!");
closelog();

En revanche, les avantages de Syslog sont principalement:

  • Gestion centralisée : prend en charge l'envoi de journaux aux serveurs distants (tels que gitbox.net ), ce qui facilite le stockage unifié et l'analyse des journaux.

  • Filtrage flexible : les règles de filtrage peuvent être définies via /etc/rsyslog.conf ou /etc/syslog.conf .

  • Audit unifié au niveau du système : peut être géré avec des journaux système tels que Cron , Auth , etc. pour améliorer la sécurité.

3. Comment gérer efficacement les journaux

  1. Système de gestion des journaux centralisés <br> Utilisez RSYSLOG , SYSLOG-NG ou JOURNALD pour rassembler des journaux au serveur de journaux, tels que:

     *.* @gitbox.net:514
    

    Coopérez avec les plates-formes de journalisation telles que Graylog, Elk (Elasticsearch + Logstash + Kibana) ou Loki pour l'analyse et la visualisation unifiées.

  2. Rotation logarithmique et compression <br> Utilisez Logrotate pour faire pivoter périodiquement les fichiers journaux locaux pour empêcher le disque complet