Elastic Stack #7:Twitterのつぶやき履歴を集めてみる 3



Elasticsearchにデータを送る

outputにelasticsearchプラグイン設定を追加する
output {
  stdout {
    codec => rubydebug
  }
  elasticsearch {
    hosts => "http://localhost:9200/"
  }
}
Elasticsearchの起動は
C:\apps\elasticsearch-7.4.0\bin\elasticsearch.bat

logstash起動し、コンソールにCSV内容が表示されることを確認
 : 省略
{
      "@version" => "1",
          "path" => "d:/temp/20191011/CSV/work191010.csv",
          "host" => "DESKTOP-37HDMPE",
    "@timestamp" => 2019-10-31T08:13:09.688Z,
          "tags" => [
        [0] "csv"
    ],
       "message" => "\"1182187647629873152\",\"191010 155433\",\"テスト\""
}

CSVフィルターの設定

CSVファイルを読み込む場合はCSVフィルターを使う
logstash.confにCSVフィルターの設定を追記
filter {
  csv {
  }
}
この状態でlogstashを起動するとコンソールにCSVの内容が表示される
 : 省略
{
          "tags" => [
        [0] "csv"
    ],
      "@version" => "1",
       "message" => "\"1182187647629873152\",\"191010 155433\",\"テスト\"",
       "column1" => "1182187647629873152",
    "@timestamp" => 2019-10-31T22:31:34.928Z,
          "path" => "d:/temp/20191011/CSV//work191010.csv",
          "host" => "DESKTOP-37HDMPE",
       "column2" => "191010 155433",
       "column3" => "テスト"
}
不要な項目(フィールド)を消したい場合は remove_fieldオプションを指定 "remove_field => [フィールド名,…]"

例)
filter {
  csv {
    remove_field => ["column1","host","path"]
  }
}
出力結果
{
       "column2" => "191010 155433",
      "@version" => "1",
       "message" => "\"1182187647629873152\",\"191010 155433\",\"テスト\"",
          "tags" => [
        [0] "csv"
    ],
    "@timestamp" => 2019-10-31T22:42:03.559Z,
       "column3" => "テスト"
}
@timestampはLogstashがデータを取り込んだ時間。
CSVログの日時は"column2"フィールド。
column2フィールドを@timestampとして使用する場合は、CSVフィルターのconvertオプションに "フィールド名 => 型" の書式で指定。
また書式を指定する場合はdateフィルタのmatchオプションを使用する。

例)
filter {
  csv {
    convert => {
     "column2" => "date_time"
    }
    remove_field => ["column1","host","path"]
  }
  date {
    match => [ "column2", "YYMMdd HHmmss" ]
  }
}
出力結果
{
       "column2" => "191010 155433",
       "message" => "\"1182187647629873152\",\"191010 155433\",\"テスト\"",
    "@timestamp" => 2019-10-10T06:54:33.000Z,
      "@version" => "1",
       "column3" => "テスト",
          "tags" => [
        [0] "csv"
    ]
}

コンフィグテスト

設定したコンフィグが正しいかテストを行う場合は-tオプションを指定
.\bin\logstash.bat -f .\config\logstash.conf -t



Elastic Stack, Elasticsearch

0 件のコメント:

その他の記事