宿題
mail.log の日付フォーマットを変更してしまっていた
rsyslog.conf を調整して mail.log の日付フォーマットを Jul 13 17:45:37 となっているのを 2013-07-11T07:01:44.698907+09:00 に変更した上で fluentd でパースさせてた。
Debian に fluentd をパッケージから導入する
Debian に fluentd をパッケージからインストールしてみる。gem からインストールする場合には既存の ruby 環境を弄らずに導入する方法を模索する。
解決
fluentd のドキュメントをちゃんと読めば良かった
日付のフォーマットを従来のフォーマット(Jul 13 17:45:37 のようなフォーマット)でも fluentd でパースさせるには format にて以下のような正規表現で記述する。
format /^(?<time>[^ ]* [^ ]* [^ ]*)
これは fluentd の Input Plugin である in_tail プラグインドキュメントにちゃんと記述されていた...。恥ずかしい限りです。ということで、format を修正して以下のような fluent.conf を作成した。
修正後は redis にも以下のように登録されるようになった。
td-agent の deb パッケージが提供されている
有難い日本語のドキュメントに紹介されていた方法通りに deb パッケージに td-agent を導入する。ドキュメントからの抜粋となるが Debian 6 系の場合には以下のようにインストールする。尚、ドキュメントに記載されているように Ubuntu 12.04 LTS / Precise と Ubuntu 10.04 LTS / Lucid のみサポートしているようだ。
curl -L http://toolbelt.treasure-data.com/sh/install-ubuntu-lucid.sh | sh
上記は /etc/apt/sources.list.d/treasure-data.list に新しい apt リポジトリを登録し、td-agent の deb パッケージをインストールする。インストールに際しては curl と sudo が必要となるので予めインストールしておく。
尚、td-agent は fluentd の安定版という立ち位置のプロダクトで、こちらにその違いが明記されている。
deb パッケージで導入すると init.d 以下に起動スクリプトが設置されると共に /usr/lib/fluent 以下に組み込みの ruby 等がインストールされる。
root@host:/usr/lib/fluent# tree -L 2
.
├── jemalloc
│ ├── bin
│ ├── include
│ ├── lib
│ └── share
└── ruby
├── bin
├── include
├── lib
└── share
10 directories, 0 files
プラグインのインストールは以下のようにして組み込みの gem を利用してインストールすることになる。
/usr/lib/fluent/ruby/bin/gem install fluent-pluをgin-redis --no-ri --no-rdoc -V
また、インストールしたプラグインは /usr/lib/fluent/ruby/lib/ruby/gems/1.9.1/gems 以下にインストールされる。
そして td-agent をセットアップする chef の cookbook まで用意されている
板前には嬉しいことに td-agent をセットアップする cookbook が提供されているので利用してみる。尚、こちらも deb パッケージと同様に Ubuntu と CentOS 、RedHat 環境のみのサポートとなっているようなので Debian 環境での利用はお試しの範囲で...。
利用に際しては apt と yum の cookbook が必要となるので予め用意した上で、以下のように run_list を用意する。
当然ながら Debian 6.0.7(squeeze)だとうまくインストールが終わらかなったので Debian 環境(今んとこ squeeze のみ)でパッケージがインストール出来るように修正したものを pull request してみた。
以下の部分を追記してみた。
手元の検証環境では上記を追記した cookbook で td-agent をインストールすることが出来た。やはり、ここでも ohai サマサマ。働きモノの ohai です。
ということで...
導入を試すことからちゃんと運用してくように引き続き検証を進めていくべ。