swatchをfluentdに連携させる
swatch(Simple Log Watcher)は昔からあるログ監視ツールらしい。
詳細は置いておいて、このswatchの出力をfluentdに送りたい。なぜならばデフォルトでswatchが出力できるのはmailと標準出力なので、サーバの台数が増えてくると管理できなくなる(メール100通とか毎日見たくないし、標準出力をターミナル100個見続けるとか無理)
幸いswatchは出力をpipeすることができる。
このpipeとfluent-catを組み合わせることでswatchの出力をfluentdに送出できる。
実際に動かすところまで実践してみたので、設定内容をメモする。
pipeの引数にforward_fluent.shを指定している。
このシェルは下記の通り、受けた標準出力をfluent-catに渡すものだ。
tagを指定するのと、swatchの出力をfluent-catの入力フォーマット(デフォルトではjson)に変換する必要があるので、シェルを一つかましている。
forward_fluent.sh
実行
$ swatch --daemon -c swatch.conf -f test.log --pid-file=pid
実行すると、echoもしているので色分けされた出力が標準出力に表示される。
また、同時にfluentdにも送信されているのを確認した。
以上