LSLB | 農場| 更新する 農場の保護者

投稿日: 2 年 2017 月 XNUMX 日

概要

デフォルトでは、 Zevenet バックエンドまたは実サーバーに対して単純なヘルスチェックを実行しますが、バックエンドが適切に機能していることを判断するにはこのチェックでは不十分な場合があります。 このため、Zevenetはプラグインを使用するデーモンを介して高度なヘルスチェックを実行および管理するサービスを実装しています。 農場の保護者.

Farm Guardianの主なタスクは、アプリケーションの高度な監視として機能することです。このために、Farm Guardianはファーム構成を読み取り、バックエンドリストを取得し、プラグインによって支援されて、バックエンドの状態を更新します。 Zen Load Balancerがそのようなバックエンドで接続を送信することを許可または許可しないファーム。

Farm Guardianによって使用されるプラグインは、以下のディレクトリにあります。 / usr / local / zenloadbalancer / app / libexec / .

ファームガーディアンの設定

バックエンドのヘルスチェック。 このチェックボックスをオンにすると、バックエンドのより高度な監視状態が有効になり、独自のスクリプトで完全にプログラム可能になります。 Farm Guardianによって誤った動作が検出されると、自動的に実サーバーが無効になり、としてマークされます。 FGdown。 これは独立したサービスなので、ファームサービスを再起動する必要はありません。

zevenet lslb lb adcファームガーディアンヘルスチェック

チェック間隔。 これは、Farm Guardianがヘルスチェックの実行を待機する秒数です。
確認するコマンド。 設定されたバックエンドに対して実行されるコマンド。 動的構成を提供するために、定数またはトークンが使用されます。
ファームガーディアンログ。 このチェックボックスをオンにすると、Farm Guardianログでいくつかの動作をデバッグできるようになりますが、多くのストレージを消費する可能性があります。

プラグイン

Farm Guardianは、カスタマイズされたオプションを使用して特定の実サーバーが期待どおりに機能しているかどうかを検出するために高度なヘルスチェックを設定するためにプラグインを使用します。 あらゆる種類のプロトコル、サービス、またはアプリケーションについて、多くのヘルスチェックがあります。 最も重要なプラグインは以下の通りです。

check_ftp:このプラグインは指定されたホストとのFTP接続をテストします。
check_fping:このプラグインは、高速チェックのためにfpingコマンドを使って指定されたホストにpingを送信します。
check_http:このプラグインは指定されたホスト上のHTTPサービスをテストします。 プレーン(HTTP)およびセキュア(HTTPS)プロトコルをテストし、リダイレクトをたどり、文字列と正規表現を検索し、接続時間を確認し、証明書の有効期限、HTTPリターンコードなどを報告します。
check_imap:このプラグインは指定されたホストとのIMAP接続をテストします。
check_ldap:このプラグインはLDAPサービスをテストします。 それは与えられた検索でテストすることができます。
check_ldaps:このプラグインはLDAPSサービスをテストします。 それは与えられた検索でテストすることができます。
check_mysql:このプラグインはMySQLサーバへの接続をテストします。
check_mysql_query:このプラグインは閾値レベルに対してクエリ結果をチェックします。
check_pgsql処置:PostgreSQLデータベースが接続を受け入れているかどうかをテストします。
check_pop:このプラグインは指定されたホストとのPOP接続をテストします。
check_radius:RADIUSサーバーが接続を受け入れているかどうかを確認します。
check_simap:このプラグインは指定されたホストとの安全なIMAP接続をテストします
check_smtp:このプラグインはホストとのSMTP接続を開こうとします。
check_snmp:リモートマシンの状態を確認し、SNMP経由でシステム情報を取得します。
check_spop:このプラグインは指定されたホストとの安全なPOP接続をテストします。
check_ssh:指定されたサーバーとポートでSSHサーバーに接続してみてください。
check_ssmtp:このプラグインは指定されたホストとのSSMTP接続をテストします。
check_tcp:このプラグインは指定されたホストとのTCP接続をテストします。

詳細については、pluginsパスの下で次のコマンドを実行してください。

plugin_name --help

Farm Guardianはこのプラグインを使用してバックエンドの正常性状態をチェックし、実行されたプラグインの実行エラー出力を管理して次のようにバックエンドの状態を決定します。

エラーの場合 出力== 0 その後、バックエンドはOKです> $? = 0

エラーの場合 出力<> 0 その後、バックエンドはOKではありません> $? <> 0

カスタムプラグイン

これらのプラグインは、任意のプロトコルまたはアプリケーションに適応するために、システム管理者によって設定および完全にプログラム可能です。

この例はカスタムプラグインを示しています check_load.sh.

#!/bin/bash
###
###comments:
###snmp utils should be installed
###snmpd should be installed and configured in the backends
###
MAXVALUE=4
COMMUNITY="public"
EXECUTE=`snmpget -v 2c -c $COMMUNITY $1 .1.3.6.1.4.1.2021.10.1.3.1 |cut -d ':' -f2 | cut -d '.' -f1 | sed s/\ // | sed s/\"//`

echo "SNMP CPU load check for $1 is $EXECUTE"
# If the result is true, exit with 1; error; else exit = 0; OK
if (( $EXECUTE >= $MAXVALUE )); then
#error output; the server is overloaded and the load balancer isn’t going to send more connections
exit 1
else
#not error; the server can accept more connections
exit 0
fi

定数

Farm Guardianがプラグインを実行するとき、次のようにいくつかの定数またはトークンを引数として使用できます。

  • HOST注:Farm Guardianは、実サーバーのIPアドレスによってこの定数を変更します。
  • PORT注:Farm Guardianは、実サーバーポートによってこの定数を変更するようにします。

これらの定数はすべてのプラグインに使用でき、Farm Guardianはそれらを使用して実際のパラメータを使用してヘルスチェックを実行します。

次の例では、Webサービスの高度なHTTPヘルスチェックについて説明します。 一般的なエラーは、アプリケーションサーバーには空白のページが表示されますが、8080ポートは依然としてHTTP要求を受け入れることです。

HTTPファームの場合は、すべてのサービスのFarm Guardianセクションで次のファームを構成してください。

check_http_fg_example

Farm Guardianが実行する予定です check_http 各バックエンド用のプラグインで、定数を置き換えます HOSTPORT 各バックエンドのIPアドレスとポートによって、実行ごとにindex.phpの内容に 'Welcome'という文字列が見つかった場合、与えられたプラグインはエラーコード0を返します。 'Welcome'という文字列が見つからない場合、このバックエンドはDOWNとしてマークされます。

Farm Guardianの構成に関する詳細については、以下を参照してください。 Farm Guardian構成ガイド.

Farm Guardianログは有効にすることができますが、多くのディスク容量を消費し、ログをパスに保存します。 /usr/local/zenloadbalancer/config/[_service]_farmguardian.log or / var / log / syslog 最新のZevenetバージョンで。

上の共有:

GNU Free Documentation Licenseの条項に基づくドキュメンテーション。

この記事は役に立ちましたか?

関連記事