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



Twilogサービスへの登録

Twitterの情報を集めるため https://twilog.org/ へアカウントを登録する

というか、まったくツイートしたことが無いので、1件だけツイートした。

Twilogの [管理] メニューを選択
ログのダウンロードで [CSV(UTF8)] ボタンをクリックしダウンロード

ダウンロードしたファイルは 拡張しgz の圧縮ファイルなので7-Zipで解凍
以下フォルダ直下にCSVファイルをコピー
"d:\temp\20191011\CSV"

logstash.conf設定

Logstashの設定 → "C:\apps\logstash-7.4.0\config\logstash.conf"

この設定ファイルは3つの部分に分けれている
1) input … データの取得元を指定
2) filter … データの加工方法を指定
3) output … データの送り先を指定

1) input
ログをどこから取得するか?
ログの取得間隔
Logstashサービス再開時の挙動

2) filter
ログをどのように加工・整形するか?

3) データをどこに送るか?
Elasticsearch以外にもCSV形式なども可能

fileプラグイン
input部分では情報の取得元ごとにプラグインが提供されている
今回はCSVファイル取得のため fileプラグイン を使用

プラグインの一覧は https://www.elastic.co/guide/en/logstash/index.html
→ [Logstash Reference: 7.4 (current)] - [Input plugins] にて確認

inputプラグインの記載方法
input{
  利用するプラグイン名{
    設定を記載
  }
}
pathの記載
fileプラグインではpath指定は必須
"path => ファイルパス" のように指定する
input{
  file{
    path => "/フォルダのフルパス/logs/**.csv"
  }
}
標準出力への出力
outputにstdoutを指定することで、コンソール上に標準出力できる
output{
  stdout{ codec => rubydebug }
}
ファイルの読み込み位置指定
既定ではLogstash起動後の更新分しかデータを取得しないので、最初から取得するように設定
「start_position => "beginning"」

ファイルにタグをつけて分類
「tags => "好きな名前"」で指定
ここでは「tags => "csv"」とする

以上をまとめると
次の内容をlogstash.confに書き込み
input{
  file{
    path => "d:\temp\20191011\csv\**.csv"
    start_position => "beginning"
    tags => "csv"
  }
}
output{
  stdout{ codec => rubydebug }
}

Logstash起動

コマンドプロンプトより以下コマンドで起動
C:\Windows\system32>cd /d c:\apps\logstash-7.4.0
c:\apps\logstash-7.4.0>.\bin\logstash.bat -f .\config\logstash.conf
→ コンソールにCSVデータが出力される、らしいが出ない…
[2019-10-11T17:03:53,279][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}


ElasticSearch, ElasticStack

0 件のコメント:

その他の記事