/* 20090731 */

監視項目の設定等の細かい設定に関しては以下のURLにて紹介しています。

http://zither.ms-n.com





--- コマンド紹介 ---

ZITHER

名前
	zither チター、 zither監視システム用、リモート監視用サーバ

書式
	zither -c コンフィグファイルパス -n ユーザーファイルパス -i 実行UID

説明
        zitherはネットワーク越しのサーバ動作監視システムの一部のコマンドで、それらの
        サーバになります。zither には複数の監視用クライアント sitar が常時接続し、そ
        の接続自体が監視の一部にもなります。このサーバクライアント間には一定間隔でデ
        ータが流れており、その遅延状況も監視の対象になりますし、切断等にも即反応しま
        す。 zitherの仕事はsitarから送られてくるエラー情報を判断し、必要な対応を行う
        ことです。 具体的にはメールの送信や、DBへの記録等です。またsitarの挙動の変更
        や起動ファイルやsitarが行う監視のリストなどを手元にて一括管理します。これら
        のファイルに編集を加えた場合、sitarからの定期連絡の切に変更があった旨を伝え、
        sitarにファイルを取に来させることが出来ます。

オプション

-c
	zitherの起動用コンフィグファイルの場所です。通常は以下の場所になります。

        /usr/local/zither/conf/zither.conf

	書式はINSTALLファイルを見てください。

-n
	どのソースIPを持つsitarがどの名前で接続に来るかを書いたファイルです。
	つまり単純なACLファイルになります。通常は以下のファイルになります。

	/usr/local/zither/conf/neg.conf

	書式はINSTALLファイルを見てください。

-i
	実行するUID番号です、0は推奨しません。シェルの無いIDを用いてください。

注意！
        zitherはサーバなので外部に対してポートをオープンします。sitarとの通信の切っ
        掛けとして、簡単な認証方法をもっていますが、非常に稚拙なものですので、使用す
        るには必ず何らかのアクセスコントロールを必要とします。





SITAR

名前
	sitar シタール、zither監視システム用監視用クライアントコマンド

書式
	sitar -c コンフィグファイルパス

説明
        sitarはzither監視システムの中で、実際に監視を行うコマンドである。外部へのポー
        トスキャンを初め、sitarが動作する環境での任意のコマンド監視、またsnmpを使い、
        外部の監視を行うことさえ可能です。zitherとは常時接続する形態をとっており、そ
        の接続状態すら監視の対象になるが、その場合の監視者はzitherになる。

オプション

-c
	sitarの起動用コンフィグファイルの場所です。通常は以下の場所になります。

        /usr/local/zither/conf/sitar.conf

	書式はINSTALLファイルを見てください。

監視の内容

TCP
	TCPポートにてコネクション完了までの時間を監視します。

UDP
	UDPポートにて、ICMPのポート未到達パケットが帰るかどうかからOPENを判断
        します。

ICMP
	ICMPのRTTを判断します。

URL
	URLに対してHEAD送信し、ステータス番号からエラーを判断します。

SMTP
	SMTPサーバに対してHELLOを送り帰ったステータス番号を判断します。

SNTP
	NTPサーバの時間と、自分の時間を比較します。





SITARCTL

名前
	sitarctl, シタールコントロール ziher監視システム用監視クライアントsit
	arの管理コマンド

書式

	sitarctl <sitar path> <sitar conf path> <exec UID> <restart interval>

説明
        sitarデーモンをバックグランドで動作させ、停止した場合は再起動を何度でも試みる。






ZITHERCTL

名前
	zitherctl, チターコントロール ziher監視システム用監視サーバzitherの管
 	理コマンド

書式

	zitherctl <1 zither path> <2 zither conf path> <3 zither neg.conf path>\
	<4 exec UID> <5 restart interval> <6 mail server address> <7 mail from>\
	<8 mailrcpt to ,,,> <9 server name> 

説明
        zitherデーモンをバックグランドで動作させ、停止した場合は再起動を何度でも試みる。
        6,7,8,9,の設定は、もしzitherが停止した場合に、一定期間そのままだとメールを送信
        するので、その設定。






RESOLV

名前
	resolv, レゾルバ、単純に名前からIPを返すコマンド。

書式

	resolv 127.0.0.1 

説明
        たんじゅんに名前をIPアドレスに変換します。出来ない場合は0を返します。
        システム内での名前変換は/etc/resolvに従います、つまりシステムの設定に依存してい
        ますので、監視プロセスの中で名前変換が生じた場合に、それにかかる時間はシステム
        依存になってしまいます。そのタイムラグを減らす目的でresolvコマンドをforkして、
        任意の時間でタイムアウトした場合はKILLしています。つまりこのコマンドを手で叩く
        ことはありませんし、そのために用意していません。





ZITHER_INIT

名前
        zihter_init, チターイニット　手で書いた監視項目をデータベースに反映する

書式
        zither_init <Enter>

説明
        手書きの監視項目を簡単な構文チェックとデータベースの内容との整合をみてデータ
        ベースに反映します。起動後にインターラクティブな操作になりますので、オプショ
        ンはありません。監視項目を反省するには登録先のブロックが既に存在する必要が
        あります。無い場合はエラーになりますので、予めブロックを作ってください。
        このコマンドはデータベースに反映するところまでしか作業しません。





ZITHER_INIT_BLOCK

名前
        zihter_init_block, チターイニット　手で書いた監視ブロックをデータベースに反映する

書式
        zither_init_block <Enter>

説明
        手書きの監視ブロックを簡単な構文チェックとデータベースの内容との整合をみてデータ
        ベースに反映します。起動後にインターラクティブな操作になりますので、オプショ
        ンはありません。 このコマンドはデータベースに反映するところまでしか作業しません。





ZITHERSET

名前
	zitherset, チターセット　zitherサーバを動作中にコンフィグレーションする

書式

	zitherset <opsion>

説明
        zitherサーバの設定は起動の際に読むコンフィグレーションにしたがいますが、この
        コマンドを利用することで、幾つかの設定を動作中に変更可能です。 またこのコマンド
        を使うには 'neg.conf' に以下の記載が必要です。 つまりadministratorアカウントを
        作成してください。ソースIPはループバック以外は使えません。

	administrator:127.0.0.1

オプション

./zitherset MAIL_ON OFF <return>
メール送信を全て止める

./zitherset MAIL_ON ON <return>
メール送信を再開する

./zitherset MAIL_FROM zither@zither.ms-n.com <return>
送信メールのFrom：をセットする

./zitherset MAIL_RCPTTO zither@zither.ms-n.com <return>
送信メールの送信先（To)をセットする

./zitherset MAIL_CC zither@zither.ms-n.com <return>
送信メールの送信先（Cc)をセットする

./zitherset MAIL_SERV 127.0.0.1 <return>
SMTPサーバをセットする

./zitherset LIST ON <return>
そのサーバの現在の設定状況を確認






SCANSSL

名前
	scanssl, スキャンエスエスエル　 SSLで暗号化されたWEBの確認コマンド

書式

	$scanssl -p <port> -t <timout> -c <cert time limmit> -u <https://URL>

説明
        OpenSSLのライブラリーを使いSSLで暗号化されたWEBのURLに対してステータスを比較するコマンド。
        200番から300番代を返す場合は正常と見なす。またサーバ証明書の状態も監視する。 -c で指定した
        秒数前に証明書の期限が間近であることをエラーとして返すが-cが0である場合はこの監視を行わない。
        -cが0意外である場合、極端に短く設定した場合でも最悪3日前にエラーを返し始める。

オプション

	-p     ポート番号
	-t     接続にかかる時間のタイムアウト設定
	-c     SSL証明書の期限前の閾値
	-u     URL





SCAN_BLOCK_TEST

名前
        scan_block_test, スキャンブロックテスト   監視行を行単位で動作テストするコマンド

書式

        $scan_block_test -d <監視行> -m <mode> -r <dns ip address>
        使用例  $scan_block_test -d "PORT,0,SSH,NOT,192.168.1.1,22,3,,2,,,285,masashi2," -m 1 -r 127.0.0.1

説明
        監視リストファイルを行単位で実際に監視を行いテストします。アポロン内で監視のテストを行う部分は
        このコマンドを使用しています。





SCANMYSQL

名前
        scanmysql, スキャンマイエスキューエル  mysqlの動作を確認するコマンド

書式

        $scanmysql -t <timeout> -s <server> -u <username> -p <passwd> -d <database> -P <port> -q <query>
        使用例1   $scanmysql 
        使用例2   $scanmysql -t 1 -s 127.0.0.1 -u taro -p 1919 -d tarodb -P 3306 -q 'show tables;'

説明
        mysqlのクライアント用ライブラリを使い、指定した問い合わせに対して返答数が一つ以上あるかを確認します。
        2の例のように何ら指定が無い場合はローカルのmysqlに対して接続を試み、show databases; を問い合わせます。
        何ら問題が無い場合は何も返しません。
        sitarの内部から呼び出されている。

オプション

        -t    接続を持続出来る時間（秒）問い合わせに時間がかかってもエラーになります。
        -s    接続ホスト
        -u    mysqlのユーザー名
        -p    上記ユーザーに対するパスワード
        -d    データベース名
        -P    ポート番号
        -q    問い合わせ

注意

        正常に接続が出来たとしても、問い合わせに対しての答えが0個の場合はエラーになります。





SCANPGSQL

名前
        scanpgsql, スキャンピージーエスキューエル  postgreSQLの動作を確認するコマンド

書式

        $scanpgsql -t <timeout> -s <server> -u <username> -p <passwd> -d <database> -P <port> -q <query>
        使用例1   $scanpgsql 
        使用例2   $scanpgsql -t 1 -s 127.0.0.1 -u sachiko -p 1919 -d zither -P 5432 -q 'select * from a;'

説明
        postgresのクライアント用ライブラリを使い、指定した問い合わせに対して返答数が一つ以上あるかを確認します。
        2の例のように何ら指定が無い場合はローカルのpostgresに対して接続を試み、show data_directory; を問い合わせます。
        何ら問題が無い場合は何も返しません。
        sitarの内部から呼び出されている。

オプション

        -t    接続を持続出来る時間（秒）問い合わせに時間がかかってもエラーになります。
        -s    接続ホスト
        -u    postgresのユーザー名
        -p    上記ユーザーに対するパスワード
        -d    データベース名
        -P    ポート番号
        -q    問い合わせ

注意

        正常に接続が出来たとしても、問い合わせに対しての答えが0個の場合はエラーになります。





SNMP_COMMAND

名前

        snmp_command, エスエヌエムピーコマンド  snmpエイジェントへの問い合わせを行う行うコマンド

書式

        $snmp_command -n <section_name> -h <host:port> -o <OID> -t <timout>
        使用例  snmp_command -n public -h 127.0.0.1:162 -o '0.1.2345.6.7.8.9.10' -t 2

説明

        net-snmpのライブラリーで作られている、何ら問題が無い場合は何も返さない。
        sitarの内部から呼び出されている。

オプション

        -n セクション名
        -h ホスト名：ポート番号（ポート番号がない場合は160番）
        -o OID
        -t タイムアウト





