fluentd によるログファイル転送
ログのリアルタイム転送で fluentd が思い浮かばない人はいないでしょう。歴史もありますし、EFK(ElasticSearch, fluentd, kibana)などの用語すらあったりします。
超有名ソフトなので機能説明は省略しますが、今回はこの flunetd によるログ転送の中継コネクションにリモナビを使うケースを紹介していきます。
ちょっとした厄介ごと
fluentd は利用のみならず、config 設定もとても容易で、ただ一点、ご存じの方も多いと思いますデータ転送と並列に実施される heartbeat に UDP 通信が利用されること。 デフォルトの 24224 ポートの公開は TCP|UDP 両方必要。インターネットを使って中継する際の唯一の面倒と言っていいのがこれ。
さて、中継にリモナビを使って、ローカルネットにログファイルを転送する上でこの課題、どう解決する?
リモナビでローカルネットに転送
fluentd は 転送元 out に forward、転送先 in に forward の、最も単純な設定を利用します。 はて? IPポート 24224 の TCP, UDP 2つをリモナビで接続する?
fluentd の設定による簡単な解決
リモナビでは、1つの Sender で同一ポートを TCP|UDP で同時利用することができません。 ですが、問題ありません。そもそも fluentd の forward では、heartbeat機構をデータ転送の IPポート 24224 TCP で実現する設定があります。
つまり、24224ポート TCP のみの中継コネクションさえ用意できれば、リアルタイム転送できるんです。
UDP を使わない方法も改めてするような話ではありませんが、知らない、やったことがない、って人も一定数いると思いますので、今回触れさせてもらいました。(リモナビを使う上で必要なことだから、なんですけどね)
接続構成
接続構成図は中継にお決まり、[RemoNavi Sender|SaaS|Receiver] を配備して、転送元、転送先に fluentd を配備するだけの簡単構成。
データベースに接続するかのように、転送先 fluentd を指定するだけ。 fluentd 転送で利用する TCP/IPポートは (24224) 。
ちょっと面倒なのは fluentd の config 設定。それについては、以下にズバリ設定例を掲載します。
具体的な設定
転送元の設定
-
転送元 RemoNavi Sender の 設定
fluentd 設定に焦点をあてるので、RemoNavi の設定は最後に別掲します。 -
転送元 fluentd 設定
今回は転送に nginx のアクセスログを利用しますので、 in は tail。
out は forward で、ポイントは転送先。ここに RemonNavi の Sender を指定します。fluent.conf<source> @type tail format ltsv path /var/log/nginx/access.log pos_file ./access.log.pos tag nginx.access </source> <match nginx.access> @type forward heartbeat_type transport <-- heartbeat を TCPに heartbeat_interval 30 require_ack_response true <server> host localhost <-- RemoNavi Sender の転送先IPアドレス port 9101 <-- RemoNavi Sedner の転送先IPポート </server> </match>
fluentd -c flunet.conf 直起動ならこんな感じですが、起動管理はお任せします。
転送先の 設定
-
転送元 RemoNavi Receiver の 設定
fluentd 設定に焦点をあてるので、RemoNavi の設定は最後に別掲します。 -
転送元 fluentd 設定
転送を受信するので、in は foward。
out は 紹介なので、受信したデータを表示するだけにします。fluent.conf<source> @type forward port 24224 <-- 今回はデフォルトの 24224 を利用します tag nginx.access </source> <match nginx.access> @type stdout <-- 今回はファイル保存せず表示だけにします </match>
fluentd -c flunet.conf 直起動ならこんな感じですが、起動管理はお任せします。
RemoNavi の設定
設定はこれまでにも幾度か説明してきましたので簡略掲載します。
- RemoNavi SaaS にて 「SecureGateway(中継路)設定」をします。
- 転送元・環境にて
上記 fluentd.confの設定では、fluentd と RemoNavi Sender を同一ホストにインストール- RemoNavi Sender をインストール
-
RemoNavi Sender の利用設定
- 待受ポート番号は [9101] で利用設定
- 転送先・環境にて
- RemoNavi Receiver をインストール
- RemoNavi Receiver を利用設定
- Sender | Receiver は RemoNavi SaaS から DL してインストールする必要があります。
- インストール詳細はリモナビ社のドキュメントサイトの「運用マニュアル」を参照してください。
https://remonavi.com/?pos=saas_doc