この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
昨日はTopbeat + boot2dockerでMacBookのシステムモニタリングを行いました。今日はFilebeat + boot2dockerでMacBookのログモニタリングをしてみました!
やってみた
boot2dockerはセットアップ済みとします。セットアップ方法はこの辺をご参照ください。
まずはElasticsearchコンテナを起動します。
$ docker run --name elasticsearch -it -p 9200:9200 elasticsearch
次にfilebeatをダウンロードし、展開します。
$ curl -O https://download.elastic.co/beats/filebeat/filebeat-1.0.0-darwin.tgz
$ tar xvzf ./filebeat-1.0.0-darwin.tgz
x filebeat-1.0.0-darwin/
x filebeat-1.0.0-darwin/filebeat
x filebeat-1.0.0-darwin/filebeat.template.json
x filebeat-1.0.0-darwin/filebeat.yml
$ cd filebeat-1.0.0-darwin
今回はboot2dockerでElasticsearchを起動しているので、Filebeatの設定ファイルの一部を編集します。具体的には、Elasticsearch HostのIPアドレスをlocalhostからDOCKER_HOSTに変更します。
$ vi ./filebeat.yml
output:
elasticsearch:
hosts: ["<DOCKER_HOSTのIPアドレス>:9200"]
Filebeatはデフォルトで/var/log/*.logを取得対象としています。今回はそのまま。
paths:
- /var/log/*.log
そしてfilebeatを起動します。
$ sudo ./filebeat -e -c filebeat.yml
filebeatがデータを取得し、Elasticsearchに投入していることを確認します。
$ curl -XGET 'http://<DOCKER_HOSTのIPアドレス>:9200/filebeat-*/_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はfilebeat-*を指定します。
はい、/var/log/*.logをFilebeatが取得して、Elasticsearchに投入して、Kibanaで可視化できてます!
さいごに
Packetbeatネタも近々ブログ公開予定です。お楽しみに!