Show page source of FrontPage #91723

= [[ProjectName]] Wiki =

== [[ProjectName]] とは ==

Windowsの中でいつのまにか発生しているエラーを通知できる環境を作ろうと考えています。

今の段階で監視対象として考えているのは、イベントログ(ApplicationおよびSystem)とテキスト形式のログファイルです。
ついでに UNIX/Linux で使われる syslog の転送にも対応して、複数のOSの通知を一括して管理できるようにしようとしています。
とはいいながらも、本格的な統合監視をするならやはり [https://www.zabbix.org/ zabbix] 等を使った方が良いです。
ewatch は1台からでも使える手軽な監視ツールという位置付けで考えています。

== プログラム構成 ==

* EWatch
 Windowsサービスとして動作する本体のプログラム。
 設定ファイルに従ってイベントログやログファイルを監視し、指定されたアクションを実行します。

* EWatchUI
 今のところ、単なる設定ファイル編集ツール。

== アクション ==
ここでは概要だけを記します。詳細については [Actions] を参照してください。

* コマンド実行
 指定したコマンドを実行できます。コマンドの引数にログの内容を渡す事ができます。

* Eメール送信
 指定したEメールアドレスにログの内容を送ります。

* syslog転送
 指定した syslog サーバーにログを送ります。

* MantisBT登録
 指定したURLのMantisBTに障害として登録します。

== 設定ファイルの例 ==

notepad等でサッと編集しようとすると XML は面倒くさいので、json形式で記述するようにしています。

{{{ code javascript
{
  EventLog: {
    Application: [
      /* エラーを growl で通知 */
      { logLevel:'E', match:null, ignore:null, actions:[ { type:'execute', CommandLine:'"C:\\Program Files (x86)\\Growl for Windows\\growlnotify.exe" /t:EWatch "$message"'} ]},
    ],
    System: [
      /* エラーをメールで通知 */
      { logLevel:'E', match:null, ignore:null, actions:[ { type:'smtp', FromAddress:'???@gmail.com', ToAddress:'???@gmail.com,???@gmail.com', ServerHost:'localhost:25'} ]},
      /* エラー以外を syslog で通知 */
      { logLevel:'', match:null, ignore:null, actions:[ { type:'syslog', RemoteHost:'192.168.0.2'} ]},
    ]
  },
  File: {
    /* test.log に [ERROR] が含まれていればコマンド(test.bat)を実行 */
    "C:\\test.log" :[
      { match:'\\[ERROR\\]', ignore:null, actions:[ {type:'execute', CommandLine:'C:\\test.bat "$timestamp" "$hostname" "$source" "$level" "$code" "$message"'} ]},
    ]
  },
  Syslog: {
    /* 514ポートで待ち受け、ERR が含まれていれば growl で通知 */
    "514" : [
      { match:'ERR', ignore:null, actions:[ {type:'execute', CommandLine:'"C:\\Program Files (x86)\\Growl for Windows\\growlnotify.exe" /t:EWatch "$message"'} ]},
    ]
  }
}
}}}

== その他 ==
[[ReleaseList]]
[[RecentTickets(limit=5)]]