harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

infra Load Balancing network web

haproxyを試す 4.ソケット接続とステータス出力

投稿日:2015年5月14日

Last Updated on 2021年7月4日 by かんりにん

 
haproxyでステータスやバックエンドサーバーの状態やプールを確認する場合、コマンドラインからチェックできるツールは無い様子。代わりにソケットリレーツール”socat(SOcketをCATする、の意ですよね)”を使い
あらかじめ用意しておいたソケットへアクセスし、いろいろチェックをする、という利用方法になるとのこと。ささっと試してみました。

参考:お世話になっております。
HAProxy Stats Socket and fun with socat.

Contents

ソケットアクセスの方法

socatを介してアクセスするソケットとしては、一般的な

  1. TCPソケットでアクセス
  2. 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追加:画面をキャプチャしました。

hastatsの画面キャプチャ!

hastatsの画面キャプチャ!

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
 
 

 

-infra, Load Balancing, network, web
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

[Juniper]SRX アプリケーション別のタイムアウト設定

社内で利用しているアプリケーションのセッションが一定時間操作がない状態で切れてしまうため、回避のため設定を追加。 具体的にはTCPセッションにて、指定したポートの通信タイムアウトを指定する方法。 環境 …

no image

[juniper] SRX(JunOS) ルーティング不具合修正(非対称ルートへの対応)

  SSGシリーズからSRX220にリプレイスを行った際に、VPNを経由したリモートオフィスとのLAN通信がうまくいかない事象が起きたので、トラブルシュート。 ・社内LANにおいてゲートウェイが複数あ …

no image

[MySQL] ZRM(Zmanda Recovery Manager) Mysql-zrm.conf パラメータ一覧をまとめてみた

ZRMを試すにあたって指定するmysql-zrm.confのパラメータを調べてみたので、そのまとめを。 オプションの一覧と説明の元ソースは、コマンド”mysql-zrm-backup&#8 …

no image

haproxyを試す 5.コマンドライン操作

  先日のステータス出力を検証した流れで、haproxyのコマンドライン操作について試したことを抜粋。 参考:またまたお世話になっております! Ver1.5 マニュアル 9.2 Unix Socket …

no image

postfix + pop before SMTP

[pukiwiki]   &topicpath; *▼dracインストールとローカルでの動作確認 2004/10/20 dracはpop before SMTPを実装するためのアプリです。 …