Я имеющих Nginx журналы ошибок в следующей форме: -Преобразование формата даты YYYY-MM-DD от YYYY/MM/DD HH: MM: СС в Logstash для журналов ошибок Nginx
2015/09/30 22:19:38 [error] 32317#0: *23 [lua] responses.lua:61: handler(): Cassandra error: Error during UNIQUE check: Cassandra error: connection refused, client: 127.0.0.1, server: , request: "POST /consumers/ HTTP/1.1", host: "localhost:8001"
Как here Я могу разобрать эти журналы.
Моя конфигурация фильтра, как ниже: -
filter {
grok {
match => {
"message" => [
"%{DATESTAMP:mydate} \[%{DATA:severity}\] (%{NUMBER:pid:int}#%{NUMBER}: \*%{NUMBER}|\*%{NUMBER}) %{GREEDYDATA:mymessage}",
"%{DATESTAMP:mydate} \[%{DATA:severity}\] %{GREEDYDATA:mymessage}",
"%{DATESTAMP:mydate} %{GREEDYDATA:mymessage}"
]
}
add_tag => ["nginx_error_pattern"]
}
if ("nginx_error_pattern" in [tags]) {
grok {
match => {
"mymessage" => [
"server: %{DATA:[request_server]},"
]
}
}
grok {
match => {
"mymessage" => [
"host: \"%{IPORHOST:[request_host]}:%{NUMBER:[port]}\""
]
}
}
grok {
match => {
"mymessage" => [
"request: \"%{WORD:[request_method]} %{DATA:[request_uri]} HTTP/%{NUMBER:[request_version]:float}\""
]
}
}
grok {
match => {
"mymessage" => [
"client: %{IPORHOST:[clientip]}",
"client %{IP:[clientip]} "
]
}
}
grok {
match => {
"mymessage" => [
"referrer: \"%{DATA:[request_referrer]}\""
]
}
}
}
}
mydate
является имеющий дату вида: -
"mydate" => "15/09/30 22:19:38"
Может кто-то дайте мне знать, как я могу добавить еще одно поле (давайте скажем log_day
), имеющей дату формы 2015-09-30
?
Благодаря @hurb. Это работает как ожидалось. У меня есть следующий вопрос. Можем ли мы это сделать без изменения поля '@ timestamp'? Прямо сейчас это перезапишет '@ timestamp' с датой в журнале. – tuk
Конечно, просто добавьте 'target =>" log_day "' в свой фильтр даты. См. Редактирование. – hurb