fluentdでRabbitMQにログを送信する

今回は、前回作成したRabbitMQクラスタにfluentdでログを送信する。

1. RabbitMQ側の設定

まず、事前にRabbitMQ側でvHostsなどの作成をしておこう。 ユーザは新規に「logger」ユーザを作成する。

■ vHostsの作成(「logs」)

rabbitmqadmin declare vhost name=/logs
rabbitmqctl set_permissions -p /logs guest ".*" ".*" ".*"
[root@BS-PUB-RABBITMQ01 ~]# rabbitmqadmin declare vhost...

Kafkaからデータを取得する方法はいろいろとあるようだが、今回はfluentdでKafkaからデータをPullさせてみる。 基本的にはPushのときと変わらず、fluent-plugin-kafkaを用いる。 一応、td-agentおよび必要となるプラグインのインストールコマンドは以下(CentOS 7)。

curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
yum install -y gcc
/opt/td-agent/embedded/bin/gem install fluent-...

fluentdからGraylogにGELF形式でログを転送する

fluentdからGraylogに、GELF形式のログを転送したい。s こういった場合のために、ちゃんとプラグインがあるようだ。 fluentdの動作しているサーバで、以下のコマンドを実行してプラグインをインストールする。

/opt/td-agent/embedded/bin/gem install fluent-plugin-graylog

プラグインのインストール後、fluentdの設定ファイルを以下のように記述してやる。


KafkaでSyslogを受け取らせようとしてるのだが、CentOS 7からKafkaにログを送る際rsyslogのバージョンが7系なので、そのまま送るのはちょっと厳しい(rsyslog 8.x系だったらomkafkaモジュールが使える)。 さすがにそんな気軽にほいほいrsyslogのバージョン変更するのもアレなので、定番であるfluentdをあいだに入れてやることにする。

一応、fluentdではsyslogでログを受け付けることができるのだが、udpしか受け付けられないのでログの暗号化ができない。 このため、localhostのrsyslogからログを受け付けてやるようにする。...