最終更新日: 2020年1月24日

コマンドでの操作

ソケットの準備

コマンドで操作するためには、コマンド操作ができるように予めHAproxyに設定を行っておく必要がある。 設定は、/etc/haproxy/haproxy.cfg のglobalセクションローバルに次のようにsockeを定義する。 ソケットは次の書式で定義する。 

【設定例】

global
    ::
     stats socket /run/haproxy/admin.sock mode 660 level admin
     stats timeout 30s
     stats maxconn 1
    ::

コマンドインストール

コマンドでそうするためにソケットと通信する必要があるので、通信用ソフトである "socat" をHAproxyが動作している端末にインストールします。

【CentOSの場合】

# yum install socat

【Debianの場合】

# apt-get install socat

操作

以下のようにコマンドで HAproxy を操作できます。

① socat を使い、HAproxyと接続し対話モード(prompt)にします。

# socat /run/haproxy/admin.sock STDIN
prompt

>

② 対話モードの終了

> quit

③ ヘルプの表示

> help
Unknown command. Please enter one of the following commands only :
clear counters : clear max statistics counters (add 'all' for all counters)
clear table : remove an entry from a table
help : this message
prompt : toggle interactive mode with prompt
quit : disconnect
show info : report information about the running process
;;

④ サーバのステータスの確認

> show stat
# pxname,svname,qcur,qmax,scur,smax,slim,stot,bin,bout,dreq,dresp,ereq,econ,eresp,wretr,wredis,status,weight,act,bck,chkfail,chkdown,lastchg,downtime,qlimit,pid,iid,sid,throttle,lbtot,tracked,type,rate,rate_lim,rate_max,check_status,check_code,check_duration,hrsp_1xx,hrsp_2xx,hrsp_3xx,hrsp_4xx,hrsp_5xx,hrsp_other,hanafail,req_rate,req_rate_max,req_tot,cli_abrt,srv_abrt,comp_in,comp_out,comp_byp,comp_rsp,lastsess,last_chk,last_agt,qtime,ctime,rtime,ttime,
haproxy,FRONTEND,,,0,0,3000,0,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,2,0,,,,0,0,0,0,,,,0,0,0,0,0,0,,0,0,0,,,0,0,0,0,,,,,,,,
back_proxy,proxy1,0,0,0,0,10000,0,0,0,,0,,0,0,0,0,UP,1,1,0,0,0,1027,0,,1,3,1,,0,,2,0,,0,L4OK,,0,0,0,0,0,0,0,0,,,,0,0,,,,,-1,,,0,0,0,0,
back_proxy,proxy2,0,0,0,0,10000,0,0,0,,0,,0,0,0,0,UP,1,1,0,0,0,1027,0,,1,3,2,,0,,2,0,,0,L4OK,,0,0,0,0,0,0,0,0,,,,0,0,,,,,-1,,,0,0,0,0,
back_proxy,BACKEND,0,0,0,0,300,0,0,0,0,0,,0,0,0,0,UP,2,2,0,,0,1027,0,,1,3,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,0,0,0,0,-1,,,0,0,0,0,

このステータスでは、”haproxy”という名前のフロントエンドと ”back_proxy” というバックエンドがあり、back_proxyのバックエンドでは "proxy1" と "proxy2" というサーバがあってこれが起動中(UP)であることが判る。

⑤ タイムアウト時間の変更

コマンドプロンプトの状態で何も操作していない場合には、haproxy.cfgで定義したタイムアウト時間経過後に接続がきれる。これをコマンドで延長することができる。

> set timeout cli 120

⑥ メンテナンスモードへの移行

メンテナンスなどでバックエンドサーバの一部を停止するような場合には、以下のコマンドで対象のサーバをメンテナンスモードにする事でフロントエンドからの振り分けが行われなくなります。

> disable server back_proxy/proxy2

④ メンテナンスモード解除

保守作業が終わりメンテナンスモードから復旧する場合には次のコマンドで対象のサーバをメンテナンスモードから復旧します。

> enable server back_proxy/proxy2



参考: