0

このライブラリの修正版 ( https://github.com/kamermans/HAProxyAPI ) を使用して、すべてのロードバランサー インスタンスに接続しています。ただし、接続されているサーバーがアクティブ インスタンスかバックアップ インスタンスかを知るには、統計から「bck」プロパティを指定する必要があります。(次を使用してアクセスできません: $loadbalancer['haproxy_stats']->info->line->data->bck)

このプロパティに注意してください: $loadbalancer['haproxy_stats']->health->backup. 必要なものではありません。これは、このロードバランサーにバックアップ サーバーが存在するかどうかを示しているだけです。

このプロパティにアクセスするにはどうすればよいですか?

Haproxy Stats の例: HAProxy_Stats::get($exec)->getServiceStats($interface,$server);

結果 (print_r) は次のようになります。

HAProxy_Stats_Service オブジェクト ( [info] => HAProxy_Stats_Info オブジェクト ( [map:protected] => 配列 ( [pxname] => proxy_name [svname] => service_name [weight] => weight [pid] => process_id [iid] => proxy_id [sid] => service_id [追跡] => 追跡 [タイプ] => タイプ )

        [type] => 2
        [proxy_name] => core_loadbalancer
        [service_name] => Core03
        [process_id] => 1
        [proxy_id] => 2
        [service_id] => 3
        [weight] => 1
        [tracked] => 
        [line:protected] => HAProxy_Stats_Line Object
            (
                [data:protected] => Array
                    (
                        [pxname] => core_loadbalancer
                        [svname] => Core03
                        [qcur] => 0
                        [qmax] => 0
                        [scur] => 0
                        [smax] => 0
                        [slim] => 20000
                        [stot] => 0
                        [bin] => 0
                        [bout] => 0
                        [dreq] => 
                        [dresp] => 0
                        [ereq] => 
                        [econ] => 0
                        [eresp] => 0
                        [wretr] => 0
                        [wredis] => 0
                        [status] => UP
                        [weight] => 1
                        [act] => 0
                        [bck] => 1
                        [chkfail] => 6
                        [chkdown] => 0
                        [lastchg] => 523133
                        [downtime] => 0
                        [qlimit] => 
                        [pid] => 1
                        [iid] => 2
                        [sid] => 3
                        [throttle] => 
                        [lbtot] => 0
                        [tracked] => 
                        [type] => 2
                        [rate] => 0
                        [rate_lim] => 
                        [rate_max] => 0
                        [check_status] => L4OK
                        [check_code] => 
                        [check_duration] => 0
                        [hrsp_1xx] => 0
                        [hrsp_2xx] => 0
                        [hrsp_3xx] => 0
                        [hrsp_4xx] => 0
                        [hrsp_5xx] => 0
                        [hrsp_other] => 0
                        [hanafail] => 0
                        [req_rate] => 
                        [req_rate_max] => 
                        [req_tot] => 
                        [cli_abrt] => 0
                        [srv_abrt] => 0
                        [] => 
                    )

            )

    )

オブジェクトは継続しますが、文字数制限があります...

4

1 に答える 1

0

問題が作成されていれば、これははるかに早く回答されていたでしょうが、遅いよりは遅い方がいいと思います:)

これは確かに正しいプロパティです:

$loadbalancer['haproxy_stats']->health->backup

ただし、ロードバランサ BACKEND の統計をチェックしている場合は、バックアップ ノードの数だけが返されます。個々のノードがアクティブかバックアップかを知りたい場合は、次のように反復する必要があります。

foreach ($stats->getBackendNames() as $backend) {
    foreach ($stats->getServerNames($backend) as $server) {
        $service = $stats->getServiceStats($backend, $server);
        echo "$backend:$server\n";
        echo "  Active: {$service->health->active}\n";
        echo "  Backup: {$service->health->backup}\n";
        echo "  Health: {$service->health->status}\n\n";
    }
}

これにより、次のような出力が生成されます。

foo-cloud:FRONTEND
  Active: 
  Backup: 
  Health: OPEN

production-nodes:hiphop-node01-us.foocloud.com
  Active: 1
  Backup: 0
  Health: UP

production-nodes:apache-node01-us.foocloud.com
  Active: 0
  Backup: 1
  Health: UP

production-nodes:hiphop-node02-us.foocloud.com
  Active: 1
  Backup: 0
  Health: UP

production-nodes:apache-node02-us.foocloud.com
  Active: 0
  Backup: 1
  Health: MAINT

production-nodes:BACKEND
  Active: 2
  Backup: 2
  Health: UP

stats:FRONTEND
  Active: 
  Backup: 
  Health: OPEN

stats:BACKEND
  Active: 0
  Backup: 0
  Health: UP
于 2013-10-19T23:20:21.340 に答える