2013-02-24

fluentdを試用してみた

使った感想は以下のとおり。 完全にサーバーサイドのプログラム。
テストしたバージョンは、0.10.31
何かの参考になれば幸い。
  1.  xmlもどきの設定ファイルで操作する。
  2. <source>
    type dstat
    tag  dstat.origin
    option -cmdn
    delay   5
    </source>
    
  3.  重要な要素はsourceとmatch
  4.  タグの名前で振る舞いを切り分ける
  5.  ファイルへ書き込みコンソールへ出力など処理を増やしたいときはtype:copyを使用する
  6.  プラグインが豊富だが、source/match用どちらの用途かは一見しただけではわからない。
  7.  プラグインの作り方の説明はドキュメントだけではわかりづらい。組み込み/既存のソースを見ることも必要となる
  8.  正規表現で要素を切り分けるので、正規表現を使い慣れていない人は大変かも
  9. (?<host>[^ ]*)
    
    よく出てくるこれは、「host」という名前(正規表現の説明によれば名前付き捕獲式集合)をつけて、スペース以外の文字を0文字以上の意味。 ここでハット(^)マークはカッコの中なので先頭ではなく否定として使われる。 => 単語となる。
  10. メッセージが複雑なときはフィルター(exec_filter)でなんとかなる。でもout_formatがjsonだとバッファリングが発生して出力時間がもったいないことになる。出力タイプはmsgpackを使おう。
  11. exec_filterでmsgpackを使うときはprintで出力すること。putsは改行マークが付いておかしなことになる。
  12. exec_filterで起動させるスクリプトは、常時起動状態になる。ロギングをしている限り、終了することはない。
  13. 設定を読みこませるときは、「pkill -HUP -f fluentd」