harumaki.net

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

infra Load Balancing network web

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

投稿日:2015年5月14日

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

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

ソケットアクセスの方法

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

monitインストール[RHEL3]

システムマネージメントツールmonitのインストール 監視ツールの発展版といえる、デーモン監視と異常時の再起動などを行う便利ツール。 既にnagiosやzabbixをインストールしているので監視系は整 …

no image

[メモ]メモリ調査上での疑問

お客様のHP DL360 G5へのメモリ増設を調査する際、シングルランク、デュアルランクという明記が あったので、気になって調査。 1)シングルランク、デュアルランクの違い † 日本HP …

no image

rsyncの帯域制限オプション(bwlimit)を試す

出向先のLAN環境にて、でかいバックアップファイルをrsyncで別ホストに転送しようとしたら、イントラ用Webサービスのレスポンスが全体的に低下してしまった~。 中断して調べたところ、100base- …

[メモ][juniper] SRX(JunOS) FTPS設定追加

社内から外部のFTPサービスへ接続する際、通常のFTPでは問題ないものの、FTPS(FTP Over SSL/TLS)で接続しようとしたところ、認証が通ったところで応答がなくなり、そのままタイムアウト …

メモ:nagios NCPAについて

客先のLAN環境に置いてあるnagiosをメンテする傍ら、情報収集をしていたら NCPAなるプラグイン?というかエージェント?を見かけたので、備忘録としてメモ。 NCPA http://exchang …