Fluentd Aggregator NodeをCentOS7に構築する

AWSで導入されたりデータドリブン開発が浸透するようになって
fluentdを目にする機会が多くなってきた感じです。

広告

Fluentd と td-agent の違い

ログ収集とか調べ始めると出てくるワードで、
fumeとかlogstashとかkafkaとかと一緒に出てくるイメージ。
最初調べ始めるとtd-agentとfluentdの違いで止まった記憶があります。
fluentdがでで来るのに、実際にマシンにインストールするのはtd-agetで
プロセスもtd-agentって書いてあるしなぜ!?みたいな(笑)

一応公式ページで、Fluentdとtd-agentの違いについて回答しています。

What are the differences between td-agent and Fluentd?
> In one word, td-agent is a stable distribution package of Fluentd.

td-agentはfluentdの安定版でメモリ使用が最適化されていたり、chefレシピがあったりと便利。
なので開発である読者が利用するのは、td-agentであることはほぼ間違いないのかな。
詳しくは公式サイトをどうぞ

このサイトでは、
より有名なFluentdを使用しますが
その実態はtd-agentのことです。

Fluentd Aggregatorノードマシンを設定込みで作成する

実運用で採用するとしたら、ログ収集ノードとデータ挿入ノードは分けたほうがよいです。
その時に必要になるのがAggregatorノードです。
もし予算がたっぷりあってより大規模なログ集積基盤を考えている場合
Apache Kafkaが絶対おすすめです(笑)

aggratorノードで複数のログ収集ノードから飛んでくるデータを
S3とelasticsearchに突っ込む設定を用意します。
設定とかは検索すればよく出てくるけど、
今回はマシン(CentOS7)から構築していきます。
スクリプトを用意したのでコピペで一発で構築できます(らくちーん)

Aggregatorノードの設定ファイル

fleuntd.confファイルをスクリプトを実行する場所においてください。
S3を使うためにAWSのACCESS_KEYとかが必要ですが
不要な人はコメントアウトなどしてください。

設定可能なな環境変数は下記です。
・AWS_KEY
・AWS_SEC_KEY
・AWS_S3_BUCKET_NAME
・AWS_REGION
・ELASTIC_SEARCH_HOST
・ELASTIC_SEARCH_PORT

Fluentd構築用シェルスクリプト

上の設定ファイルを置いた場所で下記スクリプトを実行してください(´・ω・`)
環境変数は上に書いてありますので適宜利用してくださいな。
コピペでもいいし。



これでログ集積基盤の真ん中らへんが簡単につくれるよね。
楽ちん楽ちん

気が向いたらansible, chefにしたやつ公開するね。
あとElasticSearchとかの構築スクリプトも公開するよ、
じゃあね〜〜〜〜。