Asc*_*rer 14 apache apache2 logstash logstash-grok
我试图解析我的apache2错误日志,我有点麻烦..它似乎没有匹配过滤器.我很确定时间戳是错误的,但我不确定,我真的找不到任何文件来解决它.另外,有没有办法让fields.errmsg我得到什么@message?
日志
[Wed Jun 26 22:13:22 2013] [error] [client 10.10.10.100] PHP Fatal error: Uncaught exception '\Foo\Bar'
Run Code Online (Sandbox Code Playgroud)
托运人配置
input {
file {
'path' => '/var/log/apache2/*-error.log'
'type' => 'apache-error'
}
}
filter {
grok {
type => "apache-error"
pattern => "\[%{HTTPDATE:timestamp}\] \[%{WORD:class}\] \[%{WORD:originator} %{IP:clientip}\] %{GREEDYDATA:errmsg}"
}
}
output {
stdout {}
redis {
'data_type' => 'list'
'host' => 'logstash.server.net'
'key' => 'logstash'
}
}
Run Code Online (Sandbox Code Playgroud)
ped*_*hdz 29
嗨!
我知道我在聚会上有点迟到了,但是在这里!
我在/etc/logstash/patterns.d/系统上创建了一个目录,并apache-error在其中命名了一个包含以下内容的文件:
APACHE_ERROR_TIME %{DAY} %{MONTH} %{MONTHDAY} %{TIME} %{YEAR}
APACHE_ERROR_LOG \[%{APACHE_ERROR_TIME:timestamp}\] \[%{LOGLEVEL:loglevel}\] (?:\[client %{IPORHOST:clientip}\] ){0,1}%{GREEDYDATA:errormsg}
Run Code Online (Sandbox Code Playgroud)
/etc/logstash/patterns.d/将在logstash配置中引用如下:
grok {
patterns_dir => [ "/etc/logstash/patterns.d" ]
match => [ "message", "%{APACHE_ERROR_LOG}" ]
}
Run Code Online (Sandbox Code Playgroud)
您可以在Grok Debugger中测试它,就像Adam在评论中提到的那样.似乎可以正常使用您发送的示例日志条目.我和我的一位客户一直在努力工作.
上面的模式将最终消息放在errormsg字段中.所以我只删除该message字段.
这是我目前在我的logstash配置中使用的内容:
filter {
if [type] == "apache_error_log" {
grok {
patterns_dir => [ "/etc/logstash/patterns.d" ]
match => [ "message", "%{APACHE_ERROR_LOG}" ]
}
if !("_grokparsefailure" in [tags]) {
mutate {
remove_field => [ "message" ]
add_field => ["timestamp_submitted", "%{@timestamp}"]
}
date {
# Try to pull the timestamp from the 'timestamp' field (parsed above with
# grok). The apache time format looks like: "18/Aug/2011:05:44:34 -0700"
# Sat Feb 08 06:31:09 2014
match => [ "timestamp", "EEE MMM dd HH:mm:ss yyyy" ]
remove_field => [ "timestamp" ]
}
geoip {
source => "clientip"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,我使用的是一种apache_error_log代替apache-error.
给它拍摄.我很想知道这对你和其他人是否有效!
干杯!
Rob*_*ich 10
我们的错误日志看起来有点不同:
[Tue Dec 08 12:30:35.997887 2015] [ssl:info] [pid 1178:tid 1072] (70014)End of file found: [client 10.129.24.77:49987] AH01991: SSL input filter read failed.
Run Code Online (Sandbox Code Playgroud)
但我找到了一个完美的预定义模式:
HTTPD24_ERRORLOG
Run Code Online (Sandbox Code Playgroud)
在Logstash源中看到这一点
| 归档时间: |
|
| 查看次数: |
29573 次 |
| 最近记录: |