やりたいこと
今まで、 docker-compose up -d
後に、コンテナと共有したディレクトリをコンテナ内で chown を実行して所有グループ・所有者を変更していました。
これが面倒で、時々忘れてしまいますので、なんとか楽にできないだろうかと思いました。
今まで、 docker-compose up -d
後に、コンテナと共有したディレクトリをコンテナ内で chown を実行して所有グループ・所有者を変更していました。
これが面倒で、時々忘れてしまいますので、なんとか楽にできないだろうかと思いました。
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 という名前で定義した。docker-php-ext-configure zip --with-libzip
を追加した。winpty docker ...
など。を座右に置きながら、 Laravel 5.5 で実践したときの記録をすべて載せました。上記ページと本投稿に沿って実践すれば、 Laravel 5.5 での中級者向けタスクリストを作ることができます。
最終の完全なソースコードは次のページから取得可能です。
早速、始めていきます。
FROM debian:stretch-slim
なイメージはこれで OK でした。
例えば、今回設定したのは次です。
FROM mysql:latest ARG TZ=UTC ENV TZ ${TZ} RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone COPY ./config-file.cnf /etc/mysql/conf.d/
${TZ} は、docker-compose.yml で定義しました。args と environment です。
${WORKSPACE_TIMEZONE} は、.env ファイルで定義しています。
services: php_apache: build: context: ./php_apache args: TZ: ${WORKSPACE_TIMEZONE} environment: - TZ=${WORKSPACE_TIMEZONE} ... 略 ...
FROM php:5.6-apache RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-install gd pdo_mysql mysqli mbstring \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && a2enmod rewrite COPY ./php.ini /usr/local/etc/php/ COPY ./000-default.conf /etc/apache2/sites-available/000-default.conf