質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Elasticsearch

Elasticsearchは、クラウド向けに構築された、RESTful な API を提供する分散型のサーチエンジンアプリケーションです。

Q&A

解決済

2回答

3906閲覧

Logstash で複数行のイベントを含む CSV を Elasticsearch に取り込みたい

nskydiving

総合スコア6500

Elasticsearch

Elasticsearchは、クラウド向けに構築された、RESTful な API を提供する分散型のサーチエンジンアプリケーションです。

0グッド

0クリップ

投稿2019/05/23 22:47

前提・実現したいこと

Logstash で複数行のイベントを含む CSV を Elasticsearch に取り込みたいのですが、うまくいきません。

恐らく logstash.conf の設定に誤りがあると思うのですが、ご存知の方いらっしゃいましたらご教授お願いします。

発生している問題

複数行のイベントが取り込まれない。

該当の設定ファイル、CSVファイル

logstash.conf

conf

1input { 2 file { 3 path => ["/Users/myuser/work/elasticsearch/csv/log.csv"] 4 sincedb_path => "/dev/null" 5 start_position => "beginning" 6 codec => multiline { 7 pattern => "^\s" 8 what => "previous" 9 } 10 } 11} 12 13filter { 14 csv { 15 columns => ["Date", "Level", "Message"] 16 } 17 date { 18 match => ["Date", "yyyy-MM-dd HH:mm:ss"] 19 } 20} 21 22output { 23 elasticsearch { 24 hosts => ["localhost:9200"] 25 index => "log" 26 } 27 stdout { 28 codec => rubydebug 29 } 30}

log.csv

csv

12019-01-01 10:30:00,INFO,Success. 22019-01-02 10:40:00,ERROR,An error1 has occurred. Please wait a moment and try again. 32019-01-02 10:50:00,ERROR,An error2 has occurred 4 Please wait a moment and try again.

試したこと

「Multiline codec plugin」のマニュアルを参照し、行の先頭が空白の場合は前行のイベントになるように設定をしているつもりなのですが、3行目〜4行目「2019-01-02 10:50:00」のイベントが取り込まれせんでした。(1行目〜2行目は取り込まれています)

また、multiline 設定を以下のようにしても結果は同様でした。

codec => multiline { pattern => "^2019" negate => true what => "previous" }

補足情報(FW/ツールのバージョンなど)

macOS 10.14.5
Elasticsearch 7.1.0
Logstash 7.1.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

すみません、自己解決しました。

デフォルトでは Tail モードで読み込んでおり、CSV ファイルに行を追加して上書き保存すると次の行が読み込まれるようになりました。

今回のように新しい設定を試す場合は、Read モードで確認した方が良かったかもしれません。

input { file { mode => "read" path => ["/Users/myuser/work/elasticsearch/csv/log.csv"] sincedb_path => "/dev/null" start_position => "beginning" codec => multiline { pattern => "^\s" what => "previous" } } }

※まだ読み込み結果に問題があるのですが、別件になりますので、この質問としては解決とさせていただきます。

投稿2019/05/24 21:02

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

リンク先にある下記だとうまくいかないでしょうか。

input { stdin { codec => multiline { pattern => "^\s" what => "previous" } } }

投稿2019/05/24 03:41

iwamot

総合スコア1154

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nskydiving

2019/05/24 05:15

ご回答ありがとうございます。 ご提示いただいている設定でも、3行目〜4行目「2019-01-02 10:50:00」のイベントが取り込まれませんでした。 この設定であっているように思うのですが・・・
iwamot

2019/05/24 10:30

プラグイン自体が効いていないんでしょうかね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問