Judgement

Judgement? bookmark

judgement.jpg
  • Judgementはフリーのサーバー監視プログラムです。
    3種類の設定ファイル(動作/報告/スケジュール)を記述する事で様々な監視を可能にします。
    watcherやswatchと似た様なプログラムでGUIいらなくて
    結果をメールで受け取りたい人向けです。*1
     
     
     
  • 機能
    • 検出機能
      • ログファイルから特定キーワードを含む行の検出
      • コマンド出力から特定キーワードを含む行の検出
      • ping等を利用したNW機器監視
      • ディスク使用率の監視
      • 特定プロセスの監視(+ダウン時の自動起動)
      • コマンドの定時実行
      • メモリ使用量の監視
      • swatchrcの取り込み(1.2.0からの新機能)
      • nagiosのプラグイン対応(1.4.0からの新機能)
      • SNMP Trap V1 or V2c受信機能(1.6.0からの新機能)
      • その他tcpdumpとかと組み合わせて特定パケットの検出等色々可能です。
    • 結果出力機能
      • メールでの出力
      • druby経由でのJudgementWeb?への出力
      • XMLRPCを利用した出力(metaWeblog API使用)(1.7.0からの新機能)
         開発時はtdiaryで動作確認しました。
  • プログラム的特長
    • Rubyで記述されています。
    • 設定ファイルはYAMLを使用しています。

judgementの今後のリリース bookmark

judgementはRuby-1.8.7とRuby-1.9.1では共通コードで実行できませんので
当分の間は、Ruby-1.8.7用とRuby-1.9.1用の2種類をリリースしようと考えています。
で、バージョン番号を以下の様にして区別したいと思います。
A.B.C.D.E
A.B = 機能追加時にアップされるバージョン番号
C = バグフィックスのみの場合にアップされるバージョン番号
D.E = 1.8 or 1.9 対応するRubyのバージョン番号
例.
  Ruby-1.8.7用 2.1.0.1.8
  Ruby-1.9.1用 2.1.0.1.9

judgement-2.0.0をRuby-1.9.1環境で動作するためには? bookmark

judgement-2.0.0ではメール送信部分がruby-1.9.1ではエラーに
なっちゃいますのでどうしても1.9.1環境で動作させたい場合は、
以下のパッチを適用して下さい。

適用方法
1.上記パッチをダウンロード
2.judgementインストールディレクトリ/lib/coreに移動
3.patch -p0 < パッチファイル

最新の変更点 bookmark

  1. Ruby-1.8向けJudgemebnt
  2.   + 独自変数<MACADDR/>追加
  3.   MACアドレスに一致します。
  4.   + サンプルdoc/sample/jconf/Ebtables.yaml追加。
  5.     ebtablesログ内の特定のパケット検出に利用可能です。
  6.   * マルチバイト文字が含まれる場合に検出位置のマーキングがズレるのを修正。
  7. Ruby-1.9向けJudgemebnt
  8.   * lib/addon/DiffCat.rbでBASE64デコード処理に抜けがあったので修正。
  9.   * lib/addon/ExternalExec.rbでBASE64デコード処理に抜けがあったので修正。

動作環境 bookmark

  • Ruby 1.8.7以上
    *Ruby 1.9.Xではメール送信部分が正常に動作しません。(2009-02/12追記)
    *SNMP Trap受信機能を使用する場合はrubygemsが必要です。
    *SNMP Trap受信機能を使用する場合はgem経由でsnmpをインストールする必要があります。
  • Rubyが動作するOS
    *開発環境ではCentOS4.4/WindowsXP SP2で動作確認を行いました。
    *Windowsの場合はrubygemsが必要です。
    *Windowsの場合はgem経由でwin32-serviceをインストールする必要があります。

関連リンク bookmark

ライセンス bookmark

BSDライセンス

ダウンロード(ruby-1.8.7用) bookmark

  • バージョン : 2.2.0.1.8 (2009/04/08)
  • 文字コード/改行 : UTF8N/LF
  • MD5: c6969679fe58a57a4abed578ac5cc8ed
  • Judgementをすぐに使ってみたい人向けの
    最低限の設定パック

ダウンロード(ruby-1.9.1用) bookmark

  • バージョン : 2.1.1.1.9 (2009/02/23)
  • 文字コード/改行 : UTF8N/LF
  • MD5: adbb287f6305786c410bdc796a05

*Windows環境では未検証ですのでご注意ください。

サンプル bookmark

  • 動作設定ファイル例(その1)
    1. #
    2. # JConf File
    3. #
    4.  
    5. # type: jconf
    6. #
    7. type: jconf
    8.  
    9. # enable: true | false
    10. #
    11. enable: true
    12.  
    13. # title: Title String
    14. #
    15. title: /var/log/secure監視
    16.  
    17. # exec :
    18. #        command: CommandString
    19. #        mask: true | false
    20. #        argv: ARGV Array
    21. #
    22. # addon.DiffCat.exec( '監視対象ログファイルパス' , '最終読取位置保存ファイル' )
    23. # *DiffCatはファイルの最終読取位置からの増分を出力するクラスです。
    24. exec:
    25.       command: addon.DiffCat.exec( '/var/log/secure' , '<CURRENTDIR/>/tmp/IndexDB.yaml' )
    26.       mask:    false
    27.       argv:
    28.  
    29. # keyword: Keyword Array
    30. #
    31. keyword:
    32.          - error
    33.          - refused
    34.          - warning
    35.          - fail
    36.          - denied
    37.  
    38. # skipword: skipword Array
    39. #
    40. skipword:
  • 動作設定ファイル例(その2)
    1. #
    2. # JConf File
    3. #
    4.  
    5. #
    6. #
    7. #
    8. type: jconf
    9.  
    10. # enable: 本ファイルの有効/無効
    11. #
    12. #
    13. enable: true
    14.  
    15. # title: 本ファイルの名称
    16. #
    17. #
    18. title: NW機器監視(TCPレベル)
    19.  
    20. #
    21. #
    22. #
    23. exec:
    24.       command: addon.PortPing.exec( "<ARGV/>" )
    25.       mask:    false
    26.       argv:
    27.             - '172.16.1.10:80'
    28.             - '172.16.1.20:8080'
    29.  
    30. keyword:
    31.          - no answer<A+2/>
    32.  
    33. #
    34. #
    35. #
    36. skipword:
  • 動作設定ファイル例(その3)
    1. #
    2. # JConf File
    3. #
    4.  
    5. # type: jconf
    6. #
    7. type: jconf
    8.  
    9. # enable: 本ファイルの有効/無効
    10. #
    11. #
    12. enable: true
    13.  
    14. # title: 本ファイルの名称
    15. #
    16. #
    17. title: HD使用率監視
    18.  
    19. #
    20. #
    21. #
    22. exec:
    23.       command: df
    24.       mask:    false
    25.       argv:
    26.  
    27. #
    28. #
    29. #
    30. keyword:
    31.          - <RB> <I/> >= 90 </RB>%<A+1/>
    32.  
    33. #
    34. #
    35. #
    36. skipword:
    37.          - /cdrom
    38.          - /floopy
    39.          - /tmp
  • 報告設定ファイル例(メール出力)
    1. #
    2. # Notice File
    3. #
    4.  
    5. ---
    6. type: notice.mail
    7. name: administrator
    8. url: smtp://127.0.0.1:25
    9. to: hogehoge@anys.ne.jp
    10. from: judgement@anys.ne.jp
    11. reply-to: hogehoge@anys.ne.jp
  • スケジュール設定ファイル例
    1. #
    2. # Schedule File
    3. #
    4.  
    5. ---
    6. # 1/日(土)実行
    7. type: schedule
    8. date:
    9.       - ****/**/** 04:00:00 6
    10. jconf:  week
    11. notice:
    12.         - administrator
    13. ---
    14. # 平日実行(10分毎)
    15. type: schedule
    16. date:
    17.       - ****/**/** **:*0:00 1
    18.       - ****/**/** **:*0:00 2
    19.       - ****/**/** **:*0:00 3
    20.       - ****/**/** **:*0:00 4
    21.       - ****/**/** **:*0:00 5
    22. jconf:  minute
    23. notice:
    24.         - administrator
    25. ---
    26. # 休日実行(半日毎)
    27. type: schedule
    28. date:
    29.       - ****/**/** 01:05:00 0
    30.       - ****/**/** 13:05:00 0
    31.       - ****/**/** 01:05:00 6
    32.       - ****/**/** 13:05:00 6
    33. jconf:  minute
    34. notice:
    35.         - administrator
  • メールでの出力例
    1. Judgement Report
    2. +--------------------------------------------------------------------+
    3. maillogログ監視(2007/05/24 10:50:00)
    4. [Command]
    5. addon.DiffCat.exec( '/var/log/maillog' , '/usr/local/judgement/tmp/IndexDB.yaml' )
    6. [Keyword]
    7. fail
    8. [Result]
    9. May 24 10:47:40 localhost popper[31888]: [AUTH] "Fail"ed attempted login to XXXX from host
    10.  (XXX.XXX.XXX.XXX) XXX.XXX.XXX.XXX [pop_pass.c:1265]
    11. May 24 10:47:50 localhost popper[31895]: [AUTH] "Fail"ed attempted login to XXXX from host
    12.  (XXX.XXX.XXX.XXX) XXX.XXX.XXX.XXX [pop_pass.c:1265]
    13.  
    14. +--------------------------------------------------------------------+
    15.  
    16. Judgement 1.1.1 (2007/06/26)

バグ・要望連絡先 bookmark

 ・共有可能なJConfの提供
 ・共有可能なaddonクラスの提供
 ・機能追加の要望
 ・バグの報告
 等ありましたら下記メールアドレスまでご一報お願い致します。

連絡先