#fluentdとは
fluentdはオープンソースのデータコレクターやデータログ収集ツールでデーモンとして動作します。デーモンとはUnix系のOSでいつも常駐しているプログラムのことです。今のところfluentdはLinux上での動作が主に想定されています。読み方ですが フルエントディーです。プラグインでGoogleのBigqueryが使えるので近いうちに導入しようと思います。
環境
macOs Docker for mac ローカル環境をぶっ壊すのがとても怖いので、Docker上でやることにしました。 Dockerのインストールは こちらへ https://www.docker.com/docker-mac$ docker --version
Docker version 18.06.0-ce, build 0ffa825
dockerがインストールされたことが確認できました。
Ubuntu:xenialのイメージを取得する。
とても簡単です。1行で終わります。$ docker pull ubuntu:xenial
取得したイメージは以下で確認できます。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu xenial 7aa3602ab41e 11 days ago 115MB
このイメージをもとに、Containerを起動しましょう
root@06b0ca1235f9:#
のようになれば成功です
$ docker run --name fdtest01 -it ubuntu:xenial /bin/bash
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06b0ca1235f9 ubuntu:xenial "/bin/bash" About an hour ago Up About an hour fdtest01
起動しました。
あとあと必要なコマンドが使えるようにしておきます。
# apt-get update
# apt-get install sudo
# apt-get install curl
# apt-get install vim
fluentdをインストールする。
いよいよfluentdのインストールです。 ここら辺は公式を見てあげればいいと思います。fluentdですが、td-agentというものをインストールします。以後もこれがよく出てくるんので一緒に覚えておくといいと思います。
# curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-xenial-td-agent3.sh | sh
これでfluentdがUbuntu上にインストールされました。
td-agent(fluentd)の起動やストップ、再起動は以下のようにします
# /etc/init.d/td-agent start
# /etc/init.d/td-agent stop
# /etc/init.d/td-agent restart
スタートしてあげたのちに、設定ファイルを確認しましょう。
諸々の設定ファイルは、
/etc/td-agent にあります。conf.d , plugin, td-agent.conf らです。
td-agent.confをvimコマンドで見てあげると、http通信は
# HTTP input
# POST http://localhost:8888/<tag>?json=<json>
# POST http://localhost:8888/td.myapp.login?json={"user"%3A"me"}
# @see http://docs.fluentd.org/articles/in_http
<source>
@type http
@id input_http
port 8888
</source>
## live debugging agent
<source>
@type debug_agent
@id input_debug_agent
bind 127.0.0.1
port 24230
</source>
とありますね。curlコマンドを使って、POSTメソッドでlocalhost:8888でhttp通信して見ます。
# curl -X POST -d 'json={"test":"hello fluentd"}' http://localhost:8888/debug.test
試しに、ログを確認してみましょう。
ログは /var/log/td-agentにある td-agent.logに出力されています。
2018-08-07 08:40:44.262606600 +0000 debug.test: {"test":"hello fluentd"}
ログに出力がされていました。
何か間違いや訂正等ありましたらご連絡ください。