Topbeat on Mac

Elasticsearchにおいて表題を試す。

■ 環境

  • Mac OSX (10.10.5)
  • Elasticsearch 2.1.1
  • Kibana 4.3.1
  • Docker 1.9.1

■ Elasticsearch + Kibana

下記エントリの通り。

Elasticsearch + Kibana on Docker

■ topbeat

Elasticsearchの”beats“に関してはいろいろ説明のエントリが出ているので省略。下記ドキュメントを見てMacの`top`を可視化する。

https://www.elastic.co/guide/en/beats/topbeat/current/topbeat-getting-started.html

以降はドキュメントの中から必要なところだけ実施。

$ curl -L -O https://download.elastic.co/beats/topbeat/topbeat-1.0.1-darwin.tgz
$ tar zxf topbeat-1.0.1-darwin.tgz

3ファイルだけ存在している。

  • topbeat
  • topbeat.template.json
  • topbeat.yml

設定ファイル(topbeat.yml)を書き換える。33行目の”hosts“の配列に、Dockerで稼働しているElasticsearchのIPを指定する。ここではもちろんDockerホストのIPである。

 28   elasticsearch:
  :
 33     hosts: ["192.168.99.100:9200"]

上記以外はとりあえずデフォルトままで行う。

続いてインデックスのテンプレートをElasticsearchに投入する。

$ cd topbeat-1.0.1-darwin
$ curl -XPUT 'http://192.168.99.100:9200/_template/topbeat' -d@topbeat.template.json
{"acknowledged":true}$

true“と返っていれば問題無いであろう。

続いて`topbeat`を実行する。ドキュメントままに実行する。

$ ./topbeat -e -c topbeat.yml -d "publish"

Kibanaにアクセス。

http://192.168.99.100:5601/

topbeat-001

Index name or pattern“には”topbeat-*“を入力し、”Create“。

topbeat-002

ダッシュボードはGitHubで公開されているものを使わせてもらう。

$ git clone https://github.com/elastic/beats-dashboards

$ cd beats-dashboards
$ ./load.sh http://192.168.99.100:9200

上記を実行すればいくつかのダッシュボードが投入されているはずである。

Topbeat-Dashboard“を開くと下記の通りである。

topbeat-003

以上。

■ 関連

Elasticsearch + Kibana on Docker

表題の通り。DockerでElasticsearchとKibanaを動かす。

■ 環境

  • Mac OSX (10.10.5)
  • Docker 1.9.1
  • Docker Machine 0.5.5
  • Elasticsearch 2.1.1
  • Kibana 4.3.1

■ Docker

まずはDockerの環境を確認。”Docker Machine“で稼働させているいつものDockerホストを利用する。

$ docker-machine ls
NAME    ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER   ERRORS
local   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.9.1
$
$ docker version
Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.5.1
 Git commit:   a34a1d5
 Built:        Sat Nov 21 00:48:57 UTC 2015
 OS/Arch:      darwin/amd64

Server:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.3
 Git commit:   a34a1d5
 Built:        Fri Nov 20 17:56:04 UTC 2015
 OS/Arch:      linux/amd64
$

Elasticsearch“と”Kiabana“のコンテナを取得するが、事前にDockerHubで確認をし、どちらも最新版(latest)を利用することにした。

$ docker pull elasticsearch
$ docker pull kibana

■ Elasticsearch

Elasticsearchを起動する。判別しやすいように`–name`オプションで”elasticsearch”と付けているが、これは以降で起動する”Kibana”のコンテナでも利用するからである。

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

`curl`でクラスタの状態を確認する。接続先は`docker-machine ls`で得られるDockerホストのIPを指定する。

$ curl '192.168.99.100:9200/_cat/health?v'
epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1452242652 08:44:12  elasticsearch green           1         1      0   0    0    0        0             0                  -                100.0%
$

問題無く稼働しているようである。

■ Kibana

Kibanaを起動する。先に起動しているElasticsearchにアクセスできるように`–link`オプションを指定する。

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

コンテナが稼働していることが確認できればブラウザで見てしまう。接続先のIPはElasticsearchと同様に`docker-machine ls`で確認できているDockerホストのIPである。

http://192.168.99.100:5601/

kibana-001

画面が正常に出力されているようなので良しとする。

以上。

■ 関連