docker-compose で開発環境構築 〜Nginx アクセスログ(ltsv) を fluentd + elasticsearch + kibana で可視化〜

docker-compose で開発環境構築 〜Nginx アクセスログ(ltsv) を fluentd + elasticsearch + kibana で可視化〜

概要

前回構築した Vagrant 環境上で docker-compose による開発環境構築をします。

今回は前回の続きで Nginx のアクセスログを Elasticsearch + Fluentd + Kibana で可視化してみます。
アプリ

簡単構築手順

1
2
3
4
5
6
7
8
9
10
macOS% $ git clone https://github.com/kenzo0107/vagrant-docker
macOS% $ cd vagrant-docker
macOS% $ vagrant up
macOS% $ vagrant ssh
vagrant% $ cd /vagrant/nginx-efk

// -d デタッチモードでないのは各コンテナの起動状況がログで見える為です。
vagrant% $ docker-compose up
...
...

docker-compose 構成

Git にまとめています。

1
2
3
4
5
6
7
8
9
10
├── docker-compose.yml
├── fluentd
│   ├── conf
│   │   ├── conf.d
│   │   │   └── nginx.log.conf
│   │   └── fluent.conf
│   └── Dockerfile
└── nginx
└── conf
└── nginx.conf

ポイント

  • nginx のログ格納場所を volume 指定しホスト側とシンク。 それを fluentd 側でも volume 指定し tail するようにしました。

以下のようなイメージです。

ブラウザから Nginx 起動確認

ブラウザから http://192.168.35.101/ にアクセスすると
Nginx の Welcome ページが確認できます。

先程の docker-compose up 後に以下のようなログが見え
fluentd が Nginx アクセスログを捕まえているのがわかります。

Kibana にアクセス

ブラウザから http://192.168.35.101:5601 にアクセスすると
Kibana ページが表示されます。

  1. Index name or pattern

    • fluentd-* 指定
  2. Time-field name

    • @timestamp 指定
  3. Create ボタン押下

  4. レフトメニューから Discover クリック

macOS からログ確認

当然ながら macOS と vagrant とシンクしているので
macOS 上からもログが tail できます。

1
macOS%$ tail -f <path/to/vagrant-docker>/docker/nginx-efk/_log/nginx/access.log

以上です。
参考になれば幸いです。

docker-compose で開発環境構築 〜Nginx アクセスログ(ltsv) を fluentd + elasticsearch + kibana で可視化〜

https://kenzo0107.github.io/2017/04/20/2017-04-21-fke-on-docker-compose/

Author

Kenzo Tanaka

Posted on

2017-04-21

Licensed under

コメント