LoginSignup
4
4

More than 1 year has passed since last update.

Fluentdのout_fileプラグインで出力したファイルからElasticsearchにbulkインポートしたくなることってよくありますよね?

Last updated at Posted at 2016-01-28

※当記事は個人ブログに移行しました

bashのワンライナーで強引にbulkインポート用のフォーマットに書き換えちゃいます。
以下のコマンド結果をファイルにリダイレクトするとか、curlの引数にコマンド置換で渡すでもいいです。コマンドが長いのでたいていファイルに書きだしちゃいますが。
全部同じインデックス、ドキュメントタイプにすることを前提にしてます。
あと、時刻のフォーマットを書き換えてる正規表現については必要があれば変えてください。(3つ目の-eのとこです)

$ awk -F '\t' '{print $1","$3}' <対象ファイル> | \
	sed -e 's/{//g' \
		-e 's/^/{"@timestamp":/g' \
		-e 's/\([0-9]\{4\}\)\/\([0-9]\{2\}\)\/\([0-9]\{2\}\) \([0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}\) \(+[0-9]\{4\}\)/"\1-\2-\3T\4\5"/g' \
		-e 'i\{"index":{}}\'

まぁ、他にいくらでも方法あると思いますが...

fluent-plugin-elasticsearchとかで最初から入れろよって話もありますが、それはそれ。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4