私はシンプルlogstashのGROKフィルターを持っている:logstash grok TIMESTAMP_ISO8601タイプ?
filter {
grok {
match => { "message" => "^%{TIMESTAMP_ISO8601:timestamp} %{NOTSPACE:name} %{WORD:level} %{SPACE} %{GREEDYDATA:message}$" }
overwrite => [ "message" ]
}
}
これは動作しますが、それは私のログを解析しますが、Kibanaによると、タイムスタンプの値は、データ型string
で出力されます。
logstash @timestampフィールドのデータ型はdate
です。
GROKのドキュメントでは、サポートされているデータ型変換を指定するが、唯一のint型とフロートすることができます書かれています:
あなたはセマンティックのデータ型を変換したい場合は、例えば整数に 文字列を変更後、ターゲットデータ型を接尾辞として使用します。 の場合、num意味を 文字列から整数に変換する%{NUMBER:num:int}の例です。現時点でサポートされている唯一の変換は、 とfloatです。
これは、インデックスがdatetime値をサポートしている場合、私はそれを文字列として残すはずですが、どうしてdatetimeとして適切に格納されソート可能でないのでしょうか?
ありがとうございます! @timestampを設定して新しいフィールドを作成しないで、通常の使用法を表示できますか?それが私が望むものです。 – clay
@clayこれは私の最初の例です。 'target =>" @timestamp "は暗黙的です。 – sysadmin1138
素晴らしい。ありがとう! – clay