KibanaでUnix timestampを使う方法
概要
Kibana(Elasticsearch)なログ基盤にFirehose経由で脳直にUnix timestampを投げ込んだら、見事に Date
型として認識してくれなかったのでメモ。 number
になっちゃうんだよなぁ…
Autoindexが良い感じに処理してくれるようにテンプレートを書く感じ。
下準備
テンプレート設定
type
と index
が分かれば設定できる。
indexについて
特に気にする必要はなくて、 hoge-*
とか hoge-error-*
とか hoge-error-log-*
とかで良さそう。
typeについて
typeが把握できていない場合は Kinesis
の設定画面を見れば良さそう。
「 Amazon Kinesis
-> Data Firehose
-> 該当するストリーム名 」で辿り着くページの Amazon Elasticsearch Service destination
を見ればわかる。
以上を踏まえた設定値
PUT _template/hoge_template
{
"template": "hoge-error-log-*",
"mappings": {
"log": {
"properties":{
"timestamp": {
"type": "date",
"format": "epoch_second"
}
}
}
}
}
データを投げ込む
適当に。例えばこんなデータ。
{
"host": "ip.ap-northeast-1.compute.internal",
"message": "test",
"level": "err",
"timestamp": 1560762549
}
動作確認(Create index patternをしてみる)
わーい!ちゃんと date
として認識しているぞー
補足
浮動小数点なデータ( date +%s.%3N
コマンドで取れるようなミリ秒付きの値)でも動作はするが、内部処理系で整数型に丸められているみたい。
なので、解析にミリ秒が必要なときは、ちゃんとミリ秒単位なunix epoch(13桁)を投げ込むようにして、 format
に epoch_millis
を指定すると良さそう。
利用できる format
情報については下記を参照。
format | Elasticsearch Reference [7.1] | Elastic
ちなみに epoch_millis||basic_ordinal_date_time_no_millis
みたいな指定もできるらしい。試してないけど。
参考文献
SORACOM Funnel の timestamp
を Elasticsearch で自動mappingする方法 - Qiita
Elasticsearchの自動マッピングの一部を上書きする方法 - Qiita
Author And Source
この問題について(KibanaでUnix timestampを使う方法), 我々は、より多くの情報をここで見つけました https://qiita.com/yanoshi/items/e50d76f527de53eefc55著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .