Elasticsearch

Logstash 未正確處理 MySQL 日誌

  • June 30, 2015

如您所見,消息不僅僅是消息,還包含日期和時間戳。

有效的 XHTML. 有效的 XHTML.

這是 MySQL 日誌:/var/log/mysql/error.log

150630  9:01:29 [Warning] Access denied for user 'test1'@'localhost' (using password: YES)
150630  9:03:39 [Warning] Access denied for user 'test3'@'localhost' (using password: YES)
150630  9:07:48 [Warning] Access denied for user 'test5'@'localhost' (using password: YES)
150630  9:10:00 [Warning] Access denied for user 'test7'@'localhost' (using password: YES)
150630  9:12:21 [Warning] Access denied for user 'test9'@'localhost' (using password: YES)

這是 Logstash-shipper 配置:/etc/logstash/shipper/conf.d/20-filter.conf

else if [type] == "mysql" {
 grok {
   patterns_dir => "/etc/logstash/patterns"
   match => [ "message", "%{MYSQLLOG}" ]
   overwrite => [ "message" ]
 }
}

這是模式:

MYSQLLOG %{NUMBER:date} %{TIME:time} \[%{LOGLEVEL:loglevel}\] %{GREEDYDATA:message}

我已經嘗試解決這個問題好幾個星期了,實際上我曾經讓它工作過,但是沒有我的干預,它又停止了工作。有關調試的任何提示?

看起來在datetime欄位之間的日誌條目中有一個額外的空間,所以你的 grok 不匹配,_grokparsefailure標籤的存在證明了這一點。

試試這個模式:

%{NUMBER:date}  %{TIME:time} \[%{LOGLEVEL:loglevel}] %{GREEDYDATA:message}

我在Grok 建構子中對此進行了測試,它與您提供的所有行匹配。

引用自:https://serverfault.com/questions/702544