0SSTDの大村です。みなさんfluentdってご存知ですか?トレジャーデータ社の古橋さんが作られたOSSのログ収集ツールです。詳しくは古橋さんのブログをご覧ください。このfluentdですが、多くの方に愛されて成長し続けています。Dataにアップロードする方法のご紹介をさせていただきます。Toolbeltに含まれていますので、あえてインストールする必要はないのです。Toolbeltをインストールしてみましょう。Toolbeltをインストールします。ターミナルウィンドウで下記のコマンドを入力してください。Windowsよりも簡単でしたね。以後、fluentdではなくtd-agentという表現を使いますが、td-agentはfluentdの安定版という位置づけです。今回はtoolbeltを利用していますが、td-agentはfluentdを動作させるための動作が保障されたバージョンのRuby,jemallocが含まれている状態のfluentdです。最初にアクセスログを他のマシンへ送る設定をしてみましょう。Dataに送るという使われ方が多いようなので今回は1台経由します。今回の構成は下図になります。0.10.33設定まずはWebサーバ側のアクセスログを他のPCに送信する設定をしましょう。設定をするには/etc/td-agent/td-agent.confを編集します。下記のように修正します。次に受け側サーバの設定をします。/etc/td-agent/td-agent.confを下記のように修正してください。確認しやすいようにfileにアクセスログを保存する形式にしています。次にポートを開放します。受け側サーバ(192.168.0.11)のtcpとudpの24224を開放してください。両方のサーバでtd-agentを起動します。startこれで準備完了です。アクセスログ発生Webサーバ側でlocalhostにアクセスしてみましょう。今回はターミナルウィンドウで実行します。http://localhost/しばらく待って、受け側サーバの/var/log/fluent以下にファイルが作成されていれば成功です。うまくいかない場合は各サーバの/var/log/td-agent/td-agent.logを参照してみてください。ポートが開いてない、tagのつづりが間違っているなどが原因だと考えられます。td-agent.confの書き方を見てみよう<source>さて、中身を詳細に見ていきましょう。<source>タグの内容です。こちらはtd-agentに入力する側の設定を書きます。こちらのドキュメントが詳しいです。webサーバのaccess_logファイルに追加があればその情報をtd-agentで送る処理をしています。tailと記述します。forwardと書くと他のtd-agentから送られてきたアクセスログを処理します。portには送られてくるポートを書きます。fluentdの標準ポートは24224です。logの場合はapacheと指定します。他の形式もありますのでこちらを参照してください。pathは集めたいアクセスログファイルのパスになります。tagはイベントの名前になりますが、td-agentがやってきたログを振り分けるためのラベルのようなものと考えてください。今回は先のことも考えてtd.testdb.accesslogとしています。pos_fileは対象ファイルの情報をどこまで送り終わったかを記録しておくファイルです。<match>次は<match>タグの内容です。こちらはtd-agentから出力する側の設定を書きます。こちらのドキュメントが詳しいです。matchの横のパターンですが、先ほどsourceのほうで書いたtagと同じになります。td.*.*というイベントの場合はmatchタグの内容を実行するということになります。ワイルドカードで取得することができるので、この書き方だとtd.testdb.accesslogも含みます。詳しくはこちらをご覧ください。次のtypeは出力先になります。今回のようにforwardとすると別のtd-agentにログを送る処理になりますし、fileと書くとfileにログを保存する処理になります。内部にある<server>タグですが、見てのとおり、forwardするサーバの情報を記述します。Data(以後TD)にログを格納してみましょう。TDにログを送るにはアカウントのapikeyをtd-agent.confに記述する必要があります。ターミナルウィンドウでログインして下記のコマンドを実行してください。表示された文字列を利用しますのでメモしてください。apikey:showXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXそして受け側サーバの/etc/td-agent/td-agent.confを下記のように修正してください。TDに送る場合はtypeをtdlogとし、先ほど取得したapikeyを記述します。先ほどWebサーバ側で指定したtag部分がtd.{データベース名}.{テーブル名}として利用されます。テーブルが存在しない場合はauto_create_tableの記述をしているので自動でテーブルが作成されます。td-agentを再起動し、再度、Webサーバ側でlocalhostにアクセスしてみましょう。http://localhost/しばらく待ってから確認してみましょう。ターミナルウィンドウでtdコマンドで確認します。+——–+accesslogというテーブルが自動で作成され、1件データ増えているのが確認できました!!参考ページfluentdコミュニティー:http://fluentd.org/td-agentをインストールして、confファイルを編集するだけでログを集めて分析するためのいろいろな処理ができて便利な世の中になったものですね。fluentdを成長させ続けている皆様に感謝しつつ、私も普及に貢献できればいいなと思っています。雑誌等の執筆依頼を受付しております。役に立たなかった0人がこの投稿は役に立ったと言っています。コメントをキャンセルメールアドレスは表示されません。Reserved.本サイトに掲載されている社名、製品名、サービス名等は各社の商標または登録商標です。プライバシーポリシーお問い合わせ。