Filebeat + boot2dockerでMacBookのログモニタリング

この記事は公開されてから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-*を指定します。

Settings_-_Kibana

はい、/var/log/*.logをFilebeatが取得して、Elasticsearchに投入して、Kibanaで可視化できてます!

Discover_-_Kibana

さいごに

Packetbeatネタも近々ブログ公開予定です。お楽しみに!