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

postfix SMTP-auth設定

[pukiwiki] &topicpath;   **▼SMTP-auth設定 [#e44ccef9]  (会社編)  ※自宅サーバ編は別途編集。 postfix+cyrus-SASLの組み …

no image

ZABBIXインストール(1.0)

[pukiwiki]   システム監視ツールzabbixのインストールドキュメント。 【本家サイト】 http://www.zabbix.com/ 日本語の情報はほとんどないので、サイトからダウンロー …

no image

haproxyを試す 3.SSLリバースプロキシを設定してみる

  HAProxyにてSSLリバースプロキシを設定してみるテスト。 設定環境はAWS EC2にてRightImageのCentOS6を使用しました。 HTTP/80については設定済みとなっている前提で …

[Windows]NTttcp.exeで帯域を測定してみる

  社内LANにある端末のスループット調査にて、マイクロソフト謹製のNTttcp.exe(ttcpのNT版、という位置づけの様子)を使ってみることに。 普段はiperfのお世話になることが多いが、今回 …

no image

iperf

[pukiwiki] #contents *iperf [#e7263e68] 帯域を測定する、ネットワーク性能測定ツール。 こまかい使い方についてはこれから要検証。 [本家サイト] NLANR ht …

宅麺