「手始めにfluentdを動かしてみた - 東京生まれHOUSE MUSIC育ち」の続きです。
目標となる構成
今回の目標となる構成は以下です。
Dockerでhttpdを起動し、別サーバのfluentdにまとめるというのものです。
参考にした記事
以下の記事を参考にさせていただきました。
Docker環境で、コンテナのログをFluentdに出力する - CLOVER?
設定
送信元
dockerでhttpdを起動します。
CentOS7,6にDockerを入れます。
# docker --version Docker version 1.13.1, build b2f74b2/1.13.1
動くことを確認したいので、Dockerfileなどは書かず、Dockerhubのイメージを使用します。
log-driver、fluentd-address、tagのオプションを入れてdocker container runします。
--rmのオプションは、コンテナ終了時にコンテナ自動的に削除です。
docker container run --rm \ --name httpd \ --log-driver=fluentd \ --log-opt fluentd-address=tcp://192.168.150.136:24224 \ --log-opt tag=docker.{{.ImageName}}.{{.Name}}.{{.ID}} \ httpd:2.4.37
送信先
fluentd側の設定です。以下のようにtagがマッチしたら標準出力するというものです。
<source> @type forward </source> <match *.**> @type stdout </match>
動作確認
docker container runでhttpdを起動すると、以下のようなメッセージが表示されます。
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
表示されているIPアドレスにcurlすると、ドキュメントルートのhtmlが読み込まれて、ログが出力されます。
# curl 172.17.0.3 <html><body><h1>It works!</h1></body></html>