Maison  >  Article  >  développement back-end  >  使用logstash收集php-fpm slow log

使用logstash收集php-fpm slow log

WBOY
WBOYoriginal
2016-06-20 12:26:061375parcourir

目前php-fpm的服务部署在了docker中,对php-fpm的log和php error log可以通过syslog协议的形式发送出去,而php-fpm的slow log却不能配置为syslog协议,只能输出到文件中,因为一条slow log的是有多行组成的。

为了收集slow log,可以通过logstash、flume等工具进行收集,本文采用logstash对slow log进行收集,并将收集的log写入到kafka中,便于后续的处理。logstash的input采用读取文件的方式,即跟tail -f的原理类似。为了能够将多行日志作为一行,采用了filter中的multiline来对多行日志进行合并操作。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"    }}
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