2016-09-27 3 views
0

私は以前にローカルホストにロードしたログを解析しています。イベントの日付フィールドをタイムスタンプとして各行に取得したいのですが、kibanaはそれを文字列として取得できます。ログスタッシュに新しいタイムスタンプフィールドを追加するには?

例: 私はそれは、9月27日2016、16にロードされた

2016/09/27 13:33:49.701 GMT(09/27 15:33:49 +0200) INFO  BILLINGGW ConvergysDelegate.getCustomer(): Calling getCustomerFromCache: 0001:606523 

このイベント持た:04:53.222が、LOGDATEフィールド(イベント日付)は次のとおりです。2016/09/27 13:33:49.701。私が定義されてlogstashフィルタで

(?<logdate>%{NUMBER:year}/%{NUMBER:month}/%{NUMBER:day} %{HOUR:hday}:%{MINUTE:min}:%{SECOND:sec}) %{GREEDYDATA:result} 

私はまたして証明した:

(?<logdate>%{YEAR:year}/%{MONTHNUM:month}/%{MONTHDAY:day} %{HOUR:hday}:%{MINUTE:min}:%{SECOND:sec}) %{GREEDYDATA:result} 

そしてkibanaは、文字列のようLOGDATEを読み込みます。どのように私はその木場をタイムスタンプとして読むことができるのですか?

私は日付だけで証明した:

(?<logdate>%{NUMBER:year}/%{NUMBER:month}/%{NUMBER:day}) 

とKibanaが正しくタイムスタンプのようにそれを解釈するが、問題がLOGDATEフィールドに正しく時間、分、秒を追加する方法です。

誰でもお手伝いできますか?

よろしくお願いいたします。

答えて

0

date filterを使用して文字列をタイムスタンプに変換する必要があります。

date { 
    match => [ "logdate", "yyyy/MM/dd HH:mm:ss"] 
} 

これは、結果と@timestampフィールドに置き換えられます成功した場合、この日付パターンyyyy/MM/dd HH:mm:sslogdateフィールドを解析し、しようとします。 targetオプションを使用して、解析された日付の別のフィールドを指定することができます。

+0

ありがとう@baudsp!それは私のソリューションの一部です。 **ロケール=> "ISO8601" **および**ターゲット=> "mytimestamp" **のように、データフィルタにいくつかの行を追加する必要がありました。 – ELosada

関連する問題