まとめ
- あらかじめ用意するディレクトリは、 Docker でミニマムに ELK スタックに入門する記録 – oki2a24 とほぼ同じ。
data/logstash/pipeline/logstash.conf
data/nginx/log/
- Elasticsearch のデータは、 Docker でミニマムに ELK スタックに入門する記録 – oki2a24 では
data/elasticsearch
に保存していたが、トップレベル volumes として es_data という名前で定義した。 - 各 service に depends_on を設定した。
- elasticsearch: 何にも依存しないのでなし。
- kibana: elasticsearch がないと動かしても意味ないので、 elasticsearch を depends_on に設定した。
- logstash: elasticsearch がないと動かしても意味ないので、 elasticsearch を depends_on に設定した。
- nginx: ログを扱ってくれる logstash があらかじめ起動しておいて欲しいので、 logstash を depends_on に設定した。
コード
docker-compose.yml
data/logstash/pipeline/logstash.conf
は Docker でミニマムに ELK スタックに入門する記録 – oki2a24 に記載の内容と同じ。
動作確認
docker-compose up -d
でコンテナを起動する。http://localhost/
にアクセスし、 "Welcome to nginx!" ページが表示されることを確認する。ll data/nginx/log/
などで、access.log
が更新されていることを確認する。http://localhost:9200/
にアクセスし、 Elasticsearch の情報が表示されることを確認する。http://localhost:9200/_cat/indices?v
へアクセスし、data/logstash/pipeline/logstash.conf
の output の index で定義した access_log1 が表示されることを確認する。- http://localhost:5601 にアクセスし、左サイドメニューの "Dev Tools" を開いて、 "Console" に
GET /access_log1/_search?pretty=true
を入力、緑色の "▶︎" をクリックして、右側に Nginx のアクセスログが表示されることを確認する。
http://localhost:9200/
で表示された内容。
http://localhost:9200/_cat/indices?v
で表示された内容。
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open access_log1 q1Cho1lYSiaExFrIV88Avg 1 1 23 0 37.2kb 37.2kb
green open .kibana_1 9A2zhlo8SbySvDQfFkHU9Q 1 0 0 0 283b 283b
おわりに
本投稿は Docker でミニマムに ELK スタックに入門する記録 – oki2a24 の続きとなります。
途中でちょっと調べたくなって、 elasticsearch-oss:7.0.0
の -e “discovery.type=single-node”
とは何か? – oki2a24 を残しました。
また、次のページが参考になりました、ありがとうございます!
以上です。