nkmrtty’s blog

https://nkmrtty.com/

お手軽ツイート収集基盤(Docker+Elasticsearch+Kibana+Logstash)

タイトルの通り、Elastic Products on Dockerでツイート(Sample Tweet API)の収集基盤を作ったお話。

内容としてはココの話をDockerでやっただけです。

confファイル書くだけでsampleのツイートを収集できるので非常にお手軽。いままでPythonで頑張っていたのは何だったのだ......

なお、本記事の手順で構築した基盤ではCPUの使用率がCore i5 6500で200%弱(topコマンドの値)になるので自宅のPC等で利用するのはおすすめしません。

Elastic Products on Dockerの細かい設定方法等についてはElasticの公式ドキュメントを熟読してください。

今回の環境

  • Ubuntu 16.04.4 LTS
  • Docker version 17.12.1-ce, build 7390fc6
  • docker-compose version 1.18.0, build 8dd22a9
  • Elastic Productsのバージョンは6.2.2で統一
  • Twitter APIの各種キーは事前に取得済

ディレクトリ構成

.
├── docker-compose.yml
├── elasticsearch
│   └── data
└── logstash
    └── pipeline
        └── twitter.conf

各種設定ファイル

Gistにアップロードしてます。Logstashでは標準でTwitterのストリームデータを扱うためのプラグインが提供されているのでそれを使います。

Easy tweets collection system = Docker + Elasticse ...

起動

docker-compose up -dで楽々起動。localhost:5601でKibanaにアクセスできます。

メモ

  • 今回はElasticsearch、Kibana、Logstatshを一元管理していますが、使い勝手的にはLogstashは用途ごとに別々で起動したほうが使いやすいと思います。
  • 生データのツイートをそのままElasticsearchに投げているのでCPU、ディスクともに負荷がすごいです。ココらへんを参考に必要な属性に絞ってElasticsearchに投げるのが良いかと思います。

最後にツイートが溜まっていく様子を眺めます。おわり。