本文主要講述的是php慢日志收集至elasticsearch
收集流程:
本文不提供安裝教程
主要配置:
Filebeat配置
filebeat 涉及多行配置是以要使用 multiline
pattern:正規表達式
negate:true 或 false;預設是false,比對pattern的行合并到上一行;true,不比對pattern的行合并到上一行
match:after 或 before,合并到上一行的末尾或開頭
filebeat.prospectors:
- input_type: log
paths:
# 慢日志路徑
- /usr/local/php-5.3.27/var/log/pregnancy.log.slow
# 多行比對規則
# 比對 [數字數字 格式開頭的行
multiline.pattern: '\[[0-9]{2}'
multiline.negate: true
multiline.match: after
tail_files: true
output.kafka:
hosts: ["192.168.99.253:9092"]
topic: "php-slow-log" # kafka隊列會自動生成
compression: gzip
logstash配置
input {
kafka {
zk_connect => "192.168.99.210:2181"
topic_id => "php-slow-log"
group_id => "logstash18"
consumer_threads => "8"
}
}
filter {
grok {
match => {
"message" => "^\[%{DATA:time_local}\].*?script_filename\s+=\s+%{DATA:script_filename}\n%{GREEDYDATA:msg}"
}
add_field => {'hostname' => "%{[beat][hostname]}"}
remove_field => ['type','_id','input_type','tags','message','beat','offset']
}
}
elasticsearch {
hosts => ["192.168.99.11:9200"]
index => "php-slow-log-%{+YYYY.MM.dd}"
}
}
ElasticSearch
可以在插件中檢查索引是否生成
kibana添加響應的索引