
------ zitherサーバsitarクライアントのインストール 20090511 ------

このファイルでは、zither sitar apollon のセットアップについて記載しています。





(1)--- net-snmp-5.4.* のインストール ---
sitarクライアントではsnmpのライブラリが必要です。 net-snmp-5.4.1以降のライブラリーを
予め作ります。
もしsitarの移植性を考慮してアーカイブの静的なリンクを行いたい場合は出来上がったlibnetsnmp.a
を予め動的なライブラリと別の場所にコピーしてください。後ほど説明のあるzitherのメークの項目
では/tmp/を指定していますので、/tmp/以下にコピーしてください。

# tar -xzf net-snmp-5.4.1.tar.gz
# cd net-snmp-5.4.1; pwd
# ./configure
   --disable-applications \
   --disable-manuals \
   --disable-scripts \
   --disable-set-support \
   --disable-privacy \
   --disable-des \
   --disable-md5 \
   --without-openssl \
   --without-krb5 \
   --disable-debugging \
   --disable-embedded-perl \
   --disable-perl-cc-checks \
   --disable-libtool-lock \
   --without-rpm

# make
# make install
# cd /usr/local/lib; pwd
# ls libnetsnmp.so
# ls libnetsnmp.a
# cp -ip libnetsnmp.a /tmp/  (静的なリンクを行う場合。)





(2)--- postgrSQL のインストール ---
zitherはpostgresのクライアント用ライブラリを必要としています。無くても動かないわけ
ではありませんが、ないとWEBインターフェース等が使えなくなるので必ず入れてください。
postgresのライブラリはzitherサーバが動作するサーバだけで必要です。監視クライアント
(sitar)では必要としません。

# tar -xzf postgresql-8.2.1.tar.gz
# cd postgresql-8.2.1; pwd
# ./configure
# make 
# make install
# mkdir /usr/local/pgsql/data
# chown postgres /usr/local/pgsql/data
# su - postgres
# /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data -E SQL_ASCII

実際に動作させる方法や使いかたはpostgresのREADMEを読んでください。
zitherをコンパイルするだけなら、起動させる必要はありません。
データ領域を作るさいに(-E SQL_ASCII)をのオプションをつけてください。
最近のpostgresはデフォルトの文字コードがUTF-8らしく、アポロンがEUCを使うので問題が
出ます。

postgres のライブラリとインクルードファイルの場所を確認します。

# ls /usr/local/pgsql/lib /usr/local/pgsql/include





(3)--- データベースの設定 ---
アポロンなどのWEBインターフェースを使う場合は以下のようにzitherのソースに含まれる
テーブルをpostgresに設定しておきます。データベース名は別に何でも良いのですが、解
りやすいので「zither」としておきましょう。

# cd [zither sources dir]/pgsql; pwd
# ls *.sql
# /usr/local/pgsql/bin/createdb zither
# /usr/local/pgsql/bin/psql zither

zither=> \i *.sql
zither=> \d
                List of relations
 Schema |        Name        |   Type   |  Owner  
--------+--------------------+----------+---------
 public | config             | table    | postgres
 public | config2            | table    | postgres
 public | config2_uno_seq    | sequence | postgres
 public | config_uno_seq     | sequence | postgres
 public | connection         | table    | postgres
 public | connection_uno_seq | sequence | postgres
 public | errlog             | table    | postgres
 public | errlog_uno_seq     | sequence | postgres
 public | monitor            | table    | postgres
 public | monitor_uno_seq    | sequence | postgres
 public | ninsyou            | table    | postgres
 public | ninsyou_uno_seq    | sequence | postgres
 public | userblock          | table    | postgres
 public | userblock_uno_seq  | sequence | postgres
(14 rows)


上記のようになっていれば良いです。

$ /usr/local/pgsql/bin/psql -l
        List of databases
   Name    |  Owner   | Encoding  
-----------+----------+-----------
 boldchat  | postgres | UTF8
 postgres  | postgres | UTF8
 template0 | postgres | UTF8
 template1 | postgres | UTF8
 test      | postgres | SQL_ASCII
 zither    | postgres | SQL_ASCII
(6 rows)

データベースのデフォルト文字コードがSQL_ASCIIになっていることを確認してください。


アポロンからアクセスする場合、認証用のアカウントを予め作る必要があります。
このアカウントは初めの一つを作成すれば、WEB上から作成削除ができます。

zither=# INSERT INTO ninsyou VALUES ( '0','0','masashi','masashi','0');

上記の例ですとUser:masashi pass:masashi でアポロンにログインできます。





(4)--- zither, sitar のインストール ---
zither, sitarを実行するユーザーとグループを作ります。

(FreeBSD5, 6系)
# pw groupadd zither
# pw useradd -g zither -m -d /usr/local/zither -s /bin/true -n zither
# id zither  (このID番号をzither.conf(UID:*)に入れてください)

(Linux)
# groupadd zither
# useradd -g zither -m -d /usr/local/zither -s /bin/true zither
# id zither  (このID番号をzither.conf(UID:)に入れてください)



展開したデイレクトリーに入ります。

$ ls zither-1.1.12.tar.gz
$ tar -xzf zither-1.1.12.tar.gz
$ cd zither-1.1.12; pwd
$ ls

メークします

オプションは以下で見てください

$ ,/configure --help

とりあえずsnmpのライブラリーの場所などを指定出来ます。
snmpのライブラリを静的に組む場合はlibnetsnmp.aだけがある場所を作り、オプションで指定してください。
使用するデータベースはmysql,postgrSQLの二つから選択出来ます。---with-database にて'MYSQL'か'PGSQL'
を選択してください。'MYPG'と選択すると両方が使用されますが、その意味は不明です。--enable-net-snmp
と --enable-https はSNMPとHTTPS監視用のコマンドを作る場合に指定します。されない場合コマンドは作成
されません。

$ ./configure
   --with-database=MYPG
   --enable-net-snmp
   --enable-https
   --with-net-snmplib=/tmp
   --with-net-snmpinclude=/usr/local/src/net-snmp-5.4.1/include/
   --with-psqlinclude=/usr/local/pgsql/include
   --with-psqllib=/usr/local/pgsql/lib
   --with-mysqlinclude=/usr/local/mysql/include/mysql/ (postgresの代わりにmysqlを使用する場合)
   --with-mysqllib=/usr/local/mysql/lib/mysql/

$ make
$ su    <-- install前にrootになってください
# id
# make install
(全ては/usr/local/zither以下にインストールされます)

注意: with-net-snmplibの値が/tmpになっているのはsitarをstaticに作る為に予めlibnetsnmp.aを/tmpに
移動しているからです。素直に/usr/local/libなどとするが、特に記載しない場合は動的なリンクが行われ
ます。





(5)--- 起動スクリプトの設置---

起動スクリプトをセットします。(FreeBSDの場合)

# ls zither_start.sh
# cp -ip zither_start.sh /usr/local/etc/rc.d/zither.sh
# chown root /usr/local/etc/rc.d/zither.sh
# chmod 700 /usr/local/etc/rc.d/zither.sh

起動スクリプトをセットします。(Linuxの場合)

# ls zither_start.sh
# cp -ip zither_start.sh /etc/init.d/zither
# chmod 700 /etc/init.d/zither
# cd /etc/rc3.d; pwd
# /sbin/chkconfig --add zither
# /sbin/chkconfig zither on

補足）sitar_start.sh はクライアント用の起動ファイルです。
上記と同じように設定してください。





(6)--- サーバ側で認証ファイルを編集します。(アポロンは自動で作成します)---

以下のファイルを編集します。

# vi /usr/local/zither/conf/neg.conf

test:192.168.1.243
sample:192.168.1.243
noname:127.0.0.1
補足）クライアントのユニークな名前：クライアントのIPになります。





(7)--- サーバ側でコンフィグレーションファイルを編集します。(アポロンは自動で作成します)---

以下のファイルを編集します。
<-の部分を編集すればとりあえずは起動可能です。

# vi /usr/local/zither/conf/zither.conf

SOCK_IPADDR:192.168.1.243 <--- サーバのIPアドレスです。全ての場合は　INADDR_ANY と。
SOCK_PORT:9988            <---  サーバのポート番号です。
UID:501                   <---  サーバを起動するユーザIDです。(アカウント作成を参照)
PRO_COUNT:100             <---  thread分岐最大数
ERR_LOG:/usr/local/zither/log/zither_err.log
CON_LOG:/usr/local/zither/log/zither_connect.log
FILE_LOG:/usr/local/zither/log/
FILE_CONF:/usr/local/zither/conf/
FILE_LOCK:/usr/local/zither/lock/
CFILE_LOCK:/usr/local/zither/clock/
MAIL_FROM:zither@localhost
MAIL_RCPTTO:masashi@localhost <---  エラーメールのTO:になります。
MAIL_CC:masashi@localhost     <---  エラーメールのCC:になります。
MAIL_SERV:192.168.1.243       <---  使用するメールサーバーです。
MAIL_ONOFF:1                  <--- mail使用の有無
LIFE_INT:60
LIFE_LOS:3
DB_SELECT:PGSQL               <--- MYSQL, PGSQL から選択
# postgres
PG_DATA:hostaddr='127.0.0.1' port='5432' dbname='zither' connect_timeout='8'
(postgres にコネクションする場合の情報)
PG_WEB:127.0.0.1
(apollonのURL,IPなど)
MYSQL_SERVER:127.0.0.1
MYSQL_USERNAME:zither
MYSQL_PASSWORD:passwd
MYSQL_DB:zither





(8)--- sitar監視ライアント側で起動ファイルを編集します。(アポロンは自動で生成します) ---

クライアントの起動ファイルはzither監視サーバ側で管理されますが、初めの一回目
だけは接続対象のzitherサーバを教えてあげるために、起動ファイルを編集する必要
があります。

以下のファイルを編集します。
<-の部分を編集すればとりあえずは起動可能です。

# vi /usr/local/zither/conf/sitar.conf

C_NAME:test                                 <---- 認証用の名前です。(neg.conf参照)
C_INFO:zither.ms-n.com(PowerBook G4 TEST 192.168.1.243 my name is "test")
SOCK_IPADDR:127.0.0.1                       <--- 接続先サーバのIPアドレスです。
SOCK_PORT:9988                              <--- 接続先サーバのポート番号です。
SOCK2_IPADDR:127.0.0.1                      <--- ２番めに優先される接続先
SOCK2_PORT:9988
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
BAT2_INT:60
LIFE_INT:20
LIFE_LOS:5
UPDATE_COM:/usr/local/zither/bin/get_sitar.sh
MAIL_CC:edge@localhost           <--- サーバのCC: の設定をクライアントが変更可能です。（全体の設定）

上記を編集することで起動と疎通監視だけは可能になります。





(9)--- アポロンのインストール ---

アポロンは便利なWEBインターフェースを提供してくれます。それ自体が無くてもzitherの動作に影響
はありませんが、条件が邪魔しなければ便利なので使いましょう。但しアポロンを動作させるには「
apache + php4以降でsocketが使えること」 の環境が必要です。そしてzitherが動作するサーバ上で
動かす必要があります。もし80番を使うことにためらいがあるのなら、他のポートを使ってください。
出来ればFWにてACLを利用することをお勧めします。環境が出来ている場合は、アポロンのインストー
ルは非常に簡単です。zitherのソースを展開した中にapollonディレクトリーがありますので、これを
ドキュメントのルート(/home/*/public-html)などとして置いてください。

注意: アポロンはPHPを使いますが、PHPにてマルチバイト文字が使える設定を行ってください。




(10)--- アポロンの初期設定---

アポロンのディレクトリー内に「total.inc」というファイルがあるので、これを設定編集します。
またおそらくapollonは外部から制限なしに閲覧出来ては困るはずなので、何らかのアクセス制限を検討
してください。apollonにはそのままでは何も制限はありません。

<?php

$default_dns = "127.0.0.1";       <----- アポロン内から監視テストするさいに使うDNSのIP
$my_server_ip = "127.0.0.1:8080"; <----- zitherが動作するIPです（ポートも記載出来ます）

$database = "POSTGRES";           <----- 使用するデータベースを選択
$pg_connect_ip = "127.0.0.1";     <----- Postgresqlが動作するIPです
$pgsql_data = "hostaddr='127.0.0.1' port='5432' dbname='zither' connect_timeout='8'";
                                  <----- PostgreSQLの接続情報

$database = "MYSQL";              <----- 使用するデータベースを選択
$mysql_ip = "127.0.0.1";          <----- mysql が動作するIP
$mysql_user = "zither";           <----- mysql の接続情報
$mysql_db = "zither";
$mysql_pass = "passwd";
＜以下省略＞





(11)--- その他細かい設定について---

sitarから行うポート監視やコマンドの監視設定は設定ファイルを直接編集しても可能ですが、
WEBインターフェース（アポロン）から行うのが簡単です。
アポロンからなら対話的な監視設定を行えますし、監視システム全体の管理も出来ます。
ファイルを直接編集する場合の情報や、アポロンの使用方法については、以下のURLを参考にしてください。

http://zither.ms-n.com






＞開発について
zitherは以下にて開発が行われています、主にc言語にての開発者を求めていますが、PHPにて
WEBインターフェースを書き直して頂ける方を募集中です。
興味のある方はご参加ください。

https://sourceforge.jp/projects/zither/

 







