- Logstash を使って、日々出力されるログを Elasticsearch へと送りたい。
- filter で色々書く必要がある。
- お手軽に、書いた logstash.conf をすぐに試す環境が欲しい。
こんな必要性が出てきましたので、今回、まとめました。
こんな必要性が出てきましたので、今回、まとめました。
Docker ロギング・ドライバを使ってコンテナログを ELK スタックで利用する – oki2a24 の続きです。
前回は、 1 つの Docker Compose に、 アプリ (Nginx) も Logstash も Elasticsearch も Kibana も全部入っていました。
開発環境ではこれで足ります。けれども、他のアプリのログも集めたいとなりますと、 Elasticsearch と Kibana は独立させたいと思うようになりました。
今回、以下の 2 つの Docker Compose を用意し、これらを Docker のネットワークで繋ぐことで ELK スタックを実現できましたので、ノートいたします。
Docker Compose でミニマムに ELK スタックに入門する記録 – oki2a24 の続きです。
前回までは、 Nginx コンテナの、 Nginx のログ、 /var/log/nginx/access.log
などのログファイルを、ディレクトリ共有することで Logstash もアクセス可能にし、読み取る、というやり方でやってきました。
今回は、ログファイルをファイルに書き込むのではなく標準出力にして (変更するというよりも、標準出力がデフォルト) 、そうするとログは Nginx コンテナのログとして出力されますので、これを Logstash で扱う、ということをやっていきます。
無事できたので、ワクワクしています♪
data/logstash/pipeline/logstash.conf
data/nginx/log/
data/elasticsearch
に保存していたが、トップレベル volumes として es_data という名前で定義した。Bootstrap Checks | Elasticsearch Reference [7.0] | Elastic を見ると、完全には理解できませんでしたけれども、開発やテスト環境で -e "discovery.type=single-node"
を使うと良さそうです。