Fluentd 基本

■Fluentdとは
ログを収集して集約・管理するためのソフトウェア。収集したデータはjson形式で管理される。
RDBMSではないので、基本的にSQLでは操作できない。代わりにREST APIを通じて操作する。
fluentdではなくtd-agentを使用したほうが簡単。
td-agentは、rpm/deb形式で以下がパッケージングされている。
  • fluentdが利用するRuby実行環境
  • fluentdの安定バージョン
  • 起動や停止をするためのinit script
fluentdを使いたい場合はruby gemからインストールする。
外部のプラグインを利用することで柔軟な収集(Input),保管方法(output)を定義できる。
■Fluentdのデータの流れ
Input
流れてくるデータの収集方式を決める。
各種データソースのログにタグをつけて収集する。
インプット用プラグインを指定する。
td-agentの設定ファイルの<source>ディレクティブでInput時の動作設定を行う。
例えば、
  • どんな形式のログを
  • どの場所から
  • どのようなタグをつけて
  • どのようなフォーマットで、
といった具合に収集の仕方を予め定義する。
Output
データ保存先へ出力する。
Input時に指定したタグに合致して収集したデータを、指定した方法で処理する。
例えば、
  • 他のfluentd serverにそのままフォワードする
  • テキストファイルに書き出す
  • MySQLに登録する。
  • Elastic searchに登録する。
■fluentが扱うデータ構造の基本
Fluentdは取得したデータをjson形式で取得する。jsonで保管しておくと他のシステムからデータ利用がしやすくなる。
  • tagは文字列型、保管するデータのテーブル名的なかんじ。
  • timeは数値型(UNIX時間)、データの作成日時などが付与される。
  • messageはオブジェクト型のkey-valueストア形式となる。ユーザが実際に保管したいデータがこれ
[
 tag,
 time,
 record = {key: “value”, key: “value”}]
■インストール/初期設定
td-agentはインストールスクリプトが用意されているのでそれを利用すると楽。
設定ファイルを管理ホスト毎に管理したいので、別ディレクトリに保持するための設定を行っておく。
//install
chkconfig td-agent on
//mkdir for config-files
mkdir /etc/td-agent/conf.d
echo ‘@include conf.d/*.conf’ >> /etc/td-agent/td-agent.conf
vi /etc/td-agent/conf.d/xxxxx.conf
■よく使うプラグインインストール
td-agentの場合は、td-agent-gemを使用する。
プラグイン一覧はここ:https://www.fluentd.org/plugins/all
・書式
#install
td-agent-gem install xxxxxx
#update
td-agent-gem update xxxxxx
#show list
td-agent-gem list
#search plugin
td-agent-gem search -r xxxxxx
fluent-plugin-multi-format-parser
1つのログに複数のフォーマットが存在している時に便利。フォーマット指定が複数行うためのプラグイン。
fluent-plugin-elasticsearch
fluent-plugin-mysql
fluent-plugin-dstat
Bookmark this on Google Bookmarks
LINEで送る
Pocket