オープンソース・ソフトウェアの開発とダウンロード

UltraMonkey-L7 管理マニュアル(3.1.x 対応版)の表示

カテゴリ(タグ)ツリー

ファイル情報

カテゴリ(タグ)
UM-L7_3.1.x
ファイル名
uml7-administration_manual_v3.3_ja
最終更新
2013-09-20 15:25
種類
Plain Text
作成者
中野 宏朗
概要
UltraMonkey-L7 管理マニュアル(3.1.x 対応版)です。
言語
日本語
翻訳する
UltraMonkey-L7  管理者マニュアル  v3.3【v3.1.x対応版】

================================================================================

[変更履歴]
2005.10.25  [v1.0]   初版
2005.11.15  [v1.1]   マニュアルの不備を修正
2006.03.02  [v1.2]   オプションの説明を追加
2006.07.07  [v1.3]   目次見直し及びkssl補足説明追加に伴う修正
2007.01.19  [v1.4]   追加機能に伴う修正
2007.02.19  [v1.4.1] l7directord の不具合修正に伴う URL パーシステンス部分の修正
2007.10.12  [v1.4.2] l7vs-0.6.1公開に伴う一部関連修正
2007.10.12  [v1.5]   l7vs-1.0.0公開に伴う一部関連修正(未実装分記述削除)
2008.1.6    [v1.6]   UM-L7 1.0.1-0 リリースに伴う,l7directord.cf サンプルの修正
2008.1.6    [v1.7]   sessionless プロトコルモジュールの設定例を追記
2008.4.13   [v1.8]   l7vsd-1.x-lilith-rc-1リリースに伴う修正
2008.5.30   [v1.9]   v2.0.0-xリリースに伴う修正
2008.12.17  [v2.0]   v2.1.0-0リリースに伴う修正
2009.01.27  [v2.1]   v2.1.1-0リリースに伴う修正(sslidモジュールのオプション記述
                     修正)
2009.03.17  [v2.2]   v2.1.2-0リリースに伴う修正(ipモジュールのオプション記述)
2009.06.17  [v2.3]   v2.1.2-2リリースに伴う修正(cinsert,cpassive,crewriteモジュ
                     ール関連の記述を削除)
2010.08.17  [v3.0]   v3.0.0に伴う修正
2011.03.03  [v3.1]   tproxyの対応カーネルを修正
2011.11.22  [v3.2]   statisticのショートオプションを修正
2013.06.27  [v3.3]   v3.1.0リリースに伴う修正
================================================================================

 1 前提条件
     1.1 フレームワーク部について
     1.2 プロトコル処理部について
     1.3 スケジュール部について
     1.4 制御コマンド部について
     1.5 リアルサーバ監視処理部について
     1.6 冗長化構成について
 2 l7vsadm コマンドの説明
     2.1 コマンド概要
     2.2 コマンド一覧
     2.3 コマンド書式一覧
     2.4 各コマンド説明
     2.5 ProtocolModuleオプション説明
 3 l7vsadm設定例
     3.1 SSL Session IDモジュールの設定例
     3.2 Sessionlessモジュールの設定例
     3.3 IP addressモジュールの設定例
 4 L7サーバ監視設定ツールの説明
     4.1 設定ファイル(l7directord.cf)の説明
     4.2 l7directord.cfのサンプルの説明
     4.3 サンプル
 5 Replication機能
     5.1 Replication機能の説明
 6 UltraMonkey-L7設定ファイルの説明
     6.1 設定ファイル(l7vs.cf)の説明
     6.2 l7vs.cfのサンプルの説明
 7 SSL設定ファイルの説明
     7.1 設定ファイル(sslproxy.target.cf)の説明
     7.2 sslproxy.target.cfのサンプルの説明
 8 その他
     8.1 snmpdの説明
     8.2 Transparent Proxy 機能について

================================================================================

 1 前提条件
     UltraMonkey-L7 とは、Linux 上で動作する Layer7 負荷分散ソフトウェアです。

     次のような機能部から構成されています。

--------------------------------------------------------------------------------

 1.1 フレームワーク部について
     Layer7 の情報に基づいた負荷分散の基盤となる機能部です。

     これにProtocolModuleを組み合わせることにより、各種プロトコルに対応した負荷
     分散を実現します。

--------------------------------------------------------------------------------

 1.2 プロトコル処理部について
     各種プロトコルに対する Layer7 負荷分散の振り分け条件を決定する機能部です。

     プロトコル処理部としては、以下のProtocolModuleがあります。Client パケットを
     待たずに RealServer が先行して応答するプロトコル (SMTP, FTP等) で振り分けを
     行う場合は、sessionless または ip モジュールを使う必要があります。

     ・sessionless
       RealServer への振り分けをスケジュール部に任せ UltraMonkey-L7 では何も行わ
       ない Sessionless モジュール。
     ・ip
       Client の IP アドレスを元に RealServer への振り分けを行うモジュール。
     ・sslid
       RealServer 側で付与された SSL Session ID を UltraMonkey-L7 で管理すること
       でセッション管理をする SSL Session ID モジュール

--------------------------------------------------------------------------------

 1.3 スケジュール部について
     VirtualServiceからRealServerに対し、負荷分散による振り分けの重み条件を決定
     する機能部です。

     スケジューリング方式としては、以下の方式があり、対応するScheduleModuleを指
     定することで最適なスケジュール方式を選択できます。

     ・rr
       利用可能な RealServer に対して、均等にリクエストを割り当てるラウンドロビ
       ン方式
     ・wrr
       RealServer 毎に設定された負荷値により、クライアントからのリクエストを割り
       当てる重み付け振り分け方式
     ・lc
       接続中のコネクションが最も少ない RealServer に対してリクエストを割り当て
       る最小コネクション方式

--------------------------------------------------------------------------------

 1.4 制御コマンド部について
     フレームワーク部に対してVirtualServiceの生成・削除や振り分け先サーバの設定、
     UltraMonkey-L7の機能制御等を行うためのコマンドを提供します。

--------------------------------------------------------------------------------

 1.5 リアルサーバ監視処理部について
     リアルサーバの監視を行うための機能部です。制御コマンド部を介して各種設定を
     行う機能も提供します。(詳細は 4 を参照)

--------------------------------------------------------------------------------

 1.6 冗長化構成について
     UltraMonkey-L7は単体では冗長化機能をもっていません。しかし、OSSクラスタソフト
     のPacemakerを利用した冗長化構成を想定し、Pacemaker用のRAや設定サンプルを
     用意しています。(詳細は「Manual_for_Heartbeat」の「for_Pacemaker」ドキュメン
     トを参照)

================================================================================

 2 l7vsadm コマンドの説明

--------------------------------------------------------------------------------

 2.1 コマンド概要
     l7vsadm コマンドは、以下の基本書式で実行します。

     [基本書式]
     l7vsadm -[制御種別オプション] -[パラメータオプション] [設定値] ...

     l7vsadmのコマンドオプションには、どのような設定、制御を行うか指定する制御
     種別オプションと、制御種別対応の設定内容を指定するパラメータオプションがあ
     ります。

     さらに、パラメータオプションには、フレームワークに対して各種設定、制御を行
     うためのオプション以外に、各ProtocolModuleごとの各種設定を行うための
     ProtocolModule オプションがあります。
     (ProtocolModuleオプションの詳細は、2.5を参照)

--------------------------------------------------------------------------------

 2.2 コマンド一覧
     l7vsadm コマンドで実行可能なコマンドの一覧を以下に示します。

     (1) List 表示コマンド (詳細は 2.4.1 を参照)
         フレームワークの各種情報 (VirtualService、RealServer の登録情報など) の
         内容を表示するコマンド

     (2) VirtualService 設定コマンド (詳細は 2.4.2 を参照)
         指定した VirtualService の追加、削除、および指定した VirtualService に
         設定されているパラメータを変更するコマンドおよび、登録されている全ての
         VirtualService を一括削除するコマンド

     (3) RealServer 設定コマンド (詳細は 2.4.3 を参照)
         指定した VirtualService に対する RealServer の追加、削除、および指定し
         た RealServer に設定されているパラメータを変更するコマンド

     (4) Replication 機能制御コマンド  (詳細は 2.4.4 を参照)
         Replication 機能に関する各種制御 (Replication 機能の開始/停止、強制的に
         即時 Replicate 実行、Replication データのダンプ)を行うコマンド

     (5) ログ機能制御コマンド (詳細は 2.4.5 を参照)
         ログ機能に関する各種制御 (負荷分散プロセス動作ログレベルの変更) を行う
         コマンド

     (6) SNMPAgent 制御コマンド (詳細は 2.4.6 を参照)
         SNMPAgentに関する各種制御(SNMPAgentの有効/無効、MIB収集間隔の変更、
         ログトラップ発出機能の有効/無効、ログトラップ発出レベルの変更、
         HTTPリクエスト統計情報のクリア)を行うコマンド

     (7) パラメータ管理機能制御コマンド (詳細は2.4.7 を参照)
         パラメータ管理機能に関する各種制御 (設定パラメータの再読み込み) を行う
         コマンド

     (8) Help表示コマンド (詳細は 2.4.8 を参照)
         コマンドの書式、および使用方法を表示するコマンド


--------------------------------------------------------------------------------

 2.3 コマンド書式一覧
    l7vsadm コマンドで実行可能なコマンドの書式一覧を以下に示します。
    (各オプションの説明、使用方法の詳細は 2.4 を参照)

      l7vsadm -A -t service-address -m proto-module [module-args]
              [-s scheduler] [-u connection-count] [-b sorry-server] [--masq|--tproxy]
              [-f sorry-flag] [-Q QoSval-up] [-q QoSval-down] [-z ssl-config-file]
              [-O socket-option] [-L access-log-flag]
              [-a access-log-file [logrotate-args]]
              [--session-thread-pool-size val-size]
      l7vsadm -E -t service-address -m proto-module [module-args]
              [-s scheduler] [-u connection-count] [-b sorry-server] [--masq|--tproxy]
              [-f sorry-flag] [-Q QoSval-up] [-q QoSval-down] [-L access-log-flag]
      l7vsadm -D -t service-address -m proto-module [module-args]
      l7vsadm -C
      l7vsadm -a|e -t service-address -m proto-module [module-args]
              -r server-address [-w weight] [--masq|--tproxy]
      l7vsadm -d -t service-address -m proto-module [module-args]
              -r server-address
      l7vsadm -R -s replication-switch
      l7vsadm -R -f
      l7vsadm -R -d
      l7vsadm -L -c log-category -l log-level
      l7vsadm -S [-f snmp-flag] [-i update-interval] [-t log-trap-flag]
           [-l log-trap-level] 
      l7vsadm -S -r [-t service-address -m proto-module]
      l7vsadm -P -r reload-parameter
      l7vsadm -l [-n]
      l7vsadm -V [-n]
      l7vsadm -K [-n]
      l7vsadm -h

--------------------------------------------------------------------------------

 2.4 各コマンド説明
     以下に各コマンドの書式、オプション説明、使用方法を示します。

     指定必須パラメータオプションは、該当する書式で指定する必要があるオプション
     であり、指定可能パラメータオプションは、該当する書式で指定でき、省略も可能
     なオプションであることを示します。
     また、各オプションの括弧内の記述は long 表現のオプションになります。

     2.4.1 List表示コマンド
         ・書式
           l7vsadm
           l7vsadm -l [-n]
           l7vsadm -K [-n]
           l7vsadm -V [-n]

         ・制御種別オプション(必須)
           -l(--list)    :設定情報のlistを表示する。
           -K(--key)     :key情報を含む設定情報のlistを表示する。
           -V(--verbose) :設定情報の詳細listを表示する。

         ・指定必須パラメータオプション
           なし

         ・指定可能パラメータオプション
           -n(--numeric) :Endpoint(IP-Address:port) の名前解決を行わないで表示
                           する。

         ・説明
           List表示コマンドの各オプションにより出力される情報は以下のとおり。

           1) -l 指定時
              ・Version情報          [UltraMonkey-L7 の Version]
              ・VirtualService 情報  [Protocol、VirtualService の Endpoint、
                                      ProtocolModule 名、ScheduleModule 名]
              ・RealServer 情報      [RealServer の Endpoint、パケット転送方式
                                      Scheduler の weight、サーバ接続数情報]

           2) -K 指定時
              ・Version情報          [UltraMonkey-L7 の Version]
              ・VirtualService 情報  [Protocol、VirtualService の Endpoint、
                                      ScheduleModule 名、SSL設定ファイル名、
                                      ソケットオプション、アクセスログフラグ、
                                      アクセスログファイル名、
                                      アクセスログローテーション設定文字列]
              ・RealServer 情報      [RealServer の Endpoint、パケット転送方式
                                      Scheduler の weight、サーバ接続数情報]

           3) -V 指定時
              ・Version情報          [UltraMonkey-L7のVersion]
            ・Log情報
                                     [負荷分散プロセスのLogカテゴリ、
                                      Logカテゴリの動作Log-Level]
            ・Replication情報      [Replication機能状態(モード)] 
            ・SNMP情報             [SNMPAgent機能状態(active/inactive)、
				      ログトラップ状態(on/off)、トラップ発出ログレベル]
                     [MIB情報の最小収集間隔、SNMPAgent起動日時、
				      最後リクエスト日時、最後トラップ日時]  
                     [GETリクエスト総数、SETリクエスト総数、トラップ総数]
            ・VirtualService情報   [Protocol、VirtualServiceのEndpoint、
			       	      ProtocolModule名、Scheduler名、
                      ProtocolModuleオプション文字列]
            ・RealServer情報
                                    [RealServerのEndpoint、パケット転送方式
				      Schedulerのweight、サーバ接続数情報] 
                     [Sorry Server                  
                                     SorryServerのEndpoint、パケット転送方式]
                                     [Max Connection         接続上限値]
                                     [Sorry Flag            Sorryフラグ]
                                     [SSL Config File   SSL設定ファイル]
                                     [Access Log     アクセスログフラグ]
                                     [Access Log File アクセスログファイル]
                                     [Access Log Rotate
                                         アクセスログローテーション設定文字列]
                     [TCP_DEFER_ACCEPT   enable/disable]
                     [TCP_NODELAY      enable/disable]
                      [TCP_CORK         enable/disable]
                     [TCP_QUICKACK enable/disable/auto]
                     [Current Upload / Limit
                               上りスループット値(Mbps)/ QoS(上り)のQoS値(Mbps)]
                     [Current Download / Limit   
                                   下りスループット値(Mbps)/ QoS(下り)のQoS値(Mbps)]
                     [HTTP Total Requests HTTPリクエスト総数]
                     [HTTP GET Requests HTTP  GETリクエスト総数]
                     [HTTP POST Requests HTTP  POSTリクエスト総数]

     2.4.2 VirtualService 設定コマンド
         1) VirtualService の追加
            ・書式
              l7vsadm -A  service-address -m protocol-module [module-args]
              [-s schedule-module] [-u connection-count] [-b sorry-server] 
              [-f sorry-flag] [--masq|--tproxy] [-Q up-stream-QoS-bps] 
              [-q down-stream-QoS-bps] [-z ssl-config-file] [-O socket-option]
              [-L access-log-flag] [-a access-log-file [logrotate-args]]
              [--session-thread-pool-size val-size]

            ・制御種別オプション(必須)
              -A(--add-service) :VirtualService を追加する。

            ・指定必須パラメータオプション
              -t(--tcp-service) :VirtualService の Endpoint を指定する。
                                  (例) IPv4:-t 10.10.0.1:80
                                  (例) IPv6:-t [::1]:80
              -m(--proto-module):ProtocolModule 名を指定する。
                                  (例) -m sessionless
                                  ProtocolModule 名に続いて ProtocolModule オプ
                                  ション (module-args) を指定することができる。
                                  (例) -m sslid --timeout 100
                                  指定できる ProtocolModule、および
                                  ProtocolModule オプションの詳細は、2.5 を参照

            ・指定可能パラメータオプション
              -s(--scheduler)   :ScheduleModule 名を指定する。
                                  (例) -s rr, -s lc, -s wrr
                                  指定できる ScheduleModule は rr(RoundRobin),
                                  wrr(WeightedRoundRobin), lc(LeastConnection)
                                  指定しない場合のデフォルトは rr となる。
              -u(--upper)       :VirtualService への接続数の上限値を設定する。
                                  上限値を超えた接続は SorryServer 接続となる。
                                  設定可能な範囲は、0~100000 の整数値で、指定
                                  しない場合のデフォルト値は 0(上限なし、
                                  SorryServer 接続しない)となる。
              -b(--bypass)      :SorryServer の Endpoint を指定する。
                                  (例:-t sorry01:http, -t 10.10.0.1:80)
                                  0.0.0.0:0 を指定した場合、SorryServer の 
                                  Endpoint をクリアすることができる。
              -f(--flag)        :Sorry 状態設定フラグを設定する。
                                  設定可能な値は、0 または 1 で、1 を指定すると
                                  Sorry 状態となり、0 を指定すると Sorry 状態解
                                  除となる。
                                  指定しない場合のデフォルト値は 0 (Sorry 状態解
                                  除) となる。
              --masq            :SorryServer へのパケット転送方式を Masquarade
                                  方式とし、SorryServer からは UltraMonkey-L7 
                                  サーバからの接続に見える。--tproxy を指定しない
                                  場合、この方式がデフォルトとなる。
              --tproxy          :SorryServer へのパケット転送方式を Transparent
                                  Proxy 方式とし、SorryServer からは Client が直
                                  接接続しているように見える。
                                  本機能を使用する場合は 8.2 の設定が必要となる。
              -Q(--qos-up)      :Client から VirtualService に対する帯域制限値
                                  を bps で設定する。
                                  設定可能な範囲は、0~999 の整数値 + 単位(最大
                                  999K, 999M, 999G) で、指定しない場合のデフォル
                                  ト値は 0 (制限なし) となる。
                                  単位には、K(キロ)、M(メガ)、G(ギガ)を指定
                                  する必要がある。
              -q(--qos-down)    :RealServer から VirtualService に対する帯域制
                                  限値を設定する。
                                  設定可能な範囲は、0~999 の整数値 + 単位(最大
                                  999K, 999M, 999G) で、指定しない場合のデフォル
                                  ト値は 0 (制限なし) となる。
                                  単位には、K(キロ)、M(メガ)、G(ギガ)を指定
                                  する必要がある。
              -z(--ssl)         :VirtualService に対して Client と SSL 通信する
                                  際の SSL 設定ファイルをフルパスで設定する。
                                  設定するフルパスの最大長は半角文字で最大256文
                                  字指定可能である。このオプションが指定された場
                                  合は VirtualService と Client 間の通信処理にお
                                  いて SSL 処理機能が利用されるようになり、指定
                                  されなかった場合は従来通りの動きをする。
                                  また、このオプションを指定する際、プロトコルモ
                                  ジュールとして sslid を指定するとエラーとなる。
              -O(--sockopt)     :VirtualService や RealServer との接続で使う
                                  ソケットオプションを設定する場合に指定する。
                                  指定可能なオプションは以下で、コンマ区切りで指
                                  定可能。
                                  ※ VirtualService の追加時のみ設定可能で、変更
                                     できません。
                                  deferaccept - VirtualService のリスナーソケッ
                                                トに TCP_DEFER_ACCEPT を設定。
                                                設定するとTCPの接続が完了した後、
                                                Client よりデータパケットが到着
                                                するまで接続完了と見なさなくなる。
                                                ※ クライアントから接続後、リク
                                                   エストが必ずしも送信されない
                                                   場合(SMTP, FTPなど)には、指定
                                                   しない事。
                                  nodelay     - Client 及び RealServer との通信
                                                用ソケットに TCP_NODELAY を設定。
                                                設定するとパケット送信時に MTU
                                                で決められているサイズ(通常1500
                                                バイト)に満たなくても即座に送信
                                                する。
                                  cork        - Client 及び RealServer との通信
                                                用ソケットに TCP_CORK を設定。
                                                設定すると TCP_NODELAY とは逆に
                                                なるべくデータをまとめる挙動を
                                                行う。
                                  quickackon  - Client 及び RealServer との通信
                                                用ソケットに TCP_QUICKACK を常
                                                に設定。設定するとパケットが連
                                                続して来た場合に、一つ一つのパ
                                                ケットに対して即座に ACK を返す。
                                  quickackoff - Client 及び RealServer との通信
                                                用ソケットの TCP_QUICKACK を常
                                                にクリアする。設定すると全ての
                                                パケットに対して遅延 ACK タイム
                                                アウトを待ってから ACK を返す。
              -L(--access-log)  :アクセスログ出力フラグを設定する。
                                  設定可能な値は、0 または 1 で、1 を指定すると
                                  アクセスログを出力し、0 を指定するとアクセス
                                  ログ出力解除となる。
                                  指定しない場合のデフォルト値は 0 (アクセスロ
                                  グ出力解除) となる。
              -a(--access-log-name) :アクセスログ出力先ファイルを指定する。アク
                                     セスログ出力フラグを出力に設定した場合、
                                     必須指定項目。アクセスログローテーション設
                                     定を logrotate-args として設定可能。
                                     logrotate-args を省略した場合、設定ファイ
                                     ルに記載されたデフォルト設定にてローテー
                                     ションをおこなう。
                                     ただし、既に追加済みの VirtualService にて
                                     指定したアクセスログ出力先と同一の出力先を
                                     指定した場合は、アクセスログローテーション
                                     設定を変更する事はできない。
                                     また、logrotate-args を省略した場合、既に追
                                     加済みの VirtualService のアクセスログロー
                                     テーションの設定でローテーションを行う。
                                     logrotate-args として設定可能なオプションは
                                     以下。
                                     --ac-rotate-type(必須):
                                       ローテーションのタイプとして、"date", 
                                       "size", "datesize"の何れかを指定する。
                                     --ac-rotate-max-backup-index(必須):
                                       バックアップファイルの最大数を 1 以上 12
                                       以下の範囲で指定する。
                                     --ac-rotate-max-filesize
                                       (--ac-rotate-typeにて "size", "datesize"
                                       指定時必須):
                                       ログの最大サイズを指定する。
                                       設定可能な範囲は、65535 ~ ULONG_MAX まで
                                       の数値の整数値で、指定単位には、K(キロ)、
                                       M(メガ)、G(ギガ)を指定可能。
                                       また、K、M、Gを指定した場合、その値をバイ
                                       ト単位に変換した結果が65535 ~ ULONG_MAX
                                       までの値でなければいけない。
                                     --ac-rotate-rotation-timing
                                       (--ac-rotate-type にて "date", "datesize"
                                       指定時必須):
                                       ローテーションを行うタイミングを "year",
                                       "month", "week", "date", "hour" の何れか
                                       で指定する。
                                     --ac-rotate-rotation-timing-value
                                       (--ac-rotate-type にて "date", "datesize"
                                       指定時必須):
                                       ローテーションを行う日付・時刻を指定する。
                                       指定書式は以下。
                                       --ac-rotate-rotation-timing "year" 時:
                                         "MM/dd hh:mm"  (毎年MM月dd日hh時mm分)
                                       --ac-rotate-rotation-timing "month" 時:
                                         "dd hh:mm"     (毎月dd日hh時mm分)
                                       --ac-rotate-rotation-timing "week" 時:
                                         "WEEK hh:mm"   (毎週WEEK曜日hh時mm分)
                                       --ac-rotate-rotation-timing "date" 時
                                         "hh:mm"        (毎日hh時mm分)
                                       --ac-rotate-rotation-timing "hour" 時
                                         "mm"           (毎時mm分)
                                       設定可能な値は、MM(1~12), dd(1~31),
                                       hh(0~23), mm(0~59), WEEK("sun", "mon",
                                       "tue", "wed", "thu", "fri", "sat")
              --session-thread-pool-size val-size:該当VirtualServiceでのスレッドプール数
                                       を指定する。値の範囲は1~18446744073709551615の整数値。
                                       省略時はl7vs.cfで設定した値になる。

            ・説明
              -t, -m で指定した VirtualService を新たに登録する。
              指定されなかった指定可能パラメータオプションは初期値に設定される。

              指定できるスケジューラの特徴は以下のとおり。
              rr  - Round Robin(ラウンドロビン): 
                    利用可能な実サーバに対して均等にリクエストを割り当てる。
              wrr - Weighted Round Robin(重み付けラウンドロビン): 
                    利用可能な実サーバに対して重み付けに従って、リクエストを割り
                    当てる。重み付けは、-w オプションで指定。
              lc  - Least-Connection(最少コネクション) : 
                    接続中のコネクションが最も少ないリアルサーバに対して、リクエ
                    ストを割り当てる。

              SorryServer 関連の設定については、以下の注意が必要。
                  ・VirtualService がサービス提供不可状態(Sorry 状態)となった
                    場合に回避するためのサーバの Endpoint を設定する。

              サービス提供不可状態(Sorry 状態)には以下の 3 つがある。
                  ・-u オプションで指定したコネクション数を超えた場合
                  ・接続可能な RealServer が存在しない場合
                  ・-f オプションで明示的に Sorry 状態に設定された場合

         (※) アクセスログ関連の設定については、以下の注意が必要。
              アクセスログ出力ファイル設定(--access-log-name)は、VirtualService
              の変更コマンドで変更することができない。そのため、アクセスログ出力
              フラグ(--access-log)を 0 から 1 に変更する可能性がある場合は、
              あらかじめ VirtualService の追加時にアクセスログ出力ファイル設定を
              行っておく必要がある。

         2) VirtualService の削除
            ・書式
              l7vsadm -D -t service-address -m proto-module [module-args]

            ・制御種別オプション(必須)
              -D(--delete-service) :指定した VirtualService を削除する。

            ・指定必須パラメータオプション
              -t(--tcp-service)  :VirtualService の Endpoint を指定する。
                                   (例) IPv4:-t 10.10.0.1:80
                                   (例) IPv6:-t [::1]:80
              -m(--proto-module) :ProtocolModule 名を指定する。
                                   (例) -m sessionless

            ・指定可能パラメータオプション
              なし

            ・説明
              -t, -m で指定した VirtualService を削除する。

         3) VirtualService の一括削除
            ・書式
              l7vsadm -C

            ・制御種別オプション(必須)
              -C(--flush)         :登録されているすべての VirtualService を一括
                                    削除する。

            ・指定必須パラメータオプション
              なし

            ・指定可能パラメータオプション
              なし

            ・説明
              登録されている全 VirtualService が削除される。

         4) VirtualService の変更
            ・書式
              l7vsadm -E -t service-address -m protocol-module [module-args]
              [-s schedule-module] [-u connection-count] [-b sorry-server]
              [-f sorry-flag] [--masq|--tproxy] [-Q up-stream-QoS-bps]
              [-q down-stream-QoS-bps] [-L access-log-flag]

            ・制御種別オプション(必須)
              -E(--edit-service)   :指定した VirtualService の設定情報を変更す
                                     る。

            ・指定必須パラメータオプション
              以下のパラメータは変更前の VirtualService を特定するために指定し、
              これらのパラメータの変更は変更コマンドでは出来ないため、変更する
              場合は削除コマンド、追加コマンドで行う必要がある。

              -t(--tcp-service)  :VirtualService の Endpoint を指定する。
                                   (例) IPv4:-t 10.10.0.1:80
                                   (例) IPv6:-t [::1]:80
              -m(--proto-module) :ProtocolModule 名を指定する。
                                   (例) -m sessionless
                                   ProtocolModule 名に続いて ProtocolModule オプ
                                   ション (module-args) を指定することができる。
                                   (例) -m sessionless --forwarded-for
                                   指定できる ProtocolModule、および
                                   ProtocolModule オプションの詳細は、2.5を参照

            ・指定可能パラメータオプション
              以下が変更可能なパラメータである。

            ・指定可能パラメータオプション
              -s(--scheduler)   :ScheduleModule 名を指定する。
                                  (例) -s rr, -s lc, -s wrr
                                  指定できる ScheduleModule は rr(RoundRobin),
                                  wrr(WeightedRoundRobin), lc(LeastConnection)。
                                  指定しない場合のデフォルトはrrとなる。
              -u(--upper)       :VirtualService への接続数の上限値を設定する。
                                  上限値を超えた接続はSorryServer接続となる。
                                  設定可能な範囲は、0~100000 の整数値で、指定し
                                  ない場合のデフォルト値は 0(上限なし、
                                  SorryServer 接続しない)となる。
              -b(--bypass)      :SorryServer の Endpoint を指定する。
                                  (例:-t sorry01:http, -t 10.10.0.1:80)
                                  0.0.0.0:0 を指定した場合、SorryServer の 
                                  Endpoint をクリアすることができる。
              -f(--flag)        :Sorry 状態設定フラグを設定する。
                                  設定可能な値は、0 または 1 で、1 を指定すると
                                  Sorry 状態となり、0 を指定すると Sorry 状態解
                                  除となる。
                                  指定しない場合のデフォルト値は 0 (Sorry 状態解
                                  除) となる。
              --masq            :SorryServer へのパケット転送方式を Masquarade
                                  方式とし、SorryServer からは UltraMonkey-L7 
                                  サーバからの接続に見える。-tproxy を指定しない
                                  場合、この方式がデフォルトとなる。
              --tproxy          :SorryServer へのパケット転送方式を Transparent
                                  Proxy 方式とし、SorryServer からは Client が直
                                  接接続しているように見える。
                                  本機能を使用する場合は 8.1 の設定が必要です。
              -Q(--qos-up)      :Client から VirtualService に対する帯域制限値
                                  を bps で設定する。
                                  設定可能な範囲は、0~999 の整数値 + 単位(最大
                                  999K, 999M, 999G) で、指定しない場合のデフォル
                                  ト値は 0 (制限なし) となる。
                                  単位には、K(キロ)、M(メガ)、G(ギガ)を指定
                                  する必要がある。
              -q(--qos-down)    :RealServer から VirtualService に対する帯域制
                                  限値を設定する。
                                  設定可能な範囲は、0~999 の整数値 + 単位(最大
                                  999K, 999M, 999G) で、指定しない場合のデフォル
                                  ト値は 0 (制限なし) となる。
                                  単位には、K(キロ)、M(メガ)、G(ギガ)を指定
                                  する必要がある。
              -L(--access-log)  : アクセスログ出力フラグを設定する。
                                  設定可能な値は、0 または 1 で、1 を指定すると
                                  アクセスログを出力し、0 を指定するとアクセスロ
                                  グ出力解除となる。

            ・説明
              -t, -m で指定した VirtualService の設定情報を指定可能パラメータオ
              プションで指定した値に変更する。
              指定必須パラメータオプションの値を変更することはできない。
              登録時に ProtocolModule オプション (module-args) を指定した場合は
              指定が必要。
              指定されなかった指定可能パラメータオプションの値は変更されない。

              指定できるスケジューラの特徴は以下のとおり。
              rr  - Round Robin(ラウンドロビン): 
                    利用可能な実サーバに対して均等にリクエストを割り当てる。
              wrr - Weighted Round Robin(重み付けラウンドロビン): 
                    利用可能な実サーバに対して重み付けに従って、リクエストを割り
                    当てる。重み付けは、-w オプションで指定。
              lc  - Least-Connection(最少コネクション) : 
                    接続中のコネクションが最も少ないリアルサーバに対して、リクエ
                    ストを割り当てる。

              SorryServer 関連の設定については、以下の注意が必要。
                  ・VirtualService がサービス提供不可状態(Sorry 状態)となった
                    場合に回避するためのサーバの Endpoint を設定する。

              サービス提供不可状態(Sorry 状態)には以下の 3 つがある。
                  ・-u オプションで指定したコネクション数を超えた場合
                  ・接続可能な RealServer が存在しない場合
                  ・-f オプションで明示的に Sorry 状態に設定された場合

         (※) アクセスログ関連の設定については、以下の注意が必要。
              アクセスログ出力ファイル設定(--access-log-name)は、VirtualService
              の変更コマンドで変更することができない。そのため、アクセスログ出力
              フラグ(--access-log)を 0 から 1 に変更する可能性がある場合は、
              あらかじめ VirtualService の追加時にアクセスログ出力ファイル設定を
              行っておく必要がある。


     2.4.3 RealServer 設定コマンド
         1) RealServer の追加
            ・書式
              l7vsadm -a -t service-address -m proto-module [module-args] -r
              server-address [-w weight] [--masq|--tproxy]

            ・制御種別オプション(必須)
              -a(--add-server)   :指定した VirtualService に RealServer を追加
                                   する。

            ・指定必須パラメータオプション
              -t(--tcp-service)  :VirtualService の Endpoint を指定する。
                                   (例) IPv4: -t 10.10.0.1:80
                                   (例) IPv6: -t [::1]:80
              -m(--proto-module) :ProtocolModule 名を指定する。
                                   (例) -m sessionless
              -r(--real-server)  :追加する RealServer の Endpoint を指定する。
                                   (例) IPv4: -r 10.10.0.1:80
                                   (例) IPv6: -r [::1]:80

            ・指定可能パラメータオプション
              -w(--weight)       :RealServer への振り分けに使用する weight 値を
                                   設定する。
                                   設定可能な範囲は、0~100 の整数値で、指定しな
                                   い場合のデフォルト値は 1(振り分け可)となる。
                                   0 を指定した場合は、振り分け不可となる。
              --masq             :RealServer へのパケット転送方式を Masquarade
                                   方式とし、RealServer からは UltraMonkey-L7 
                                   サーバからの接続に見える。-tproxy を指定しない
                                   場合、この方式がデフォルトとなる。
              --tproxy           :RealServer へのパケット転送方式を Transparent
                                   Proxy 方式とし、RealServer からは Client が直
                                   接接続しているように見える。

            ・説明
              -t, -m で指定した VirtualService に -r で指定した RealServer を新
              たに登録する。
              指定されなかった指定可能パラメータオプションは初期値に設定される。

         2) RealServer の削除
            ・書式
              l7vsadm -d -t service-address -m proto-module [module-args] -r
              server-address

            ・制御種別オプション(必須)
              -d(--delete-server):指定した VirtualService から RealServer を削
                                   除する。

            ・指定必須パラメータオプション
              -t(--tcp-service)  :VirtualService の Endpoint を指定する。
                                   (例) IPv4: -t 10.10.0.1:80
                                   (例) IPv6: -t [::1]:80
              -m(--proto-module) :ProtocolModule 名を指定する。
                                   (例) -m sessionless
              -r(--real-server)  :追加する RealServer の Endpoint を指定する。
                                   (例) IPv4: -r 10.10.0.1:80
                                   (例) IPv6: -r [::1]:80

            ・指定可能パラメータオプション
              なし

            ・説明
              -t, -m で指定した VirtualService から -r で指定した RealServer を
              削除する。

         3) RealServer の変更
            ・書式
              l7vsadm -e -t service-address -m proto-module [module-args] -r
              server-address [-w weight]

            ・制御種別オプション(必須)
              -e(--edit-server)  :指定した VirtualService の RealServer 情報を
                                   変更する。

            ・指定必須パラメータオプション
              -t(--tcp-service)  :VirtualService の Endpoint を指定する。
                                   (例) IPv4: -t 10.10.0.1:80
                                   (例) IPv6: -t [::1]:80
              -m(--proto-module) :ProtocolModule 名を指定する。
                                   (例) -m sessionless
              -r(--real-server)  :追加する RealServer の Endpoint を指定する。
                                   (例) IPv4: -r 10.10.0.1:80
                                   (例) IPv6: -r [::1]:80

            ・指定可能パラメータオプション
              -w(--weight)       :RealServer への振り分けに使用する weight 値を
                                   設定する。
                                   設定可能な範囲は、0~100 の整数値で、指定しな
                                   い場合のデフォルト値は 1(振り分け可)となる。
                                   0 を指定した場合は、振り分け不可となる。

            ・説明
              -t, -m で指定した VirtualService に登録されている -r で指定した
              RealServer の設定情報を指定可能パラメータオプションで指定した値に
              変更する。
              指定必須パラメータオプションの値を変更することはできない。
              指定されなかった指定可能パラメータオプションは変更されない。


     2.4.4 Replication 機能制御コマンド
            ・書式
              l7vsadm -R -s replication-switch
              l7vsadm -R -f
              l7vsadm -R -d

            ・制御種別オプション(必須)
              -R(--replication) :Replication 機能の制御コマンドを実行する。

            ・指定必須パラメータオプション
              -s(--switch)      :Replication 機能の開始/停止を指定する。
                                  start を指定すると Replication 機能開始となり
                                  stop を指定すると Replication 機能停止となる。
              -f(--force)       :データを強制即時レプリケーションする。
              -d(--dump)        :Replication データのダンプを実行する。

            ・指定可能パラメータオプション
              なし

            ・説明
              Replication 機能の各種制御(Replication 機能の開始/停止、強制的に
              即時レプリケーション、Replication データのダンプ)を行う。


     2.4.5 ログ機能制御コマンド
            ・書式
              l7vsadm -L -c log-category -l log-level

            ・制御種別オプション(必須)
              -L(--log)      :ログ機能の制御コマンドを実行する。

            ・指定必須パラメータオプション
              -c(--category) :l7vsd の出力ログレベルを変更する場合に、変更する
                               l7vsd のログカテゴリ文字列を指定する。
                               指定できるログカテゴリは、以下の説明を参照のこと
                               all を指定した場合は、全ログカテゴリのログレベル
                               が一括して変更される。
              -l(--level)    :負荷分散プロセスの出力ログを指定した動作ログレベ
                               ルに変更する。
                               指定できるログレベルは、fatal, error, warn, info,
                               debug の 5 種類。

            ・指定可能パラメータオプション
              なし

            ・説明
              ログ機能の各種制御(負荷分散プロセス動作ログレベルの変更)を行う。
              ログカテゴリ文字列は省略形の文字列で指定することも可能である。
              ログカテゴリ文字列の一覧を以下に示す。

              指定可能ログカテゴリ文字列      (省略形)
              l7vsd_network                   (nw)
              l7vsd_network_qos               (nw_qos)
              l7vsd_network_bandwidth         (nw_bw)
              l7vsd_network_num_connection    (nw_conn)
              l7vsd_network_access            (nw_acc)
              l7vsd_mainthread                (mth)
              l7vsd_virtualservice            (vs)
              l7vsd_virtualservice_thread     (vs_th)
              l7vsd_session                   (ss)
              l7vsd_session_thread            (ss_th)
              l7vsd_realserver                (rs)
              l7vsd_sorryserver               (sorry)
              l7vsd_module                    (mod)
              l7vsd_replication               (rep)
              l7vsd_replication_sendthread    (rep_sth)
              l7vsd_parameter                 (para)
              l7vsd_logger                    (logger)
              l7vsd_command                   (cmd)
              l7vsd_start_stop                (stastp)
              l7vsd_system                    (sys)
              l7vsd_system_memory             (sys_mem)
              l7vsd_system_endpoint           (sys_ep)
              l7vsd_system_signal             (sys_sig)
              l7vsd_system_environment        (sys_env)
              l7vsd_snmpagent                 (agent)
              l7vsd_protocol                  (prot)
              l7vsd_schedule                  (sched)
              all                             (省略形なし)


     2.4.6 SNMPAgent制御コマンド
            ・書式
              l7vsadm -S  [-f snmp-flag] [-i update-interval] 
	            	  [-t log-trap-flag] [-l log-trap-level] 
              l7vsadm -S -r [-t service-address -m proto-module] 

          ・制御種別オプション(必須)
            -S(--snmp) : SNMPAgentの制御コマンドを実行する。

          ・指定必須パラメータオプション
            なし。

          ・指定可能パラメータオプション
              -f(--flag) : SNMPAgent機能の有効/無効を指定する。
                             指定できる値は、1と0の2種類
                             1を指定するとSNMPAgent機能有効となり、0を指定するとSNMPAgent
                             機能無効となる
            -i(--interval) : SNMPAgent機能のMIB情報の最小収集間隔の秒数を指定する。
                                 指定できる値は、0以上の整数。                  
                                  指定された収集期間が0の場合、MIB情報キャッシュが無効となる。
            -t(--logtrap) : SNMPAgentのログトラップ発出機能の有効/無効を指定する。
                                指定できる値は、1と0の2種類
                                1を指定するとSNMPAgentのログトラップ機能有効となり、
                                0を指定するとSNMPAgentのログトラップ機能無効となる。
            -l(--logtraplevel) : SNMPAgentのログトラップ発出レベルを指定する。
                                     指定できるログレベルは、fatal、error、warn、info、debugの
                                     5種類。
            -r(--refresh) : HTTPリクエスト統計情報をクリアする。
                                -rオプションに続いて仮想サービスを指定することができる。
                                仮想サービスが指定する時、当該仮想サービスのHTTP統計情報を
                                クリアする。
                                仮想サービスが指定しない時、全ての仮想サービスのHTTP統計
                                情報をクリアする。
                                HTTP統計情報をクリアした際、 サーバ接続数情報(InactConn)も
                                クリアする。

          ・説明
            SNMPAgentの各種制御(SNMPAgent機能の有効/無効、MIB収集間隔の変更、
            SNMPAgentのログトラップ発出機能の有効/無効、ログトラップ発出レベルの変更、
            HTTPリクエスト統計情報のクリア)を行う。

     2.4.7 パラメータ管理機能制御コマンド
            ・書式
              l7vsadm -P -r reload-parameter

            ・制御種別オプション(必須)
              -P(--parameter) :パラメータ管理機能の制御コマンドを実行する。

            ・指定必須パラメータオプション
              -r(--reload)    :指定した設定パラメータを再読み込みし、設定を反映
                                する。
                                指定できる設定パラメータ文字列は、replication,
                                logger, snmpagent があり all を指定した場合は、
                                全ての種類の設定パラメータが再読み込みされ、反映
                                される。

            ・指定可能パラメータオプション
              なし

            ・説明
              パラメータ管理機能の各種制御(設定パラメータの再読み込み)を行う。
              再読み込みで指定できる設定パラメータは、Replication 機能の設定
              (replication)、ログ機能の設定 (logger)、SNMPAgent の設定
              (snmpagent) である。
              これ以外の設定パラメータも指定可能だが、将来の拡張用として用意して
              あるため、指定しても何も起こらない。
              指定できる設定パラメータ文字列の一覧を以下に示す。

              指定可能パラメータ設定文字列
              all
              l7vsd           (指定可能だが未対応)
              command         (指定可能だが未対応)
              session         (指定可能だが未対応)
              virtualservice  (指定可能だが未対応)
              module          (指定可能だが未対応)
              replication
              logger
              l7vsadm         (指定可能だが無効)
              snmpagent
              ssl             (指定可能だが無効)


     2.4.8 Help 表示コマンド
            ・書式
              l7vsadm -h

            ・制御種別オプション(必須)
              -h(--help) :コマンドの使用方法を表示する。

            ・指定必須パラメータオプション
              なし

            ・指定可能パラメータオプション
              なし

            ・説明
              コマンド書式、および各オプションの説明が表示される。

--------------------------------------------------------------------------------

 2.5 ProtocolModule オプション説明
     ProtocolModule オプションは、各 ProtocolModule のセッション管理方法に対応し
     た設定であり、オプションの指定方法は、各 ProtocolModule によって異なるが、
     基本的な書式は以下のようにななります。

     [基本書式]
     --moudule-option module-args

     以下に各 ProtocolModule オプションのオプション説明、使用方法を示します。
     また、各オプションの括弧内の記述は省略表現のオプションになります。

     (1) Session less モジュールオプション
         RealServer への振り分けをスケジュール部に任せ UltraMonkey-L7 では何も行
         わないモジュール
         (UltraMonkey-L4 とほぼ同等の動作をするモジュール)

         --forwarded-for(-F)
             Client の IP アドレスを X-Forwarded-For ヘッダフィールドに挿入する
             よう指示する。
             デフォルト(指定しない場合の)動作は挿入しない。

         --sorry-uri URI文字列(-S)
             SorryServer 接続時に取得するURIをシングルクォーテーション(')で囲ん
             で指定する。

         --statistic      (-c)
       ・HTTPリクエスト総数
       ・HTTP GETリクエスト総数
       ・HTTP POSTリクエスト総数
       上記の三つ統計情報の統計を行うよう指定する。
       設定可能な値は、0または1で、1を指定すると情報を統計して、0を指定すると
	    情報を統計しない。指定しない場合のデフォルトは0となる。


     (2) IP モジュールオプション
         Client の IP アドレスを元に RealServer への振り分けを行うモジュール

         --timeout 数値 (-T)
             UltraMonkey-L7 でセッション情報を管理しておく期間(秒)を設定する。
             設定可能な範囲は、0 ~ INT_MAX の整数値で、指定しない場合のデフォル
             ト値は 3600 (1 時間)となる。0 を指定した場合、管理期間は無制限とな
             る。

         --forwarded-for(-F)
             Client の IP アドレスを X-Forwarded-For ヘッダフィールドに挿入する
             よう指示する。
             デフォルト(指定しない場合の)動作は挿入しない。

         --reschedule(-R)
             セッション維持失敗時に再スケジュールを行うよう指定する。
             指定しない場合のデフォルトは--no-rescheduleとなる。

         --no-reschedule(-N)
             セッション維持失敗時に再スケジュールを行なわないよう指定する。

         --sorry-uri URI文字列(-S)
             SorryServer 接続時に取得するURIをシングルクォーテーション(')で囲ん
             で指定する。

         --statistic      (-c)
       ・HTTPリクエスト総数
       ・HTTP GETリクエスト総数
       ・HTTP POSTリクエスト総数
       上記の三つ統計情報の統計を行うよう指定する。
       設定可能な値は、0または1で、1を指定すると情報を統計して、0を指定すると
	    情報を統計しない。指定しない場合のデフォルトは0となる。

     (3) SSL Session IDモジュール(sslid)オプション
         RealServer 側で付与された SSL Session ID を UltraMonkey-L7 で管理するこ
         とでセッション管理をするモジュールです。

         --timeout(-T) 数値
             UltraMonkey-L7 v2 まで使用されていたオプションであり、互換性確保の
             ために留置してある。指定しても効果はない。

         --maxlist(-M) 数値
             UltraMonkey-L7 でセッション情報 (SSL Session ID) を管理しておくリス
             ト数を設定する。
             設定可能な範囲は、0~INT_MAX の整数値でで、指定しない場合のデフォル
             ト値は 1024 となる。
             0 を指定した場合、リスト数はデフォルト値の 1024 となる。

         --reschedule(-R)
             セッション維持失敗時に再スケジュールを行うよう指定する。
             指定しない場合のデフォルトは --no-reschedule となる。

         --no-reschedule(-N)
             セッション維持失敗時に再スケジュールを行なわないよう指定する。


================================================================================

 3 l7vsadm 設定例
     各 ProtocolModule に対する設定例を以下に示します。

--------------------------------------------------------------------------------

 3.1 Sessionless モジュールの設定例
     Sessionless モジュールの使用には必須オプションはありません。

     # l7vsadm -A -t 192.168.8.100:80 -m sessionless -s rr
     # l7vsadm -a -t 192.168.8.100:80 -m sessionless -r 192.168.16.11:80
     # l7vsadm -a -t 192.168.8.100:80 -m sessionless -r 192.168.16.12:80

     以上の設定にて、各RealServerへ振分けを行います。
   IPv6を用いた場合は以下のようになります。

     # l7vsadm -A -t [xxxx:xxxx:xxxx::]:80 -m sessionless -s rr
     # l7vsadm -a -t [xxxx:xxxx:xxxx::]:80 -m sessionless -r yyyy:yyyy:yyyy:::80
     # l7vsadm -a -t [xxxx:xxxx:xxxx::]:80 -m sessionless -r 192.168.16.12:80
     ※アドレス両端の[]は省略可。IPv4と混在可。IP addressモジュール
    SSL SessionIDモジュールにおいてもIPv6アドレスの利用方法は同じです。

--------------------------------------------------------------------------------

 3.2 IP address モジュールの設定例
     セッションを管理する期間を指定し、Client の IP アドレスを X-Forwarded-For
     フィールドに挿入する場合には、以下のように設定します。

     # l7vsadm -A -t 192.168.8.100:80 -m ip --timeout 7200 --forwarded-for -s rr
     # l7vsadm -a -t 192.168.8.100:80 -m ip -r 192.168.16.11:80
     # l7vsadm -a -t 192.168.8.100:80 -m ip -r 192.168.16.12:80

     以上の設定にて、各RealServerへ振分けを行います。

--------------------------------------------------------------------------------

 3.3 SSL Session ID モジュールの設定例
     SSL Session ID を管理するリスト数を指定する設定となります。

     # l7vsadm -A -t 192.168.8.100:80 -m sslid --maxlist 512 -s rr
     # l7vsadm -a -t 192.168.8.100:80 -m sslid -r 192.168.16.11:80
     # l7vsadm -a -t 192.168.8.100:80 -m sslid -r 192.168.16.12:80

     以上の設定にて、512 個の SSL Session ID を管理します。

================================================================================

 4 L7サーバ監視設定ツールの説明

--------------------------------------------------------------------------------

 4.1 設定ファイル(l7directord.cf)の説明

     UltraMonkey-L7 は、2 で示したコマンドベースによる設定方法と l7directord に
     よる設定ファイルを使用した設定方法があります。
     ここでは設定ファイルであるl7directord.cfの説明を行います。詳細は
     l7directord(1) を参照願います。

--------------------------------------------------------------------------------

 4.2 l7directord.cf の設定項目
     設定ファイルのサンプルは /etc/ha.d/conf/l7directord.cf.sample にインストー
     ルされます。環境にあわせて編集後、/etc/ha.d/conf/l7directord.cf または、
     /etc/ha.d/l7directord.cf に保存し、l7directord を起動すれば、振り分け設定が
     l7vsd に反映されます。


     4.2.1 全体設定
           設定ファイルの行頭に設定項目名が書かれているものは、全体に関与する設
           定項目で、全ての VirtualService に対して効果を持ちます。
           VirtualService によって設定を変えたい場合は、一部の設定項目のみ後述の
           VirtualService 毎の設定で上書きすることが可能です。

     4.2.1.1 RealServer 監視設定
             RealServer の監視に関する時間や回数に関する設定

           (1) checktimeout (省略時: 5)
               Ping 監視、ポート監視で、この設定秒数未満で正常な応答が得られない
               場合は、監視失敗として監視失敗回数を 1 増加させます。

           (2) negotiatetimeout (省略時: 5)
               サービス監視で、この設定秒数未満で正常な応答が得られない場合は、
               監視失敗として監視失敗回数を 1 増加させます。

           (3) checkinterval (省略時: 10)
               この設定秒数間隔で監視を実施します。

           (4) retryinterval (省略時: 5)
               監視失敗時は、この設定秒数間隔で監視を実施します。checkinterval
               以下の秒数を設定することで、異常検知にかかる時間を短縮できます。

           (5) checkcount (省略時: 3)
               監視失敗回数が、この設定回数に達した場合に、対象サーバを異常と判
               断し、l7vsd から切り離します。

             サーバ異常と判断するまでの時間について例を挙げる

               checktimeout=5 (もしくは negotiatetimeout=5)
               retryinterval=1
               checkcount=3

             上記の設定でサーバに異常があり、監視が常にタイムアウトするとすると
             最初の監視が始まり、5 秒後にタイムアウト(失敗 1 回目)、1 秒間待って
             次の監視が始まり、5 秒後にタイムアウト(失敗 2 回目)、1 秒間待って、
             次の監視が始まり、5 秒後にタイムアウト(失敗 3 回目)して、サーバ異常
             と判断されて振り分けから除外される。つまり、監視開始から 17 秒後に
             サーバ異常となる。(5 + 1 + 5 + 1 + 5 = 17)
             ただし、ここで示した秒数は全てタイムアウトした場合であるため、異常
             と判断されるまでの最大の秒数となっており、例えばサービス監視でサー
             ビスを提供するプロセスがダウンしていた場合は、特定ポートへの接続に
             失敗するため、監視開始後、瞬時に失敗と判断される。そのため、上記の
             例だと約 2 秒後に 3 回監視失敗となり、サーバ異常と判断される。
             (0 + 1 + 0 + 1 + 0 = 2)

             サーバ異常後、監視に成功した場合は、自動的に l7vsd の振り分け対象に
             追加される。

     4.2.1.2 ログ出力設定
             l7directord のログ出力に関する設定

           (1) logfile (省略時: /var/log/l7vs/l7directord.log)
               l7directord のログ出力先を指定します。絶対パスで記述 (先頭が /) 
               した場合は、そのファイルに出力され、それ以外の場合は syslog に出
               力されます。syslog に出力される場合、設定値がファシリティとなりま
               す。
               (例: logfile = /var/log/l7vs/l7directord.log, logfile = local0)

           (2) supervised
               この設定を行った場合、l7directord プロセスがデーモンとならずに動
               作し、ログを標準出力、標準エラーに出力する。
               設定項目のうち supervised のみ後ろに値を取らず (= 1 などはいらな
               い) supervised と記述するだけでよい。
               この設定は外部ツールとして daemontools でデーモン監視をする際に有
               効です。

     4.2.1.3 RealServer 異常時の設定
             監視異常の際の挙動に関する設定

           (1) quiescent (省略時: yes)
               RealServer 異常時は l7vsd の振り分けから除外されますが、その除外
               の仕方に関する設定です。この設定を有効にした場合、異常と判断され
               た RealServer は l7vsd から削除されずに、重み (weight) が 0 に設
               定されることで、振り分け対象から外されます。無効の場合は、l7vsd
               から削除されます。

           (2) fallback
               VirtualService に属する RealServer が全て異常となり、どの
               RealServer にも振り分けられなくなった場合に、自動的に追加される
               代替 RealServer の設定です。IP アドレスとポート番号を指定します。
               この設定により追加された fallback サーバは、RealServer が回復して
               正常に振り分けができるようになった際に自動的に削除されます。
               (例: fallback = 127.0.0.1:80)

     4.2.1.4 設定ファイルの監視設定
             設定ファイルの変更を監視する設定
             l7directord は設定ファイルを定期的に監視し、変更が起きた場合にいく
             つかの動作を起こすことが出来ます。設定ファイルの監視では、設定ファ
             イルの MD5 チェックサムが変化した場合に、中身が変更されたと判断して
             おり、ファイルの更新時間だけが変化した場合などは無視されます。

           (1) configinterval (省略時: 10)
               設定ファイルの変更を監視する秒間隔を指定します。
               (例: configinterval = 5)

           (2) autoreload (省略時: no)
               設定ファイルが変更されたことを検知した場合に、その変更後の内容を
               プロセスに反映するかどうかを設定します。

           (3) callback
               この設定に、絶対パスで実行可能なファイルを指定すると、設定ファイ
               ルの変更を検知した際に、設定ファイルを引数として実行します。この
               設定は autoreload 設定とは関係なく、autoreload が no の場合も実行
               されます。


     4.2.2 VirtualService 毎の設定
           virtual 行以降で、先頭にインデントが置かれて設定項目名が書かれている
           ものは、その virtual に関してのみ作用する設定です。

     4.2.2.1 VirtualService の定義

           (1) virtual
               VirtualService の IP アドレスとポート番号を指定する。
               この設定項目のみ行頭に書く必要がある
               (例: virtual = 192.168.0.2:80, virtual = [::1]:80)

           (2) module (省略時: sessionless)
               VirtualService に設定するプロトコルモジュールと必要であれば、その
               オプションを指定する。現在設定可能なプロトコルモジュールは以下の
               3 つ。
                   sessionless, ip, sslid
               (例: module = sessionless --forwarded-for)

           (3) scheduler (省略時: rr)
               VirtualService に設定するスケジュールモジュールを指定する。現在指
               定可能なスケジュールモジュールは以下の 3 つ。
                   rr, wrr, lc
               (例: scheduler = lc)

           (4) sorryserver
               VirtualService が sorry 状態になった際に振り分けられる Sorry サー
               バの IP アドレス、ポート番号、パケット転送方式を指定する。
               パケット転送方式は masq または tproxy を指定し、省略時は masq 設
               定となる。なお、tproxy 設定を使用する場合は 8.1 の設定が必要です。
               (例: sorryserver = 192.168.1.101:80 tproxy)

           (5) maxconn (省略時: 0)
               VirtualService あたりの最大同時接続数を指定する。これを超える接続
               があった場合は、Sorry サーバに振り分けられる。0 を指定した場合は
               制限無しとなる。
               (例: maxconn = 1000)

           (6) qosup (省略時: 0)
               VirtualService あたりの許容スループット(上り方向)を指定する。こ
               の設定を超えるスループットになる場合は、パケットの転送が遅延され
               る。0 を指定した場合は、制限なしとなる。
               (例: qosup = 200K)

           (7) qosdown (省略時: 0)
               VirtualService あたりの許容スループット(下り方向)を指定する。こ
               の設定を超えるスループットになる場合は、パケットの転送が遅延され
               る。0 を指定した場合は、制限なしとなる。
               (例: qosdown = 100M)

           (8) sslconfigfile
               VirtualService が Clientとの通信の際に SSL 通信を行う場合、SSL 
               設定ファイルのパスを指定する。
               (例: sslconfigfile = /etc/l7vs/sslproxy/sslproxy.target.cf)

           (9) socketoption
               VirtualService(TCP) で使用するソケットのオプションを指定する。
               (例: socketoption = deferaccept,nodelay,quickackoff)

           (10) accesslog
                アクセスログ出力の有無を yes, no で設定する。
                (例: accesslog = yes)

           (11) accesslogfile
                アクセスログ出力対象のログファイル名をフルパスで指定する。
                (例: accesslogfile = /var/log/l7vs/l7vsd_conn.log)

           (12) accesslog_rotate_type
                ローテーションのタイプとして、date, size, datesize の何れかを
                指定する。
                (例: accesslog_rotate_type = datesize)

           (13) accesslog_rotate_max_backup_index
                バックアップファイルの最大数を指定する。
                (例: accesslog_rotate_max_backup_index = 2)

           (14) accesslog_rotate_max_filesize
                ログの最大サイズを指定する。K(キロ)、M(メガ)、G(ギガ)での指定も
                可能。
                (例: accesslog_rotate_max_filesize = 100M)

           (15) accesslog_rotate_rotation_timing
                ローテーションを行うタイミングを year, month, week, date, hour
                の何れかで指定する。
                (例: accesslog_rotate_rotation_timing  = month)

           (16) accesslog_rotate_rotation_timing_value
                ローテーションを行う日付・時刻を指定する。
                (例: accesslog_rotate_rotation_timing_value = "1 23:59")

           (17) session_thread_pool_size
                VirtualService でプールするスレッド数を指定する。
                (例: session_thread_pool_size = 32)

     4.2.2.2 RealServer の定義と監視設定

           (1) real
               RealServer の IP アドレスとポート番号を指定する。オプションとして
               パケット転送方式、重み (weight)、後述の request, receive を
               RealServer 毎、個別に設定できる。なお、パケット転送方式は masq,
               tproxy が指定可能です。また、IP アドレスは -> を挟んで範囲指定す
               ることも出来ます。なお、tproxy 設定を使用する場合は 8.1 の設定が
               必要です。
               (例: real = 192.168.0.11:80,
                    real = 192.168.0.11:80 masq 100 index.html 'Test Page',
                    real = 192.168.0.11->192.168.0.15:80 tproxy)

           (2) checkport
               RealServer の監視を行う際に、real で指定したポート番号と、別の
               ポートに監視リクエストを送る場合に、ポート番号を設定します。

           (3) checktype (省略時: negotiate)
               RealServer の監視方法を指定します。以下の 6 種類から選択します。
                   negotiate : サービス監視を行う
                   connect   : ポート監視を行う
                   ping      : Ping 監視を行う
                   数値      : サービス監視とポート監視を併用する
                   custom    : カスタム監視を行う
                   off       : 監視せずに、常にサーバ異常と判断する
                   on        : 監視せずに、常にサーバ正常と判断する
               negotiate の場合は後述の設定を行う必要があります。数値の場合は、
               設定した数値回数のポート監視と 1 回のサービス監視を繰り返します。
               サービス監視による負荷が大きい場合に有効です。custom の場合は後述
               の customcheck 設定を行う必要があります。

           (4) service (省略時: none)
               サービス監視時の監視サービスを指定します。以下の 13 種類から選択
               します。

               1) http
                  HTTP で接続し、ドキュメントルートにリクエスト送信、レスポンス
                  確認を行います。レスポンスコードが 4xx, 5xx の場合は監視失敗と
                  判断されます。後述の request, receive, httpmethod, virtualhost
                  をオプションとして設定可能。

               2) https
                  HTTPS で接続し監視します。他は http と同一。

               3) smtp
                  SMTP で接続し、サーバが正常な SMTP 応答を返すことを確認する。

               4) pop
                  POP3 で接続し、サーバが正常な POP3 応答を返すことを確認する。
                  後述の login, passwd をオプションとして設定可能。

               5) imap
                  IMAP で接続し、サーバが正常な IMAP 応答を返すことを確認する。
                  後述の login, passwd をオプションとして設定可能。

               6) ftp
                  FTP で接続し、login, passwd で設定した値でログインできることを
                  確認する。後述の request, receive をオプションとして設定可能。

               7) ldap
                  LDAP で接続し、サーバが正常な LDAP 応答を返すことを確認する。
                  後述の request, receive をオプションとして設定可能。

               8) dns
                  DNS サーバに接続し、名前解決が正常に行えることを確認する。後述
                  の request, receive を設定する必要がある。

               9) nntp
                  NNTP で接続し、サーバが正常な NNTP 応答 (ステータスコード 2xx)
                  を返すことを確認する。

              10) pgsql
                  指定した PostgreSQL データベース (database 項目で指定) に接続
                  できることを確認する。後述の request, receive をオプションとし
                  て設定可能。

              11) mysql
                  指定した MySQL データベース (database 項目で指定) に接続できる
                  ことを確認する。後述の request, receive をオプションとして設定
                  可能。

              12) sip
                  SIP サーバに接続し、指定した Call ID で正常な応答 (ステータス
                  コード 200) を返すことを確認する。後述の login も参照。

              13) none
                  何も行わず、サーバ正常と判断する。

           (5) request
               以下のように service の設定によって、動作が異なる。

               i) http, https
                  監視用の URL を http://~ で指定、または URI で指定する。指定
                  した場合は、その URL を取得するリクエスト (GET または HEAD) を
                  送信する。URI の場合、先頭の / はつけてもつけなくてもかまわな
                  い。
                  (例: request = http://192.168.0.2/foo/bar/index.html,
                       request = /doc/manual.html,
                       request = favicon.ico)

               ii) ftp
                  監視用のファイルを指定する。FTP 監視ではログイン後 / に移動す
                  るため、/ からの相対パスとして記述しても、絶対パスとして記述し
                  てもよい。指定した場合は、そのファイルが GET できるか確認され
                  る。
                  (例: request = /etc/passwd,
                       request = etc/hosts)

               iii) ldap
                  LDAP で検索する際の BaseDN を指定する。指定した場合は、BaseDN
                  をスコープ base、フィルタ (objectClass=*) で検索し、見つかるこ
                  とを確認する。
                  (例: request = dc=my-domain,dc=com)

               iv) dns
                  DNS で名前解決する際のリクエストを指定する。指定したリクエスト
                  を正引き、または逆引きできるかを確認する。後述の receive も設
                  定する必要がある。
                  (例: request = www.example.com,
                       request = 127.0.0.1)

               v) pgsql, mysql
                  データベース接続後に送信するクエリーを指定する。結果が 0 行の
                  場合、監視失敗と判断される。
                  (例: request = 'select * from test',
                       request = 'insert into test values (1)',
                       request = 'delete from test where test = 1')

           (6) receive
               以下のように service の設定によって、動作が異なる。いずれも
               request の設定が必須である。

               i) http, https
                  取得した URL のデータ内に、ここで指定する文字列が存在するかが
                  確認される。常に Perl の正規表現で確認されるため、'.' などの文
                  字は注意する必要がある。
                  (例: receive = "DOCTYPE HTML PUBLIC",
                       receive = "2009\.[01][0-9]\.[0-3][0-9]")

               ii) ftp
                  取得したファイルのデータ内に、ここで指定する文字列が存在するか
                  が確認される。常に Perl の正規表現で確認されるため、'.' などの
                  文字は注意する必要がある。
                  (例: receive = "root.*\/bin\/bash",
                       receive = "127\.0\.0\.1")

               iii) ldap
                  LDAP の検索結果に、ここで指定する文字列が存在するかが確認され
                  る。常に Perl の正規表現で確認されるため、'.' などの文字は注意
                  する必要がある。
                  (例: receive = 'dc=my-domain,dc=com',
                       receive = '^dc=[^,]+,dc=[^,]+$')

               iv) dns
                  DNS で request に設定した値を名前解決した結果を指定します。
                  (例: receive = '192.168.0.101',
                       receive = 'localhost')

               v) pgsql, mysql
                  request で指定したクエリーを処理した結果の行数を 1 以上で指定
                  します。
                  (例: receive = 1)

           (7) login
               service によって若干動作が異なる。

               i) pop, imap, ftp, pgsql, mysql
                  ログイン名として使われる。passwd の設定も必要。
                  (例: login = postgres)

               ii) sip
                  Call ID として使われる。

           (8) passwd
               service が pop, imap, ftp, pgsql, mysql の際にログインのパスワー
               ドとして使われる。
               (例: passwd = password)

           (9) httpmethod (省略時: GET)
               service が http, https の際に送信するリクエストのメソッドを指定し
               ます。GET または HEAD が指定できます。
               (例: httpmethod = HEAD)

           (10) virtualhost
               service が http, https の際に送信するリクエストの Host フィールド
               を指定します。
               (例: virtualhost = www.example.net)

           (11) database
               service が pgsql, mysql の際に、接続するデータベース名を指定しま
               す。
               (例: database = template1)

           (12) realdowncallback
               RealServer の異常を検知した際に、実行するファイルを指定します。指
               定された場合、異常サーバの IP アドレスを引数としてファイルが実行
               されます。
               (例: realdowncallback = /usr/local/bin/down_notify.sh)

           (13) realrecovercallback
               RealServer の回復を検知した際に、実行するファイルを指定します。指
               定された場合、異常から回復したサーバの IP アドレスを引数として、
               ファイルが実行されます。
               (例: realrecovercallback = /usr/local/bin/recover_notify.sh)

           (14) customcheck
               checktype に custom を指定した際に、RealServer 監視として実行する
               コマンドを指定します。コマンドの実行結果が 0 の場合は監視成功、そ
               れ以外の場合は監視失敗となります。コマンド文字列中の _IP_ は監視
               対象の RealServer の IP アドレスに、_PORT_ はポート番号に置き換え
               られます。
               (例: customcheck = wget -q -O /dev/null http://_IP_:_PORT_/)

     4.2.2.3 上書き可能な全体設定項目
             以下の全体設定項目は VirtualService 毎の設定内にも記述することがで
             き、その場合は、全体設定項目の設定値を無視して、その VirtualService
             のみの固有の設定として扱われる。

             ・checkcount
             ・checkinterval
             ・retryinterval
             ・checktimeout
             ・negotiatetimeout
             ・quiescent
             ・fallback


 4.3 サンプル

     例として、期待する機能を持たせる為の設定パターンをいくつか挙げる。
     各々について記載のない定義値に関しては省略時の値が使用されるものとする。

     1) 2 台の RealServer に振り分け Ping で監視する

     virtual  = xxx.xxx.xxx.xxx:80
         real = 192.168.1.2:80
         real = 192.168.1.3:80
         checktype = ping

     2) 2 台の RealServer にそれぞれの重みを 2:3 に変えて、重みつきの振り分け
        を行う。また、サービス監視を行い、Apache の mod_status を用いてアイドル
        状態の worker があることを確認する。

     virtual  = xxx.xxx.xxx.xxx:80
         real = 192.168.1.2:80 2
         real = 192.168.1.3:80 3
         scheduler = wrr
         service   = http
         request   = /server-status
         receive   = "[1-9][0-9]? idle workers"

     3) 2 台の RealServer に振り分け  sslid モジュールを使って、クライアントの
        セッションを維持する。

     virtual  = xxx.xxx.xxx.xxx:443
         real = 192.168.1.2:443
         real = 192.168.1.3:443
         module    = sslid

     4) IPv6の設定例
        アドレス両端の[]は省略可。IPv4と混在可。

     virtual  = [xxxx:xxxx:xxxx::]:80
         real = 192.168.1.2:80
         real = [::1]:80
     virtual  =  xxxx:xxxx:xxxx:::8080
         real =  ::1:80
================================================================================

 5 Replication機能

--------------------------------------------------------------------------------

 5.1 Replication 機能の説明

     Replication 機能は、Heartbeat2 による冗長化構成の際に、MASTER サーバと
     SLAVE サーバの間で SSL セッション ID 情報、VirtualService の QoS 情報、
     Sorry フラグ情報などの同期を行うために使用する機能です。

     Replication 機能は、冗長化構成、および機能の実行状況により以下の状態
     (Replication Mode) で動作します。
     現在の状態は、"l7vsadm -V" コマンドで確認できます。

         SINGLE     :非冗長化構成で、Replication が機能していない状態
         MASTER     :冗長化構成で、Replication がMASTERサーバとして実行中(同期
                      元)である状態
         SLAVE      :冗長化構成で、Replication がSLAVEサーバとして実行中(同期
                      先)である状態
         MASTER_STOP:MASTER(同期元)で、コマンドによりReplication 機能が停止し
                      ている状態
         SLAVE_STOP :SLAVE(同期先)で、コマンドによりReplication 機能が停止し
                      ている状態

     上記の MASTER ⇔ MASTER_STOP、SLAVE ⇔ SLAVE_STOP の状態切替は、Replication
     機能制御コマンドの "l7vsadm -R -s stop"、"l7vsadm -R -s start" で行うことが
     できます。

     Replication 機能に関する設定(対向サーバ情報、利用コンポーネント情報などは、
     UltraMonkey-L7 設定ファイルの [replication] セクションに記述します。
     設定方法の詳細は、6 UltraMonkey-L7 設定ファイルの説明を参照

     また、Replication 機能制御コマンドにより、強制的に現在の Replication データ
     を SLAVE サーバに反映させたり、現在の Replication データをダンプしたりする
     ことができます。

     Replication 機能制御コマンドの詳細は、2.4.4 Replication 機能制御コマンドを
     参照

================================================================================

 6 UltraMonkey-L7設定ファイルの説明

--------------------------------------------------------------------------------

 6.1 設定ファイル (l7vs.cf) の説明
     UltraMonkey-L7 に関する各種設定を記述することができます。
     設定可能な項目は、[logger], [l7vsadm], [l7vsd], [virtualservice],
     [replication], [session] の 6 種類で、各々のセクションごとに記述します。

     [logger]
         ・UltraMonkey-L7 を構成する各プロセス(l7vsd/l7vsadm/SNMPAgent)のログ
           出力に関する設定(ログファイル、ログローテーション、ログレベルなど)
           を記述します。

     [l7vsadm]
         ・l7vsadm コマンドに関する設定(2 重起動チェック、l7vsd 接続チェックな
           ど)を記述します。

     [replication]
         ・Replication 機能に関する設定(対向サーバ情報、利用コンポーネント情報
           など)を記述します。

     [l7vsd]
         ・l7vsd プロセスに関する設定(ファイルオープン最大数など)を記述します。

     [vitrualservice]
         ・VitrualService に関する設定(セッション数、スループット算出間隔など)を
           記述します。

     [replication]
         ・Replication 機能に関する設定(対向サーバ情報、利用コンポーネント情報な
           ど)を記述します。

     [snmpagent]
         ・SNMPAgnet に関する設定を記述します。

     [session]
         ・セッションに関する設定(受信バッファサイズなど)を記述します。

--------------------------------------------------------------------------------

 6.2 l7vs.cf のサンプルの説明

     # ロガーセクション
     [logger]

     # l7vsd出力ログファイル(必須)
     l7vsd_log_filename = "/var/log/l7vs/l7vsd.log"

     # ログローテーション方法(必須)
     # サイズ"size", 日付"date", 日付+サイズ"datesize" が指定できます
     l7vsd_rotation = "size"

     # ローテーションによるバックアップファイルの世代数(必須)
     # 1 から 12 で指定できます
     l7vsd_max_backup_index = "10"

     # サイズによるローテーション時のファイルサイズ(必須)
     # 65535からULONG_MAXで指定できます
     # K(キロ)、M(メガ)、G(ギガ)での指定も可能です
     l7vsd_max_filesize = "10M"

     # ローテーションタイミングの指定
     # "year","month", "week", "date", "hour" の何れかで指定します
     # ("date""datesize"指定時は必須です)
     #l7vsd_rotation_timing = "date"

     # ローテーションを行う日付・時刻の指定
     # ("date""datesize"指定時は必須です)
     # 指定書式は以下です
     # "year" 時:  (毎年MM月dd日hh時mm分)
     #l7vsd_rotation_timing_value = "MM/dd hh:mm"
     # "month" 時: (毎月dd日hh時mm分)
     #l7vsd_rotation_timing_value = "dd hh:mm"
     # "week" 時:  (毎週WEEK曜日hh時mm分)
     #l7vsd_rotation_timing_value = "WEEK hh:mm"
     # "date" 時:  (毎日hh時mm分)
     #l7vsd_rotation_timing_value = "hh:mm"
     # "hour" 時:  (毎時mm分)
     #l7vsd_rotation_timing_value = "mm"

     # 設定可能な値は、MM(1~12), dd(1~31),
     # hh(0~23), mm(0~59), WEEK("sun", "mon",
     # "tue", "wed", "thu", "fri", "sat")

     # アクセスログローテーション方法(必須)
     # サイズ"size", 日付"date", 日付+サイズ"datesize" のいずれかを指定します。
     l7vsd_accesslog_rotate_type = "size"

     # アクセスログローテーションによるバックアップファイルの世代数
     # 1 から 12 で指定できます。
     # (アクセスログローテーションを行う時は必須です)
     l7vsd_accesslog_rotate_max_backup_index = "10"

     # アクセスログサイズによるローテーション時のファイルサイズ
     # 65535 から ULONG_MAX で指定できます
     # K(キロ)、M(メガ)、G(ギガ)での指定も可能です
     # ("size""datesize"指定時は必須です)
     l7vsd_accesslog_rotate_max_filesize = "10M"

     # アクセスログローテーションタイミングの指定
     # "year","month", "week", "date", "hour" の何れかで指定します
     # ("date""datesize"指定時は必須です)
     #l7vsd_accesslog_rotate_rotation_timing = "date"

     # アクセスログローテーションを行う日付・時刻の指定
     # ("date""datesize"指定時は必須です)
     # 指定書式は以下です
     # "year" 時:  (毎年MM月dd日hh時mm分)
     #l7vsd_accesslog_rotate_rotation_timing_value = "MM/dd hh:mm"
     # "month" 時: (毎月dd日hh時mm分)
     #l7vsd_accesslog_rotate_rotation_timing_value = "dd hh:mm"
     # "week" 時:  (毎週WEEK曜日hh時mm分)
     #l7vsd_accesslog_rotate_rotation_timing_value = "WEEK hh:mm"
     # "date" 時:  (毎日hh時mm分)
     #l7vsd_accesslog_rotate_rotation_timing_value = "hh:mm"
     # "hour" 時:  (毎時mm分)
     #l7vsd_accesslog_rotate_rotation_timing_value = "mm"

     # 設定可能な値は、MM(1~12), dd(1~31),
     # hh(0~23), mm(0~59), WEEK("sun", "mon",
     # "tue", "wed", "thu", "fri", "sat")

     # ログカテゴリl7vsd_networkのデフォルトログレベル(必須)
     # debug, info, warn, error, fatal が指定できます
     l7vsd_network                    = "warn"

     l7vsd_network_qos                = "warn"
     l7vsd_network_bandwidth          = "warn"
     l7vsd_network_num_connection     = "warn"
     l7vsd_network_access             = "warn"
     l7vsd_mainthread                 = "warn"
     l7vsd_virtualservice             = "warn"
     l7vsd_virtualservice_thread      = "warn"
     l7vsd_session                    = "warn"
     l7vsd_session_thread             = "warn"
     l7vsd_realserver                 = "warn"
     l7vsd_sorryserver                = "warn"
     l7vsd_module                     = "warn"
     l7vsd_replication                = "warn"
     l7vsd_replication_sendthread     = "warn"
     l7vsd_parameter                  = "warn"
     l7vsd_logger                     = "warn"
     l7vsd_command                    = "warn"
     l7vsd_start_stop                 = "warn"
     l7vsd_system                     = "warn"
     l7vsd_system_memory              = "warn"
     l7vsd_system_endpoint            = "warn"
     l7vsd_system_signal              = "warn"
     l7vsd_system_environment         = "warn"
     l7vsd_snmpbridge                 = "warn"
     l7vsd_protocol                   = "warn"
     l7vsd_schedule                   = "warn"

     # l7vsadm 出力ログファイル(必須)
     l7vsadm_log_filename = "/var/log/l7vs/l7vsadm.log"

     # ログローテーション方法(必須)
     l7vsadm_rotation = "date"

     # ローテーションによるバックアップファイルの世代数(必須)
     l7vsadm_max_backup_index = "10"

     # 日付によるローテーション時のタイミング(周期)(必須)
     # 毎年 "year", 毎月 "month", 毎週 "week", 毎日 "date", 毎時 "hour" が指定
     # できます
     l7vsadm_rotation_timing = "month"

     # 日付によるローテーション時のタイミング(切替時間)(必須)
     # 毎時"hour"の例 -> "30"
     # 毎日"date"の例 -> "10:30"
     # 毎週"week"の例 -> "tue 10:30"
     # 毎月"month"の例 -> "15 10:30"
     # 毎年"year"指定時の例->"5/15 10:30"
     # ※ ローテーションタイミングは、最大で毎年周期(1年毎)までの仕様としている
     #    ため、閏年2/29は例外の月日として設定してもエラーとなる。
     l7vsadm_rotation_timing_value = "1 0:01"

     # ログカテゴリ l7vsadm_parse のデフォルトログレベル(必須)
     # debug, info, warn, error, fatalが指定できます
     l7vsadm_parse                    = "warn"

     l7vsadm_operate                  = "warn"
     l7vsadm_config_result            = "warn"
     l7vsadm_common                   = "warn"
     l7vsadm_logger                   = "warn"
     l7vsadm_parameter                = "warn"
     l7vsadm_module                   = "warn"
     l7vsadm_protocol                 = "warn"
     l7vsadm_schedule                 = "warn"

     # snmpagent 出力ログファイル
     snmp_log_filename = "/var/log/l7vs/snmpagent.log"

     # ログローテーション方法
     snmp_rotation = "datesize"

     # ローテーションによるバックアップファイルの世代数
     snmp_max_backup_index = "10"

     # サイズによるローテーション時のファイルサイズ
     snmp_max_filesize = "30M"

     # 日付によるローテーション時のタイミング(周期)
     snmp_rotation_timing = "week"

     # 日付によるローテーション時のタイミング(切替時間)
     snmp_rotation_timing_value = "wed 23:59"

     # ログカテゴリ snmpagent_start_stop のデフォルトログレベルです
     # debug, info, warn, error, fatalが指定できます
     snmpagent_start_stop             = "warn"

     snmpagent_manager_receive        = "warn"
     snmpagent_manager_send           = "warn"
     snmpagent_l7vsd_receive          = "warn"
     snmpagent_l7vsd_send             = "warn"
     snmpagent_logger                 = "warn"
     snmpagent_parameter              = "warn"
     snmpagent_system                 = "warn"
     snmpagent_system_memory          = "warn"
     snmpagent_system_endpoint        = "warn"
     snmpagent_system_signal          = "warn"
     snmpagent_system_environment     = "warn"

     # l7vsadm セクション
     [l7vsadm]

     # l7vsadm コマンド 2 重起動チェック時のリトライ間隔(秒)
     cmd_interval = 1

     # l7vsadm コマンド2重起動チェック時のリトライ回数(回)
     cmd_count = 10

     # l7vs 接続チェック時のリトライ間隔(秒)
     con_interval = 1

     # l7vs 接続チェック時のリトライ回数(回)
     con_count = 10

     # l7vsd セクション
     [l7vsd]

     # ファイルオープンのリソース制限数
     maxfileno = 65535

     # virtualservice セクション
     [virtualservice]

     # セッションスレッドのプールのサイズ
     session_thread_pool_size    = 32

     # スループットを計算するインターバル
     throughput_calc_interval    = 500

     # VirtualServiceが管理しているセッションが使えるCPUの数
     num_of_core_uses            = 0

     # replication セクション
     [replication]

     # データの送信先 (SLAVE) の IP アドレス
     # ホスト名で記述することも可能です
     # IPv6 形式で記述することも可能です
     # (IPv6 設定例:ip_addr = "[fe80::4]")
     ip_addr = "192.168.0.254"

     # MASTER からデータを受信する port 番号
     # サービス名で記述することも可能です
     service_name = "40000"

     # MASTER からデータを受信する IP アドレス
     # IPv6 形式で記述することも可能です
     # (IPv6 設定例:ip_addr = "[fe80::3]")
     recv_ip_addr = "192.168.0.253"

     # データ (1 ブロック = 512 byte) の送信間隔 (uS)
     # 10から10000で指定できます
     interval = 1000

     # 強制 Replication コマンド実行時のデータ
     # (1 ブロック = 512 byte) の送信間隔 (mS)
     # 4 から 400 で指定できます
     compulsorily_interval = 40

     # Replication 機能のコンポーネント名
     # コンポーネントの ID(cmponent_id_xx) は通番で、0 から 99 までで指定
     cmponent_id_00 = "virtualservice"

     # コンポーネントが使用するブロックサイズ
     # (1 ブロック = 512 byte) です
     # コンポーネントの ID(cmponent_id_xx) と一対で指定し、0 から 100000
     # で指定できます
     cmponent_size_00 = 64

     cmponent_id_01 = "sslid"
     cmponent_size_01 = 222

     # snmpagent セクション
     [snmpagent]
     # SNMPAgent機能有効・無効
     # trueまたはfalseが指定できます
     enable = "false"

     # MIB情報の最小収集間隔(s)
     # 0から2147483647までを指定できます
     cache_update_interval = 1

     # ログトラップ発出機能有効・無効
     # trueまたはfalseが指定できます
     logtrap = "false"             

     # TRAP発出ログレベル
     # debug, info, warn, error,fatal が指定できます
     logtrap_level = "warn"

     # 上りQoS警告の警告閾値
     # 1から100までを指定できます
     qos_up_alert_on = 85

     # 上りQoS警告の警告解除閾値
     # 1から100までを指定できます
     qos_up_alert_off = 50

     # 下りQoS警告の警告閾値
     # 1から100までを指定できます
     qos_down_alert_on = 85

     # 下りQoS警告の警告解除閾値
     # 1から100までを指定できます
     qos_down_alert_off = 50

     # 残りセッション数警告の警告閾値
     # 1から2147483647までを指定できます
     sessionpool_alert_on = 85	

     # 残りセッション数警告の警告解除閾値
     # 1から2147483647までを指定できます
     sessionpool_alert_off = 50	

     # トラップキューポーリング間隔(nS)
     # 1から1000000000までを指定できます
     trap_queue_polling_interval = 100000000

     # トラップキュー最大値
     # 1から2147483647までを指定できます
     trap_queue_max_size = 1000	

     # session セクション
     [session]

     # セッションの上り方向 Socket バッファサイズ
     upstream_buffer_size = 8192

     # セッションの下り方向 Socket バッファサイズ
     downstream_buffer_size = 8192

     # UltraMonkey-L7からリアルサーバへの接続タイムアウト値(秒)
     # 0から2147483647までを指定できます(デフォルト: 0)
     # 0の時はタイムアウトなし
     server_connect_timeout = 30

================================================================================

 7 SSL設定ファイルの説明

--------------------------------------------------------------------------------

 7.1 設定ファイルの説明

     クライアントとの SSL 通信に関する各種設定を記述することができます。

     [ssl] セクションに全ての設定を記述します。
     SSL 設定ファイルは UltraMonkey-L7 設定ツールにて VirtualService を追加する
     際にコマンドオプションとして指定します。VirtualService ごとに異なる SSL 設
     定ファイルを指定することが可能です。

     [ssl]セクション
     ・SSL通信に関する設定を記述します。

     (※)v3からl7vsd単体でSSLデコードが可能になりました。
         (v2まではsslproxyが必要でした)

--------------------------------------------------------------------------------

 7.2 sslproxy.target.cfのサンプルの説明

     # sslセクション
     [ssl]

     # SSL ハンドシェイク処理のタイムアウト値(秒)
     timeout_sec = 30

     # ルート証明書ディレクトリパス
     ca_dir = "/etc/l7vs/sslproxy/"

     # ルート証明書ファイル(空文字列も可)
     ca_file = "root.pem"

     # サーバ証明書チェーンディレクトリパス
     cert_chain_dir = "/etc/l7vs/sslproxy/"

     # サーバ証明書チェーンファイル
     cert_chain_file = "server.pem"

     # 秘密鍵ディレクトリパス
     private_key_dir = "/etc/l7vs/sslproxy/"

     # 秘密鍵ファイル
     private_key_file = "server.pem"

     # 秘密鍵符号化タイプ(SSL_FILETYPE_PEM または SSL_FILETYPE_ASN1)
     private_key_filetype = "SSL_FILETYPE_PEM"

     # 秘密鍵パスフレーズディレクトリパス
     private_key_passwd_dir = "/etc/l7vs/sslproxy/"

     # 秘密鍵パスフレーズファイル
     private_key_passwd_file = "passwd.txt"

     # 証明書検証オプション(複数指定可能※、OpenSSL定義項目)
     verify_options = "SSL_VERIFY_FAIL_IF_NO_PEER_CERT"
     verify_options = "SSL_VERIFY_CLIENT_ONCE"

     # 検証する証明書の階層
     verify_cert_depth = 9

     # SSLオプション (複数指定可能※、OpenSSL 定義項目)
     ssl_options = "SSL_OP_ALL"
     ssl_options = "SSL_OP_NO_SSLv2"

     # 一時鍵ディレクトリパス(SSLオプションで"SSL_OP_SINGLE_DH_USE"が
       指定されている場合のみ必要となる)
     tmp_dh_dir = "/etc/l7vs/sslproxy/"

     # 一時鍵ファイル名(SSLオプションで"SSL_OP_SINGLE_DH_USE"が
       指定されている場合のみ必要となる)
     tmp_dh_file = "dh512.pem"

     # 暗号化スイート (OpenSSL定義項目)
     cipher_list = "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"

     # セッションキャッシュ(on, off)
     session_cache = "on"

     # セッションキャッシュサイズ 0 が指定された場合、サイズ制限なし
     session_cache_size = 20480

     # セッションキャッシュのタイムアウト
     # 0 が指定された場合、デフォルト値の 300 秒
     session_cache_timeout = 300

(※) verify_options、ssl_options については、使用するオプション行を複数行指定す
     ることができます。

================================================================================

 8 その他

--------------------------------------------------------------------------------

8.1 snmpdの説明
8.1.1 設定ファイル(snmpd.conf)の説明

master agentx		     		<-Master agentx使用可否フラグ
access		                        <-全てisoツリーをアクセス可能の設定。
trap2sink				<-トラップシンクに指定。

8.1.2 snmpd.confのサンプルの説明

# net-snmp configuration file.
# /etc/snmp/snmpd.conf


master agentx                                       # Master agentx使用可否フラグを追加する
com2sec ultramonkey_sec default ultramonkey_com     # ネットワークの範囲とコミュニティ名を定義
group ultramonkey_group v1         ultramonkey_sec  # セキュリティ名とSNMPのセキュリティモデルをグループ名で定義
group ultramonkey_group v2c        ultramonkey_sec
group ultramonkey_group usm        ultramonkey_sec
view ultramonkey included .1.3.6.1.4.1.32132.1      # SNMPで取得可能な情報の範囲を指定
access ultramonkey_group ""      any       noauth    exact  ultramonkey none   none # 全てisoツリーをアクセス可能の設定。
trap2sink 127.0.0.1 public		# トラップシンクの指定を追加する。

--------------------------------------------------------------------------------
					
8.2  Transparent Proxy について
 
     VirtualService 作成時、RealServer 追加時に --tproxy オプションをつけることで、
     Transparent Proxy 機能が有効になり、RealServer や SorryServer への振り分け
     時にクライアントの IP アドレスを bind して接続します。この機能を使用すると
     RealServer や SorryServer にクライアントから直接接続しているように見せかけ
     ることができます。
     ただし、本機能は使用するには以下の 3 つの条件を満たす必要があります。
     
     (1) UltraMonkey-L7 サーバのカーネルバージョンが以下を満たすこと
     
         2.6.28 以上 (RHEL6.0 以上) 

     (2) RealServer, SorryServer と UltraMonkey-L7 が別サーバの場合はRealServer,
     SorryServer のデフォルトゲートウェイに UltraMonkey-L7サーバを設定している
     こと

     (3) 以下の iptables, ip rule, ip route の設定を行うこと

         iptables -t mangle -N DIVERT
         iptables -t mangle -A DIVERT -j MARK --set-mark 1
         iptables -t mangle -A DIVERT -j ACCEPT
         ip rule add fwmark 1 lookup 100
         ip route add local 0.0.0.0/0 dev lo table 100

         上記に加え、条件に従って以下の(i)または(ii)の設定を行うこと
         (i)  RealServer, SorryServer と UltraMonkey-L7 が別サーバの場合

         iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT

         (ii) RealServer, SorryServer と UltraMonkey-L7 が同一サーバの場合
              (ただし、ループバックアドレスは設定できない)

         iptables -t mangle -A OUTPUT -p tcp -s サーバアドレス \
           --sport サーバポート -j DIVERT

         (※) (i), (ii) の同時設定は可能

================================================================================