Last Updated on 2021年7月4日 by かんりにん
haproxyでステータスやバックエンドサーバーの状態やプールを確認する場合、コマンドラインからチェックできるツールは無い様子。代わりにソケットリレーツール”socat(SOcketをCATする、の意ですよね)”を使い
あらかじめ用意しておいたソケットへアクセスし、いろいろチェックをする、という利用方法になるとのこと。ささっと試してみました。
参考:お世話になっております。
HAProxy Stats Socket and fun with socat.
Contents
ソケットアクセスの方法
socatを介してアクセスするソケットとしては、一般的な
- TCPソケットでアクセス
- UNIXソケットでのアクセス
の二つを選ぶことができ、
- TCPソケットの場合はwebページからのステータス確認が可能
(apacheのserver-statusがきれいに整形されたような画面)。 - UNIXはCLIでの各種コマンドの実行が可能、promptを使った対話モードでの実行もOK。
プロダクト環境でのオペレーションはCLIからの実施で全然問題ないけど、朝会社に出社後、仕事に入る前にちょこっとステータスをWebで見たい、というときはTCPでのアクセスが便利。
1)TCPソケットでアクセス
参考:お世話になっております。
How to Enable HAProxy Stats
haproxy.cfg 設定
listen hastats 0.0.0.0:8080 mode http maxconn 64 timeout connect 5000 timeout client 10000 timeout server 10000 stats enable stats show-legends stats uri /haproxy?hastats stats auth user:password
設定後、haproxyデーモンをrestartないしreloadし、http://<サイトURL>/haproxy?hastatsへアクセスすると
Webの統計情報画面が出力され、haproxyの状態を確認可能に。便利です!
2016/01追加:画面をキャプチャしました。
2)UNIXソケットでのアクセス
こちらはコンソールからアクセスし、各種コマンドを活用してステータスを取得したり、ロードバランスのメソッドを変えたり、サーバーを増やしたり減らしたり、といったことが可能。
2-1.haproxy.cfg 設定
こちらはglobalセクションの中に1行記載すればOK。
global # snip --- # snip --- # snip --- stats socket /var/lib/haproxy/stats
こちらも設定後にhaproxyデーモンをrestartないしreloadし、シェル上からのアクセスが可能になります。
2-2.socatを利用したコマンド利用
socatを用いてhaproxyのUNIXソケットへアクセスし、コマンドを利用して各種情報を出力する方法。
参考:お世話になっております。
HAProxy : 統計情報を参照する#2
HAProxyをコマンドラインから操作する
実行例1:コマンドを指定して、echoで標準出力
# echo "show info" | socat unix-connect:/var/lib/haproxy/stats stdio Name: HAProxy Version: 1.5.2 Release_date: 2014/07/12 Nbproc: 1 Process_num: 1 Pid: 1814 Uptime: 0d 1h19m52s Uptime_sec: 4792 Memmax_MB: 0 Ulimit-n: 8036 Maxsock: 8036 Maxconn: 4000 Hard_maxconn: 4000 CurrConns: 0 CumConns: 50 CumReq: 71 MaxSslConns: 0 CurrSslConns: 0 CumSslConns: 0 Maxpipes: 0 PipesUsed: 0 PipesFree: 0 …以下略、ダダダっとたくさん情報が!
実行例2:ソケットへアクセス後、対話モード(prompt)でコマンドを利用する場合
ソケットへアクセス後、”prompt”コマンドにて対話モードになります。
# socat unix-connect:/var/lib/haproxy/stats stdio prompt >
promptでもshow infoを実行してみると、こんな感じ…というか同じですw
> show info Name: HAProxy Version: 1.5.2 Release_date: 2014/07/12 Nbproc: 1 Process_num: 1 Pid: 1814 Uptime: 0d 1h19m52s Uptime_sec: 4792 Memmax_MB: 0 Ulimit-n: 8036 Maxsock: 8036 Maxconn: 4000 Hard_maxconn: 4000 CurrConns: 0 CumConns: 50 CumReq: 71 MaxSslConns: 0 CurrSslConns: 0 CumSslConns: 0 Maxpipes: 0 PipesUsed: 0 PipesFree: 0 …以下略、内容は同じです。 >
ソケットから抜けるときは”quit”で。
> quit
▼そのほか、目を引いたメモ
APIも用意されているようなので、こちらもおいおいと。
HAProxyAPI
https://github.com/kamermans/HAProxyAPI