Zither、Sitar設定ファイルの説明です

Copyright (C) 2004-2008 Masashi Shimakura
Last Update: 04 01 2008


ここでは zitherサーバ sitar クライアントを起動するためのファイル及び、監視内容を記載するため
のファイルの書式を説明しています。


  • zither.conf の書式

  • zither.conf はzitherサーバの起動用コンフィグレーションファイルであり、監視クライアントが接続し
    た際のデフォルトの設定の一部が記載されます。zither サーバはsitar監視クライアント接続時にthread
    分岐しますので、一部の内容はその後クライアントによって書き換え可能です。インストール時にテンプ
    レートが置かれますので必要事項を書き換えてください。zither.conf は通常/usr/local/zither/confに
    おかれます。
    <書式>
    
    
    SOCK_IPADDR:127.0.0.1
    SOCK_PORT:9988
    PRO_COUNT:10
    ERR_LOG:/usr/local/zither/log/err.log
    CON_LOG:/usr/local/zither/log/connect.log
    FILE_CONF:/usr/local/zither/conf/
    FILE_LOCK:/usr/local/zither/lock/
    MAIL_FROM:zither@localhost
    MAIL_RCPTTO:masashi@localhost,edge@localhost
    MAIL_CC:masashi@localhost,edge@localhost
    MAIL_SERV:127.0.0.1
    MAIL_ONOFF:1
    LIFE_INT:65
    LIFE_LOS:5
    PG_DATA:hostaddr='127.0.0.1' port='5432' dbname='zither' connect_timeout='8'
    PG_WEB:127.0.0.1
    
    <説明>
    
    SOCK_IPADDR:   zitherがバインドするIPアドレス
    SOCK_PORT:     zitherがオープンするポート
    PRO_COUNT:     クライアントの最大接続数
    ERR_LOG:/usr/local/zither/log/err.log  エラーログ
    CON_LOG:/usr/local/zither/log/connect.log  コネクションろぐ
    FILE_CONF:     コンフィグレーションファイルの置き場所
    FILE_LOCK:     クライアント接続確認用ロックファイルの置き場所
    MAIL_FROM:     通達メールのFROM:ヘッダー
    MAIL_RCPTTO:   通達メールのTO:ヘッダー、デフォルトの送信先
    MAIL_CC:       通達メールのCC:ヘッダー、デフォルトのカーボンコピー
    MAIL_SERV:     通達メールを送信してもらうメールサーバのIPアドレス
    LIFE_INT:      疎通確認のデフォルトのインターバル(秒)
    LIFE_LOS:      疎通確認のデフォルトのロスタイム(秒)
    MAIL_ONOFF:    メール送信のあるなし。
    PG_DATA:       Postgresへ接続する為の設定
    PG_WEB:        アポロンのWEB URL
    

  • sitar.conf の書式

  • 注意!
    1.0.10よりアポロンWEBインターフェースの使用が前提となっており、sitar.confを手で書き換える必要は
    なくなりました。しかし、WEBインターフェース無しで運用する例もあると思いますので、その場合は以下
    をご参考に願います。

    sitar.conf は sitar監視クライアントの起動用コンフィグレーションファイルです。インストーラに同
    封されている監視クライアント用起動ファイル(sitar_start.sh)にてテンプレートを自動生成してくれま
    すので、必要事項を書き換えてください。sitar.conf がすでにある場合、起動ファイルは上書きを行いま
    せん。sitar.conf は通常 /usr/local/zither/conf/ 以下に置かれます。

    <書式>
    
    SOCK_IPADDR:192.168.0.2
    SOCK_PORT:9988
    SOCK2_IPADDR:192.168.0.3
    SOCK2_PORT:9999
    BAT_FILE:/usr/local/zither/tmp/sitar.bat
    BAT2_FILE:/usr/local/zither/tmp/sitar.list
    COMMAND_PATH:/usr/local/zither/sample_bin
    BAT_INT:60
    C_NAME:test
    C_INFO:zither.ms-n.com( localhost 127.0.0.1 my name is "test")
    BAT2_INT:60
    LIFE_INT:60
    LIFE_LOS:3
    MAIL_CC:root@localhost
    
    <説明>
    
    SOCK_IPADDR:    接続に行くzitherサーバのIPアドレスです
    SOCK_PORT:      zitherサーバのポート番号です、通常9988を使用します。
    SOCK2_IPADDR:   接続に行くzitherサーバのIPアドレスです(冗長化用予備)
    SOCK2_PORT:     zitherサーバのポート番号です、通常9988を使用します。(冗長化用予備)
    BAT_FILE:       サーバサイドで管理される監視コマンドリストのクライアント側の保管場所です。
    BAT2_FILE:      サーバサイドで管理されるポート監視リストのクライアント側の保管場所です。
    COMMAND_PATH:   監視コマンドの置き場所になります、ここ以外のコマンドは実行できません。
    BAT_INT:        監視コマンドの実行インターバルです。
    C_NAME:         クライアントの識別名です、ユニークな名前をつけてください。(neg.conf参照)
    C_INFO:         クライアントの情報を書き込んでください、書式に決まりはありませんが、統一しておくことで管理できます。
    BAT2_INT:       ポート監視の実行インターバルになります。
    LIFE_INT:       疎通監視のインターバルになります、サーバの設定よりも優先されます。
    LIFE_LOS:       疎通監視のロスタイム(閾値)になります、サーバの設定よりも優先されます。
    MAIL_CC:        通達メールのCC:ヘッダーです、サーバの設定よりも優先されます。
    

  • neg.conf の書式
  • 注意!
    1.0.10よりsitar.confを手で書き換える必要はなくなりました。しかし、WEBインターフェース無しで運用
    する例もあると思いますので、その場合はご参考に願います。

    neg.conf は zither サーバが sitar監視クライアントより接続を要求された際に参照する認証ファイルです。
    二つの項目で構成され、一つ目が許可する監視クライアント側の名前(C_NAME:sitar.conf参照)二つ目が監視
    クライアントのソースIPアドレスになります。項目のデリミタは他のファイル同様に":"になります。特殊なユ
    ーザとしてadministratorがあります。administrator:に割り当てられたIPからadministratorで接続した場合、
    zither.conf の設定値の一部を後得的に変更可能です。
    <書式>
    
    administrator:127.0.0.1
    test:127.0.0.1
    taro:192.168.0.2
    

  • <名前>.command ファイルの書式
  • 注意!
    1.0.10以前、このファイルは何ら意味をもっていませんでしたが、現在はsitar監視クライアント内のコマンド
    を、一つのファイルにまとめてzitherサーバ側で管理する為に使われています。

    このファイルはsitar監視クライアント内で実行される監視用コマンドを記載します。サーバ側で管理されます
    が、存在がないとクライアントがすでに持っていたファイルを自動でサーバに持ってきます。運用時にサーバで
    このファイルを編集するとクライアントは自動で判断し読みに来ます。サンプルにあるように、このファイル
    にコマンドを書くことで、sitar監視クライアント内で実行出来るシェル を加えたりまた消したりの操作が出来
    ます。設定項目はありますが、ファイルのパスは固定になっています。
    以下はサンプルファイルになります。
    <書式>
    <_head
    COMMENT:
    COMMAND_PATH:/usr/local/zither/sample_bin
    COMMAND_NAME:DfLog.sh
    USER:zither
    GROUP:zither
    PERMISSION:0755
    >_head
    <_body
    #!/bin/sh
    if [ "IUse" = $2 ];then
      df -i | grep $1 | awk '{print $5}' | sed s@\%@@
    fi
    
    if [ "Use" = $2 ];then
      df -k | grep $1 | awk '{print $5}' | sed s@\%@@
    fi
    >_body
    
    
    
    <_head
    COMMAND_NAME:LoaLog.sh
    >_head
    <_body
    #!/bin/sh
    cat /proc/loadavg | awk '{print $2}' | cut -d"." -f1
    >_body
    
    
    
    <_head
    COMMAND_NAME:MemLog.sh
    >_head
    <_body
    #!/bin/sh
    if [ "MemFree" = $1 ];then
      cat /proc/meminfo | grep "MemFree" | awk '{print $2}'
    fi
    
    if [ "MemTotal" = $1 ];then
      cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'
    fi
    
    if [ "SwapFree" = $1 ];then
      cat /proc/meminfo | grep "SwapFree" | awk '{print $2}'
    fi
    
    if [ "SwapTotal" = $1 ];then
      cat /proc/meminfo | grep "SwapTotal" | awk '{print $2}'
    fi
    >_body
    
    
    
    <_head
    COMMAND_NAME:dfc.sh
    >_head
    <_body
    #!/bin/sh
    PM=`grep $1 /proc/mounts |wc -c`
    
    if [ $PM != 0 ];then
      DF=`df -k | grep $1 | awk '{print $5}' | sed s@\%@@`
      if [ $DF -gt $2 ] ; then
         echo "df コマンドの値が閾値を超えました: ディスク名は $1 です $2 < $DF %"
         exit
      fi
    else
      echo "このディスクはマウントされていません: Disk 名 $1"
      exit
    fi
    >_body
    
    
    
    <_head
    COMMAND_NAME:freemem.sh
    >_head
    <_body
    #!/bin/sh
    A=`cat /proc/meminfo | grep "MemFree" | awk '{print $2}'`
    if [ $A -lt $1 ] ; then
       echo "メモリーが不足していませんか? $A < $1"
       exit
    fi
    >_body
    
    
    
    <_head
    COMMAND_NAME:freeswap.sh
    >_head
    <_body
    #!/bin/sh
    A=`cat /proc/meminfo | grep "SwapFree" | awk '{print $2}'`
    if [ $A -lt $1 ] ; then
       echo "スワップ領域が不足していませんか? $A < $1"
       exit
    fi
    >_body
    
    
    
    <_head
    COMMAND_NAME:inode.sh
    >_head
    <_body
    #!/bin/sh
    A=`df -i | grep $1 | awk '{print $5}' | sed s@\%@@`
    if [ $A -gt $2 ] ; then
       echo "ディスク $1 のIノード値が閾値を超えました $2 < $A %"
    fi
    >_body
    
    
    
    <_head
    COMMAND_NAME:psc.sh
    >_head
    <_body
    #!/bin/sh
    A=`ps -axww |grep $1 |wc -l`
    if [ $A -gt $2 ]; then
       echo "動作中のプロセス $1 の数 $A が 閾値 $2 を超えました"
    fi
    >_body
    
    
    
    <_head
    COMMAND_NAME:syslogpid.sh
    >_head
    <_body
    #!/bin/sh
    if [ ! -s /var/run/syslogd.pid ];then
       echo syslogd のロックファイルが存在しません、プロセスの有無を確認してください。 
       exit;
    fi
    
    if [ ! -s /tmp/syslogd2.pid ];then
       cp -f /var/run/syslogd.pid /tmp/syslogd2.pid
    fi
    
    OLD=`cat /tmp/syslogd2.pid`
    NEW=`cat /var/run/syslogd.pid`
    
    if [ $OLD -ne $NEW ];then
      echo $NEW > /tmp/syslogd2.pid
      echo syslogd のプロセスが再起動した可能性があります!  old pid=$OLD new pid=$NEW
    fi
    >_body
    
    
    
    <_head
    COMMAND_NAME:uptime.sh
    >_head
    <_body
    #!/bin/sh
    A=`cat /proc/loadavg | awk '{print $2}' | cut -d"." -f1`
    if [ $A -gt $1 ]; then
       echo "ロードアベレージ $A が、閾値 $1 を超えました"
    fi
    >_body
    
    
    <説明>
    

  • <名前>.list ファイルの書式
  • 注意!
    1.0.10よりsitar.confを手で書き換える必要はなくなりました。しかし、WEBインターフェース無しで
    運用する例もあると思いますので、その場合はご参考に願います。

    このファイルはsitar監視クライアントで実行される監視用コマンドのリストと、ポートチェックの両
    方を記載します。サーバ側で管理されますが、存在がないとクライアントがすでに持っていたファイル
    を自動でサーバに持ってきます。運用時にサーバでこのファイルを編集するとクライアントは自動で判断
    し読みに来ます。13個の項目で構成され、デリミタは","になります。ファイルは"********"のみの行に
    より”ブロック”という単位で分割が行えますが、それぞれのブロックはsitar内部で実行時に独立したスレ
    ッドとして動作します。その為このブロック一つ一つを単独に制御することが可能です。
    <書式>
    
    (一ブロック書式例)
    ************
    SET,0,NOT,test,test,0,0,NOT,60,ON,masashi@localhost,,ayako-default2,
    # SNMP,0,+100000,HOST-RESOURCES-MIB::hrStorageUsed.31,172.255.64.1,public,8,localhost(127.0.0.1),4,localhost hda1 master disk size,,560,ayako-default2,
    # SNMP,0,!78,HOST-RESOURCES-MIB::hrSWInstalledIndex.78,127.0.0.1,private,8,localhost(127.0.0.1),1,localhost hda1 master disk size,,564,ayako-default2,
    # PORT,0,SMTP,NOT,203.255.65.8,25,8,docs&cvs,2,cvs,,448,ayako-default2,
    # PORT,0,URL,NOT,cvs.data-hotel.net,80,8,docs&cvs,2,cvs url,,450,ayako-default2,
    # PORT,0,TCP,NOT,203.255.65.8,8080,8,docs&cvs,2,cvs 8080,,444,ayako-default2,
    # PORT,0,TCP,NOT,203.255.65.8,80,8,docs&cvs,2,cvs 80,,445,ayako-default2,
    # PORT,0,ICMP,NOT,203.255.65.8,0,8,docs&cvs,2,cvs icmp,,449,ayako-default2,
    PORT,0,UDP,NOT,203.174.255.8,123,8,docs&cvs,2,cvs ntp,,446,ayako-default2,
    PORT,0,UDP,NOT,203.174.255.8,123,8,docs&cvs,2,cvs,,447,ayako-default2,
    COMMAND,0,NOT,dfcheck.sh /dev/sda1 90,NOT,NOT,5,(zither test),1,NOT,NOT,33,ayako-default2,
    
    <各カラムの説明>
    
    ポート及びコマンド監視リストファイルの基本フォーマット
    1)監視方法(PORT,COMMAND)(SETについては後ほど説明) 
    2)監視の正逆
    3)プロトコル(ポート監視の場合のみ, SNMPの場合は閾値)
    4)実行コマンド(コマンド実行の場合のみ, SNMPの場合はOID)
    5)監視対象URL、IP(コマンドの場合は自分自身)
    6)監視ポート(ポート監視の場合のみ, SNMPの場合はSECNAME)
    7)waitタイム
    8)監視先の情報(コマンドの場合は自分自身)
    9)プラオリティー
    10)開き(コメント等)
    11)開き(コメント等)
    12)管理番号
    13)ブロック名
    
    <SETの書式>
    
    ブロックのセパレータは******です。
    その直下は必ずSETで始まります。
    SETで始まる行はそのブロックの動きを制御する行になりますが、無い場合はクライアントの基本
    動作に従います。
    各監視行の先頭に#がある場合はコメントとして無視します。
    
    SETの例)
    SET,0,NOT,test,test,0,0,NOT,60,ON,masashi@localhost,,ayako-default2,
    
    <各カラムの説明>
    1)SET
    2)保留
    3) 監視属性(JUST,FOR,それ以外はNOT)
    4) 監視クライアント名
    5) 保留
    6) 指定時間内実行(FOR)の開始時間
    7) 指定時間内実行(FOR)の停止時間及び、指定時間実行(JUST)の時刻
    8) 保留
    9) このブロックが読まれてから実行されるまでの待ち時間
    10) エラーメールが飛ぶか飛ばないか
    11) エラーメールのTO
    12) エラーメールのCC
    13) 監視ブロック名
    
    

    zither2.jpg(13489 byte) zither.ms-n.comにもどる