zitherネットワーク監視インストール

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


  • Apollon、zither、sitar、postgreSQL、net-snmpのインストール作業


  • apache WEBサーバ
  • php4,5
  • postgresql データベース
  • net-snmp5.4(threadsafe版)

  • (補足)
    apacheとzitherサーバは同じサーバ内で動作が必要です。
    postgresqlはzitherから接続が出来れば別のサーバでも構いません。
    phpのデフォルトの文字コードはEUC-JPにしてください。
    phpはCGIではなく、モジュールとしてapacheに組み込んでください。
    net-snmp ライブラリはsitar監視クライアント側のみで使用します。
    監視サーバをインターネットに出して使うことはお勧めしません。
    閉鎖環境でもアクセスには厳しい制限をかけてください。
    上記のインストール方法は特に特殊な部分は無いので、各インストール方法に従ってください。
    1.0.10より、zitherはpostgresのライブラリーを、sitarはsnmpのライブラリーを必要とします。
    libpqは/usr/local/pgsql/libにライブラリーのパスが通っていることが必要で、違う場合は
    ./configure --with-psqllib= --with-psqlinclude= にて指定してください。
    netsnmpのライブラリーはsitarに静的に組み込むことを前提にしてますので、
    libnetsnmp.a の位置を --with-net-snmplib= --with-net-snmpinclude= で指定してください。
    この場合sitarの実行ファイルは静的なリンクなので、出来たsitarコマンドをこのまま他のサーバ
    にもっていっても使えます。


  • snmpライブラリの作成方法

  • net-snmp-5.4 以降を使ってください。それ以前はスレッドに対応していないようです。
    ここではインストールまで行ってますが、ライブラリー(アーカイブ)だけ欲しい場合はその都度工夫してください。
    ./configure だけ行い、snmplib/Makefile のCFLAGに-static を追加してMakeすればアーカイブだけ作れるはずです
    snmpライブラリはsitarのみで使用します。
    
    $ tar -xzf net-snmp-4.1.tar.gz
    $ cd net-snmp-4.1
    $ ./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
    $ su
    # make install
    
    

  • net-snmpをインストールをせずにライブラリ(アーカイバ)だけ取り出す方法。

  • 
    $ tar -xzf net-snmp-4.1.tar.gz
    $ cd net-snmp-4.1
    $ ./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
    
    ここまでは同じだが、snmplib にて作業
    
    $ cd ./snmplib; pwd
    $ vi Makefile
    
    以下の行を探して
    CFLAGS  = -g -O2 -Ulinux -Dlinux=linux -I/usr/include/rpm
    以下のように編集してください
    CFLAGS  = -static -g -O2 -Ulinux -Dlinux=linux -I/usr/include/rpm
    
    以下の行を探して
    LIB_EXTENSION   = la
    以下のように編集してください
    LIB_EXTENSION   = a
    
    その場所でmakeします。
    $ make
    $ ls -la libnetsnmp.a
    
    
    


  • zither, sitarを実行するユーザーとグループを作ります。

  • (FreeBSD)
    # 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:)に入れてください)
    


  • zitherのソースを展開したデイレクトリーに入ります。
  • $ ls zither-0.0.0.tar.gz
    $ tar -xzf zither-0.0.0.tar.gz
    $ cd zither-0.0.0; pwd
    $ ls
    


  • makeします

  • 注意!: 以下は例です。
    ./configure --with-psqllib=/usr/local/pgsql \
                --with-psqlinclude=/usr/local/pgsql \
                --with-net-snmplib=/usr/local/src/net-snmp-5.4.1/snmplib \
                --with-net-snmpinclude=/usr/local/src/net-snmp-5.4.1/include 
    $ make
    $ su    <-- install前にrootになってください
    # id
    # make install
    (全ては/usr/local/zither以下にインストールされます)
    


  • 起動スクリプトをセットします

  • (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
    # ln -s ../init.d/zither ./99zither
    補足)sitar_start.sh はクライアント用の起動ファイルです。
    上記と同じように設定してください。
    


  • WEBインターフェースアポロンの設置

  • (補足)zitherやsitarやその他監視の設定ファイル類はすべてWEBインターフェース(アポロン)から行います。
    Apollonの詳しい情報はここで確認してください。
    ソースファイル内の apollon をそのままWEBサーバから見える場所に移動します。
    ここでは大胆ですが、/usr/local/apache/htdocs にしています。
    # mv /usr/local/apache/htdocs /usr/local/apache/htdocs-def
    # cp -iRp ./appllon /usr/local/apache/htdocs
    


  • アポロンの設定ファイルを編集します。

  • apollonディレクトリー内のtotal.incファイルの以下を編集してください。
    $pg_connect_ip = "127.0.0.1";    <ーーーpostgresが使っているIP
    $my_server_ip = "127.0.0.1";     <ーーーWEBサーバが使うIP
    

  • zitherサーバのコンフィグレーションファイルを編集します

  • zitherはデフォルトでインストールした場合、127.0.0.1(loopback) 9988 番ポートでサーバを 立ち上げます。
    細かい設定は"zither 簡単な操作説明"を参考にしてください。

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

    # vi /usr/local/zither/conf/zither.conf
    
    SOCK_IPADDR:192.168.1.243 <--- サーバのIPアドレスです。(デフォルトループバックになってます)
    SOCK_PORT:9988        <---  サーバのポート番号です。
    FORK_COUNT:0
    UID:501        <---  サーバを起動するユーザIDです。(アカウント作成を参照)
    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/
    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        <---  1の場合はメールが飛びます、0は飛びません。
    LIFE_INT:15
    LIFE_LOS:3
    PG_DATA:hostaddr='127.0.0.1' port='5432' dbname='zither'        <-- postgresの設定です。
    PG_WEB:192.168.1.343        <---- アポロンを動かしているIPを指定
    


  • クライアント側で一時的なコンフィグレーションファイルを編集します

  • sitarクライアントは自分の手元にある起動用ファイル(sitar.conf)を読んで起動しますが、起動後に
    zitherサーバ側に自分用の起動ファイル(<ユニークな名前>.conf)が編集されていないかを確認し、
    最初の一回目の接続かファイルに編集が認められた場合に限りファイルを自分の手元に持ち帰って
    そのファイルで再起動します。なので最初の一回目の接続だけこの手書き(sitar.conf)ファイルにて
    zitherサーバのIPポートなどを教えて起動してあげる必要があります。

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

    # vi /usr/local/zither/conf/sitar.conf
    
    SOCK_IPADDR:192.168.1.243        <--- 接続先サーバのIPアドレスです。(デフォルトループバック)
    SOCK_PORT:9988        <--- 接続先サーバのポート番号です。
    BAT_FILE:/usr/local/zither/tmp/sitar.bat
    BAT2_FILE:/usr/local/zither/tmp/sitar.list
    CONF_FILE:/tmp/taro
    COMMAND_PATH:/usr/local/zither/sample_bin
    BAT_INT:120
    C_NAME:test        <---- 認証用の名前です。(neg.conf参照)
    C_INFO:zither.ms-n.com(PowerBook G4 TEST 192.168.1.243 my name is "test")
    BAT2_INT:240
    LIFE_INT:20
    LIFE_LOS:5
    MAIL_CC:edge@localhost        <--- サーバのCC: の設定をクライアントが変更可能です。
    UPDATE_COM:/usr/local/zither/bin/get_sitar.sh
    
    補足)1.0.10より、このファイルはアポロンで編集されますが、テストの場合は手で書いてください
    


  • postgresqlに以下のDBとテーブルを用意します。

  • 
    以下のオプションでDBを作る
    zitherデータベースに文字エンコードが無いこと。
    
    $ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data -E SQL_ASCII
    
    
    php.iniで以下の設定を行ってください。
    
    mbstring.language = Japanese
    
    以下のように見えればよいです
    注意)postgrsql-8.3.1はデフォでUTF-8にしてしまうので化けます。
    
    $ /usr/local/pgsql/bin/psql -l
            List of databases
       Name    |  Owner   | Encoding  
    -----------+----------+-----------
     postgres  | postgres | SQL_ASCII
     template0 | postgres | SQL_ASCII
     template1 | postgres | SQL_ASCII
     zither    | masashi  | SQL_ASCII
    (4 rows)
    
    
    /usr/local/pgsql/bin/createdb zither
    /usr/local/pgsql/bin/psql zither
    
    zither=# \i config.sql
    zither=# \i connection.sql
    zither=# \i errlog.sql
    zither=# \d
                    List of relations
     Schema |        Name        |   Type   |  Owner
    --------+--------------------+----------+---------
     public | config             | table    | zither
     public | config_uno_seq     | sequence | zither
     public | connection         | table    | zither
     public | connection_uno_seq | sequence | zither
     public | errlog             | table    | zither
     public | errlog_uno_seq     | sequence | zither
     public | monitor            | table    | zither
     public | monitor_uno_seq    | sequence | zither
     public | userblock          | table    | zither
     public | userblock_uno_seq  | sequence | zither
     public | ninsyou            | table    | zither
     public | ninsyou_uno_seq    | sequence | zither
    (10 rows)
    
    apollon認証用のアカウントを一つ作ってください。無いとapollonにログイン出来ません。
    以下の場合taroアカウントでpasswordのパスワード、編集可能な権限になります。
    
    zither=# INSERT INTO ninsyou VALUES ( '0', '0', 'taro', 'password', '1' );
    
    



  • apollonのWEB画面から、新しいsitarクライアントの設定を行います

  • (補足)sitarの正式な設定ファイルはapollonから作成します、同時にzitherへの接続を許可する認証ファイルも作られます。
    1: WEBインターフェースアポロンにブラウザーにてアクセスします
    2: 「状態」ー>「新規監視クライアント作成」
    3: 必要事項をすべて記入し、新しいsitarの設定ファイルを作成します。
    
    設定画面:
    
     shinki
    
    4: 新しいsitar監視クライアント用の設定ファイルが出来ていることを確認します。
       もし監視クライアントのホスト名を「test」とした場合、通常/usr/local/zither/conf以下にtest.confが出来ています。
    5: test.conf の内容確認。
    
    masashi@ORGfedra7:~/c/zither_prj/apollon$ nkf /usr/local/zither/conf/test.conf
    C_NAME:test
    C_INFO: 127.0.0.1(localhost test)
    SOCK_IPADDR:127.0.0.1
    SOCK2_IPADDR:127.0.0.1
    SOCK_PORT:9988
    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:90
    BAT2_INT:90
    LIFE_INT:30
    LIFE_LOS:8
    UPDATE_COM:/usr/local/zither/bin/get_sitar.sh
    
    


  • Zitherの起動

  • いよいよzitherを起動します。postgres、apacheなどは事前に起動しているとします。
    Linuxの場合は /etc/init.d/zither start
    FreeBSDの場合は /usr/local/etc/rc.d/zither_start.sh start とか、、、
    
    動作確認:
    masashi@shimakura:~$ netstat -na |grep 9988
    tcp4       0      0  *.9988                 *.*                    LISTEN
    とか
    


  • Sitarの起動

  • そしていよいよSitarを起動します
    Linuxの場合は /etc/init.d/sitar start
    FreeBSDの場合は /usr/local/etc/rc.d/sitar_start.sh start とか、、、
    
    動作確認:
    masashi@shimakura:~$ netstat -na |grep 9988
    tcp4       0      0  127.0.0.1.64826        127.0.0.1.9988         ESTABLISHED
    とか
    
    sitarは自分の足元(zitherとsitarが別のマシンの場合)にあるsitar.confの設定に従いzitheサーバに接続しますが、
    もしこのzitherサーバで対象のsitar用設定ファイルが編集されていたり、また最初の接続のように新規で作られていた場合は、
    その設定ファイルを自分のsitar.confとして持ち帰り、その設定で再起動します。なので新規接続の場合は必ず一回再起動します。
    もしこのあとで再接続出来ない場合はapollonで作った新しい設定ファイルの記載に間違いがあります。
    最初から接続も出来ない場合は手書きのsitar.confに間違いがあるでしょう。接続があるかどうかはapollonの画面で確認出来ます。
    
    「状態」ー>「接続状態」
     接続時間の項目が「赤」は過去に接続があったが切れたもので、「青」は現在接続中です。
    
    設定画面
    
     setuzoku
    
    
    (補足)zitherやsitarやその他監視の設定ファイル類はすべてWEBインターフェース(アポロン)から行います。
    Apollonの詳しい情報はここで確認してください。


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