Logstash 配置
Logstash configuration
我正在尝试使用 Logstash 解析和分析我的日志,并将它们输出到 elasticsearch。 Logstash 将日志文件中的每一行都视为一个新的日志条目,但问题是一个日志条目可能在多行中。我想配置过滤器以提取有用的数据(日期、线程、查询...)。
您需要查看多行过滤器 - http://logstash.net/docs/1.4.1/filters/multiline
我对 MariaDB 日志做了类似的事情,它可以是多行的 - 正则表达式会有所不同,但请查看 http://simonhanmer.co.uk/processing-mysql-mariadb-galera-logs-for-logstash/ 以获得一些想法
好的,提取线程相当简单,因为它由 [] 分隔,但查询有点困难。如果它前面总是显示行,你可以使用这样的东西
input {
pipe {
command => 'type C:\Users\MEGDICHE\Downloads\default.log'
}
}
filter{
multiline {
pattern => "^%{MONTH} %{MONTHDAY}"
negate => true
what => "previous"
}
grok {
match => [ 'message', "(?m)^%{MONTH} %{MONTHDAY}.*\[%{GREEDYDATA:thread}\]:%{GREEDYDATA:rest_of_message}" ]
}
if [rest_of_message] =~ /select/ {
grok {
match => [ 'message', '(?m).*\nThe query before.*\n%{GREEDYDATA:query}$' ]
}
}
mutate {
remove_field => [ 'rest_of_message']
}
}
output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}
我正在尝试使用 Logstash 解析和分析我的日志,并将它们输出到 elasticsearch。 Logstash 将日志文件中的每一行都视为一个新的日志条目,但问题是一个日志条目可能在多行中。我想配置过滤器以提取有用的数据(日期、线程、查询...)。
您需要查看多行过滤器 - http://logstash.net/docs/1.4.1/filters/multiline
我对 MariaDB 日志做了类似的事情,它可以是多行的 - 正则表达式会有所不同,但请查看 http://simonhanmer.co.uk/processing-mysql-mariadb-galera-logs-for-logstash/ 以获得一些想法
好的,提取线程相当简单,因为它由 [] 分隔,但查询有点困难。如果它前面总是显示行,你可以使用这样的东西
input {
pipe {
command => 'type C:\Users\MEGDICHE\Downloads\default.log'
}
}
filter{
multiline {
pattern => "^%{MONTH} %{MONTHDAY}"
negate => true
what => "previous"
}
grok {
match => [ 'message', "(?m)^%{MONTH} %{MONTHDAY}.*\[%{GREEDYDATA:thread}\]:%{GREEDYDATA:rest_of_message}" ]
}
if [rest_of_message] =~ /select/ {
grok {
match => [ 'message', '(?m).*\nThe query before.*\n%{GREEDYDATA:query}$' ]
}
}
mutate {
remove_field => [ 'rest_of_message']
}
}
output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}