UltraMonkey-L7設定


l7directord設定項目

Global Setting

  • checktimeout
    • 監視ノードから何秒間正常な応答が得られなかった場合にダウンとみなすか
    • デフォルト 5 秒
    • 条件 checktype が connect, ping の場合、または checktype が negotiate で service が sip, dns の場合
    • virtual section での上書き可能
  • negotiatetimeout
    • 監視ノードから何秒間正常な応答が得られなかった場合にダウンとみなすか
    • デフォルト 0 秒(これはまずそうな予感。Default is defined by the operating system. と doc に書かれているがそうはみえない)
    • 条件 checktype が negotiate で service が http, https, smtp, pop, imap, ldap, nntp, ftp の場合
    • virtual section での上書き可能
  • checkinterval
    • 監視間隔の秒数
    • デフォルト 10 秒
  • checkcount
    • 監視ノードから何回連続で正常な応答が得られなかった場合にダウンとみなすか
    • デフォルト 1 回
    • 条件 checktype が ping の場合のみ
  • autoreload
    • 設定ファイルを定期的にチェックして変更があった場合に、変更内容を反映するかどうか
    • デフォルト no
  • callback
    • 設定ファイルを定期的にチェックして変更があった場合に、実行するプログラム
    • デフォルト undef
    • autoreload の値にかかわらず、設定ファイルが変更された場合に、</path/callback> </path/config> が実行される
  • fallback
    • real サーバが全てダウンした際に追加される real サーバの代替サーバ
  • logfile
    • l7directord のログファイルの指定
    • デフォルト /var/log/l7directord.log
    • 最初の文字が / 以外だと syslog の facility として扱う
  • execute
    • 設定ファイルとして規定されているパス以外のものを使う場合にここに記述する
    • 自動的に検索する設定ファイルのパスは以下
      • /etc/ha.d/l7directord.cf
      • /etc/ha.d/conf/l7directord.cf
  • supervised
    • デバッグモードと同じでデーモンにならず、ログが標準出力に出力される
    • daemontools(12) を使う場合に便利だそうです。
  • quiescent
    • real サーバがダウンした際に、weight を 0 に変更する(yes)か、仮想サービスから取り除く(no)か
    • デフォルト no
    • virtual section での上書き可能
  • virtual
    • 仮想サービスとする IP アドレスとポート番号を指定する
    • 仮想サービス毎の詳細設定は以下の Virtual Section Setting を参照

Virtual Section Setting

  • real
    • real サーバの IP アドレスとポート番号の設定
    • オプションとしてサーバの weight, 以降で述べる request, receive のペアの設定も可能
    • forwarding の方法は masq のみ設定可能
    • IP アドレスは範囲指定も可能(192.168.0.1->192.168.0.100など)
      • real = 192.168.0.2:80 masq
      • real = 192.168.0.3:80 masq 1
      • real = 192.168.0.4:80 masq 1 "check.html", "Test"
      • real = 192.168.0.5->192.168.0.10:http masq
  • module
    • プロトコルモジュールの指定
    • l7vsadm では省略可能なプロトコルモジュールのキーになるオプションもここでは省略不可
    • 現在設定可能な組み合わせは以下
      • pfilter --path-match
      • url --pattern-match
      • urla --key-name
      • cpassive --cookie-name
      • crewrite --cookie-name
      • cinsert --cookie-name
      • chash --cookie-name
  • maxconn
    • 仮想サービスで扱える最大のコネクション数
    • 超過した場合、sorryserver へリダイレクトされる
  • qosservice
    • 仮想サービスでの帯域制限の値(bps)
    • K, M, Gの単位も利用可能
  • qosclient
    • 単一コネクションでの帯域制限の値(bps)
    • K, M, G の単位も利用可能
  • sorryserver
    • maxconn の上限を超えた際にリダイレクトされるサーバの IP アドレス、ポート番号の設定
  • checktype
    • real サーバの監視方法の設定
    • 以下が設定可能な値
      • negotiate
        • 特定の request を送り、特定の receive 文字列を受信することでサーバの確認を行う
        • 確認方法は以降の service に依存する
      • connect
        • TCP/IP コネクションを張って確認する
      • 数字
        • negotiate と connect の併用で、入力した数字回の connect 確認の後で 1 回の negotiate 確認を行う。
      • ping
        • ICMP で ping 確認を行う
      • off
        • 監視を行わないし、設定した real や fallback サーバはダウンしているものと扱われる
      • on
        • 監視を行わないが、設定した real や fallback サーバはアップしているものと扱われる
    • デフォルトは negotiate
  • service
    • checktype が negotiate の場合の real サーバの監視方法の設定
    • ftp, smtp, dns, http, pop, nntp, imap, ldap, https, mysql, pgsql, sip, none が設定可能
    • none は何もせず、常にアップと判断する
    • デフォルトは仮想サービスのポート番号に依存し、21, 25, 53, 80, 110, 119, 143, 389, 443, 3306, 5432, 5060 の場合は上記のサービスがデフォルトとなるが、それ以外の場合は none がデフォルトとなる
  • checkport
    • 監視するポート番号を指定する
    • デフォルトは real サーバのポート番号
  • request
    • 監視の際に使うリクエスト用の設定
    • service が http, https, ldap, mysql, pgsql, ftp, dns の場合に使われる
  • receive
    • 監視の際に使うレスポンス解析用の設定
    • service が http, https, ldap, ftp, dns の場合に使われる
  • httpmethod
    • http, https の監視の際に使う HTTP メソッドの設定
    • GET, HEAD の指定が可能
    • デフォルトは GET
  • virtualhost
    • http, https の監視の際に使う virtual host の設定
  • login
    • ftp, pop, imap, mysql, pgsql, sip の場合に使われる login ユーザ名の設定
  • passwd
    • ftp, pop, imap, mysql, pgsql, sip の場合に使われる login パスワードの設定
  • database
    • mysql, pgsql で利用する database 名の設定
  • scheduler
    • 利用するスケジューラの設定
    • 利用可能なスケジューラは rr, wrr, lc
    • デフォルトは rr
  • protocol
    • 利用するプロトコルの設定で tcp のみ設定可能