CentOS7でFluentdを使用してログ収集をしてみよう

Fluentd
Pocket

複数のサーバがある場合、一つのサーバにログを集約すると、ログの確認が楽になります。

今回はFluentdというミドルウェアを使用して、ログ収集をしてみます。

スポンサーリンク

Fluentdインストール

Fluentdのインストールは公式サイトのインストール方法通りに進めていきます。

事前準備がありますが、テストするだけであれば、Step:1以降の作業を行うだけで十分です。

Step 0: 事前準備

事前に以下項目を設定することにより、不必要な問題を防ぐことができます。

NTPを設定

ログのタイムスタンプ間違いを防ぐため、NTPを設定します。

設定方法についてはCentOS7の初期設定まとめを参照ください。

オープンできるファイル上限数を設定

1プロセスが同時オープンできるファイル上限数を増やします。「/etc/security/limits.conf」に設定を追記した後、OS再起動で設定を反映します。

$ ulimit -n # オープンできるファイル上限数を確認
1024
$ sudo vi /etc/security/limits.conf
# 以下を追記
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536
$ sudo shutdown -r now
# OS再起動後
$ ulimit -n
65536

ネットワークのカーネルパラメータを設定

カーネルパラメータの設定を変更し、ソケットを高速に利用します。

多くのFluentdインスタンスで高負荷環境を構築する場合は設定推奨ですが、TCP_WAITに問題なければ設定不要です。

カーネルパラメータの詳細については以下のサイトがオススメです。

sudo vi /etc/sysctl.conf
# 以下を追記
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240    65535
$ sudo sysctl -p # 設定を反映
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240    65535

Step 1: RPMレポジトリからインストール

Fluentdが内包されているtd-agentというパッケージをRPMレポジトリからインストールします。

$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

Step 2: デーモンを起動

今回はCentOS7であるため、「systemctl」でtd-agentを起動します。

公式サイト通りの手順でも問題なく起動はできます。

$ sudo systemctl start td-agent
$ systemctl status td-agent
   td-agent.service - LSB: data collector for Treasure Data
   Loaded: loaded (/etc/rc.d/init.d/td-agent; bad; vendor preset: disabled)
   Active: active (running) since Sat 2017-01-07 08:17:27 JST; 11s ago

Step 3: HTTP経由のサンプルログテスト

Fluentdが正常に動作しているかのテストを行います。

ログファイルに「debug.test」が表示されていれば、問題なく動作しています。

$ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test
$ tail -3 /var/log/td-agent/td-agent.log
2017-01-07 08:17:27 +0900 [info]: listening fluent socket on 0.0.0.0:24224
2017-01-07 08:17:27 +0900 [info]: listening dRuby uri="druby://127.0.0.1:24230" object="Engine"
2017-01-07 08:23:52 +0900 debug.test: {"json":"message"}

尚、td-agentの設定ファイルとログファイルは以下のパスになります。

  • 設定ファイル -> /etc/td-agent/td-agent.conf
  • ログファイル -> /var/log/td-agent/td-agent.log

まとめ

Fluentdのインストールと簡単な動作確認を行いました。

次の記事では、実際にログを出力するサーバからログを収集する設定を実装してみます。

スポンサーリンク

feedly、RSSをフォローする