Topbeat + boot2dockerでMacBookのシステムモニタリング

beats-eyecatch

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Elastic{ON} Tour 2015 in Tokyoに来ていますが、Elasticの様々なプロダクトの話が聞けて超楽しいです。

さて、今日はBeatsファミリーの1つであるTopbeatboot2dockerと組み合わせて、MacBookのシステムモニタリングをしてみました!

やってみた

boot2dockerはセットアップ済みとします。セットアップ方法はこの辺をご参照ください。

まずはElasticsearchコンテナを起動します。

$ docker run --name elasticsearch -it -p 9200:9200 elasticsearch

次にtopbeatをダウンロードし、展開します。

$ curl -O https://download.elastic.co/beats/topbeat/topbeat-1.0.0-darwin.tgz
$ tar xvzf ./topbeat-1.0.0-darwin.tgz
x topbeat-1.0.0-darwin/
x topbeat-1.0.0-darwin/topbeat.template.json
x topbeat-1.0.0-darwin/topbeat.yml
x topbeat-1.0.0-darwin/topbeat

$ cd topbeat-1.0.0-darwin/

今回はboot2dockerでElasticsearchを起動しているので、Topbeatの設定ファイルの一部を編集します。具体的には、Elasticsearch HostのIPアドレスをlocalhostからDOCKER_HOSTに変更します。

$ vi ./topbeat.yml
output:
  elasticsearch:
    hosts: ["<DOCKER_HOSTのIPアドレス>:9200"]

そしてtopbeatを起動します。

$ sudo ./topbeat -e -c topbeat.yml

topbeatがデータを取得し、Elasticsearchに投入していることを確認します。

$ curl -XGET 'http://<DOCKER_HOSTのIPアドレス>:9200/topbeat-*/_search?pretty'

次にKibanaを起動。こちらもboot2dockerでKibanaコンテナとして立ち上げ、Elasticsearchコンテナとリンクさせます。

$ docker run --name kibana --link elasticsearch:elasticsearch -p 5601:5601 -d kibana

Webブラウザでhttp://<DOCKER_HOSTのIPアドレス>:5601/にアクセスすると、Kibanaの初期画面が見えます。Indexはtopbeat-*を指定します。

Settings_-_Kibana

すると以下のようにtopbeat-*のIndexの内容が見えます!

topbeat-__-_Settings_-_Kibana

さて、ダッシュボードを一から作るのはタルいです。なんと!Beats用のDashboardが用意されています。素晴らしい。tar.gzファイルをダウンロードし展開します。

$ curl -L -O http://download.elastic.co/beats/dashboards/beats-dashboards-1.0.0.tar.gz
$ tar xzvf beats-dashboards-1.0.0.tar.gz
$ cd beats-dashboards-1.0.0/

そしてElasticsearchコンテナに向けてload.shを実行します。

$ ./load.sh http://<DOCKER_HOSTのIPアドレス>:9200

Webブラウザで表示したKibanaをリロードして、Dashboard画面を開き、[+]マークをクリック。

Dashboard_-_Kibana

すると多数のDashboardパーツがインポートされています。なんと12ページもあります!

Dashboard_-_Kibana 2

こんなカッコいいシステムモニタリング・ダッシュボードが3分で作れちゃいます!

Dashboard_-_Kibana 3

さいごに

Beatsはコミュニティベースも含め、今後様々なものがリリースされていきそうです。Elastic社としても力を入れているようです。非常に楽しみな展開ですね!