Logstash を使用して、アプリ サーバーから ES にエラー ログを転送しています。ログのタイムスタンプが文字列として ES に送信されることを除いて、すべて正常に動作しています。
これが私のログ形式です
[日付:2015-03-25 01:29:09,554] [ThreadId:4432] [HostName:AEPLWEB1] [ホスト:(null)] [ClientIP:(null)] [ブラウザ:(null)] [UserAgent:(null) )] [PhysicalPath:(null)] [Url:(null)] [QueryString:(null)] [Referrer:(null)] [Carwale.Notifications.ExceptionHandler] System.InvalidCastException: タイプ 'Carwale のオブジェクトをキャストできません。 Entity.CMS.Articles.ArticleDetails」を「Carwale.Entity.CMS.Articles.ArticlePageDetails」と入力します。Carwale.Cache.Core.MemcacheManager.GetFromCacheCore[T] (文字列キー、TimeSpan cacheDuration、Func`1 dbCallback、ブール値 & isKeyFirstTimeCreated) で
logstash フォワーダーのフィルター構成
filter {
multiline {
pattern => "^\[Date:%{TIMESTAMP_ISO8601}"
negate => true
what => "previous"
}
grok {
match => [ "message", "(?:Date:%{TIMESTAMP_ISO8601:log_timestamp})\] \[(?:ThreadId:%{NUMBER:ThreadId})\] \[(?:HostName:%{WORD:HostName})\] \[(?:Host:\(%{WORD:Host})\)\] \[(?:ClientIP:\(%{WORD:ClientIP})\)\] \[(?:Browser:\(%{WORD:Browser})\)\] \[(?:UserAgent:\(%{WORD:UserAgent})\)\] \[(?:PhysicalPath:\(%{WORD:PhysicalPath})\)\] \[(?:Url:\(%{WORD:Url})\)\] \[(?:QueryString:\(%{WORD:QueryString})\)\] \[(?:Referrer:\(%{WORD:Referrer})\)\] \[%{DATA:Logger}\] %{GREEDYDATA:err_message}" ]
}
date {
match => [ "log_timestamp", "MMM dd YYY HH:mm:ss","MMM d YYY HH:mm:ss", "ISO8601" ]
target => "log_timestamp"
}
mutate {
convert => ["ThreadId", "integer"]
}
}
どうすればESでデートできますか? 助けてください。前もって感謝します。