4.Beats(Metricbeat+Filebeat)のセットアップ(後半)
次はBeatsのサービスを立ち上げます。
サービスが立ち上がるとelasticsearchにログが出力される様になり、いよいよkibanaでモニタリングができる様になります。
次のdocker-composeファイルを作成し、サービスを立ち上げてください。
version: '3.7'
services:
metricbeat:
image: docker.elastic.co/beats/metricbeat:7.5.1
user: root
volumes:
- ./config/metricbeat.docker.yml:/usr/share/metricbeat/metricbeat.yml:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
- /proc:/hostfs/proc:ro
- /:/hostfs:ro
command: metricbeat -e -E output.elasticsearch.hosts=["elasticsearch:9200"]
networks:
- elastic-base_default
filebeat:
image: docker.elastic.co/beats/filebeat:7.5.1
user: root
volumes:
- ./config/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
command: filebeat -e -strict.perms=false -E output.elasticsearch.hosts=["elasticsearch:9200"]
networks:
- elastic-base_default
networks:
elastic-base_default:
external: true
docker stack deploy --prune -c docker-compose-beats.yml elastic-beats
なんとこれだけです。こちらもdocker-composeファイルさえあれば、ほとんどコマンド一発で起動完了します。
ポイントはelastic-baseを立ち上げたときにattachableにしたelastic-base_defaultを、elastic-beatsから参照することです。
この辺を意識して構成すると、swarm外のサービスと連携する必要がない限り、elasticsearchのports設定は要らなくなります。
さて、これで全ての構成が完了しましたので、
http://localhost:5601
にアクセスして、左のメニューからDashboardを選んでください。
searchに「metric system」あたりを入力するといい感じのダッシュボードが検索できるはずなので、いろいろ見てください。
また、この状態でswarmノードにnginxコンテナを立てたりすると、そのログをkibanaで見ることができます。Dashboardの検索に「filebeat nginx」をいれていい感じのダッシュボードを探してみてください。
感動しますよ!
これで、マシンモニタリング編は終了です。
が、metricbeatやfilebeatが特別な設定なしに、stack外のコンテナの情報まで収集できるのにはHints based autodiscoverという仕組みが非常に重要な役割を果たしています。今度投稿する際にはこの辺りを解説できればいいなぁ...
Elasticsearch+Kibana自体はログに限らず、いろんな物の分析に使用できるので、機会があればまた投稿してみます。
Elasticsearch+Kibana+Metricbeats(+FIlebeats)でマシンモニタリング①
Elasticsearch+Kibana+Metricbeats(+FIlebeats)でマシンモニタリング②
Elasticsearch+Kibana+Metricbeats(+FIlebeats)でマシンモニタリング③
Elasticsearch+Kibana+Metricbeats(+FIlebeats)でマシンモニタリング④
参考リンク:
https://www.elastic.co/guide/en/beats/metricbeat/current/running-on-docker.html
https://www.elastic.co/guide/en/beats/filebeat/current/running-on-docker.html
https://www.elastic.co/guide/en/beats/filebeat/current/configuration-autodiscover-hints.html
https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html