現在、php-fpm サービスは docker にデプロイされており、php-fpm ログと php エラー ログは syslog プロトコルを通じて送信できますが、php-fpm の遅いログは設定できません。 syslog プロトコルの場合、スロー ログは複数行で構成されるため、ファイルに出力することしかできません。
スロー ログを収集するには、logstash や flume などのツールを使用して収集します。この記事では、logstash を使用してスロー ログを収集し、収集したログを後続の処理を容易にするために Kafka に書き込みます。 logstash の入力では、tail -f の原理と同様のファイル読み取り方式が使用されます。複数行のログを 1 行として扱うには、multiline in フィルターを使用して複数行のログをマージします。 logstash の構成は次のとおりです:
input { file { path => [“/var/log/php-fpm/fpm-slow.log"] }}filter { multiline { pattern => "^$" negate => true what => "previous" }}output { stdout{codec => rubydebug} kafka { codec => plain { format => “tag|%{host}%{message}" } topic_id => "fpm-slowlog" bootstrap_servers => “kafka1.hostname:8082,kafka2.hostname:8082" }}