ログ監視ツール比較

ログ監視を行いたいが、どのツールがよいのか検討したので、簡単にメモする どのツールが良いかというのは、既存環境との組み合わせや、そもそも既存のツールで完結させたいとかそういう要望次第なのでなんとも言えない。 あくまで自分視点で比較をする。

調べた限り以下のツールが出てきた。

  • logmon
  • swatch(simple log watcher)
  • Zabbix
  • fluentd
  • logwatch

logmon

github: https://github.com/moomindani/logmon

IBM製のツール。シンプル。サンプルコードとして提供されている。

正規表現を書いて、一致する行が出てきたら即刻メールが飛んでくる。 ファイル名のパターンや正規表現に関する機能もシンプルなので、細かいところに手が届かない。

所詮サンプルなのでカスタマイズが必要

  • 言語: perl
  • 動作形態: デーモン

swatch(simple log watcher)

URL: https://sourceforge.net/projects/swatch/

イメージ的にはlogmonを改良したもの。 正規表現に一致する行があった時の動作はメールもしくはパイプで任意のコマンドを実行できる。 例えば、以下の記事のようにfluentdと連携することが可能。

http://kyudy.hatenablog.com/entry/2016/06/22/181907

  • 言語: perl
  • 動作形態: デーモン

Zabbix

URL: https://www.zabbix.com/documentation/2.2/jp/manual/config/items/itemtypes/log_items

logmonと変わらないぐらいシンプル。 単純なログ監視をする場合、かつ既にZabbixを運用しているのなら有用かもしれない。

  • 言語: なし(Zabbixのアイテム・トリガー)
  • 動作形態: Zabbixの付属機能

fluentd(grep Filter Plugin等)

URL: http://docs.fluentd.org/articles/filter_grep

grepのfilterとfluent-plugin-mailなどを使えば高度なログ監視が実現できるかもしれない。 fluentdが既に入っているなら良いかもしれない。

ただ、正規表現を追加することを想定する場合には、fluentdのリロードが必要なのが少し気持ち悪い気がした。

要件によっては自分でpluginを書いて見てもよいかも。

※ ただの個人の所感です。

  • 言語: なし(fluentdの設定で記載する)plugin書く場合はruby
  • 動作形態: fluentdの機能の組み合わせ。

logwatch

URL: https://sourceforge.net/projects/logwatch/files/

/var/log以下のログを整形して毎日レポートをくれる。 一般的なsyslogに対応していて、何か起きているとわかりやすく記載してくれるようだ。 内容としては例えばpostfix等でどのぐらいrejectしていたのかなど。

エラーログが出たときにすぐ知りたい、という使い方には対応できない。 他のツールとはその点が大きく異る。

独自アプリのログに対応させるには自分でスクリプト書かないと行けない。

  • 言語: perl
  • 動作形態: cronで定期実行