宿題
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
です。
ということで...
導入を試すことからちゃんと運用してくように引き続き検証を進めていくべ。