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

[メモ]panasonic スイッチのファームウェアアップデート(Switch-M24eG PN28240)

パナソニック電工(現在はパナソニックESネットワークス)のSwitch M24eGのファームウェアのアップデートメモ。 syslog周りの設定をしておこうとしたところ、メーカーの紹介ページでは実装され …

[nagios] nagios plugin downtime_sched(ダウンタイムスケジューラ)

  以前設定した、Recurring scheduleのアップデート版”downtime_sched”のインストール。 前回インストール後に全然アップデートしてなかった。 ちゃ …

no image

lsyncdのエラー修正(監視対象ファイル数の上限値変更)

lsyncdでのバックアップファイルの同期がうまくいってないな~、と思って調べたら、カーネルパラメータ”max_user_watches”の上限値を超えたためlsyncdのプロ …

no image

ZABBIXインストール(1.0)

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

no image

RedHatEnterprise3.0​/bonding(結合インターフェース)

[pukiwiki] #topicpath #contents *bonding(結合インターフェース) 結合インターフェースbondingの設定方法。 **参考URL お世話になっております。 ht …