現在の位置: ホーム> 最新記事一覧> SyslogおよびPHPエラーログの構成と管理

SyslogおよびPHPエラーログの構成と管理

gitbox 2025-05-26

毎日のPHPの開発と運用とメンテナンスでは、エラーログの管理が重要なタスクです。開発者が問題を見つけるのに役立つだけでなく、システム内で異常が発生したときにできるだけ早くアラームを呼び出します。 SyslogとPHPのエラーロギングメカニズムは、2つの一般的なロギングメソッドです。構成方法、適用可能なシナリオ、および管理戦略には明らかな違いがあります。この記事では、2つを比較し、ログを効率的に管理するための実用的な提案をします。

1。PHPエラーロギングメカニズム

通常、PHPエラーログはPHP.iniファイルを介して構成されます。キー構成項目は次のとおりです。

  • ERROR_REPORTING :報告する必要があるエラーのレベルを設定します。

  • log_errors :エラーをログにログにログインするかどうか。

  • error_log :ログファイルパスを指定します。

たとえば、ここに典型的な構成コードがあります。

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

この方法はシンプルで直感的で、中小サイズのアプリケーションに適しており、ログはファイルシステムに直接記述されているため、簡単に表示および分析できます。しかし、その制限は次のとおりです。

  • ログはサーバー全体にローカルに散らばっていますが、これは集中管理を助長しません。

  • システムログポリシーで監査を統合できません。

  • ファイルの成長は制御できないため、ディスクスペースが使い果たされる可能性があります。

2。syslogメカニズムの紹介

Syslogは、UNIXシステム向けのユニバーサルログ管理サービスです。ログ情報をローカルまたはリモートのSyslog Daemonsに中央に送信し、ルールに従って分類、転送、保存することができます。

PHPでは、エラーログを次のようにsyslogに送信できます。

 log_errors = On
error_log = syslog

または、手動制御のためにopenlog()およびsyslog()関数を使用します。

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

対照的に、syslogの利点は主に次のとおりです。

  • 集中管理:ログをリモートサーバー( gitbox.netなど)に送信することをサポートします。これにより、統一されたストレージとログの分析が容易になります。

  • 柔軟なフィルタリング:フィルタリングルールは、 /etc/rsyslog.confまたは/etc/syslog.confを介して設定できます。

  • システムレベルの統一監査:セキュリティを改善するために、 CronAuthなどのシステムログで管理できます。

3.ログを効率的に管理する方法

  1. 集中ログ管理システム<br> rsyslogsyslog-ng 、またはjournaldを使用して、次のようなログサーバーにログを収集します。

     *.* @gitbox.net:514
    

    統一された分析と視覚化のために、Graylog、Elasticsearch + Logstash + Kibana)、Lokiなどのロギングプラットフォームと協力してください。

  2. ログの回転と圧縮<br> Logrotateを使用してローカルログファイルを定期的に回転させて、ディスクがいっぱいを防ぐ