본문 바로가기
I T/Network

haproxy 분배 현황 커맨드로 확인하기기 (haproxy stats command line)

by 루솨 2015. 8. 29.

로드밸랜서가 가능한 haproxy 는 분배현황을 직관적으로 확인하기가 약간 힘들다.

lvs 같은 경우는

watch ipvsadm -ln 명령어를 입력하면 아래와 같이 직관적으로 2초마다 확인이 가능하다다

 

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.0.1:80 sh

  -> 192.168.0.2:80              Masq    1  0          0

haproxy에서 분배 현황을 확인하는 위해 haproxy.cfg 에 설정을 해줘야 한다

 

listen stats :10004

        stats enable

        stats uri     /

        stats hide-version

공식적으로는 stats 라고 부르는 설정이며 위와 같이 설정하는 경우 아이피와 위에 입력한 포트 

10004번을 같이 입력하면 웹 브라우져에서 확인가능하다.

http://아이피:10004

위와 같이 확인가능하다

커맨드로 확인하고자 한다면

global 옵션쪽에  아래와 같이 한줄 추가해주면 확인 가능하다

 stats socket /tmp/haproxy mode 600 level admin

아래 명령어를 통해 확인 가능한데

echo "show stat" | nc -U /tmp/haproxy

 # 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,

 

stats,FRONTEND,,,0,4,10000,17,43972,2014909,0,0,8,,,,,OPEN,,,,,,,,,1,2,0,,,,0,0,0,2,,,,0

,113,0,8,0,0,,0,11,121,,,0,0,0,0,,,,,,,,

stats,BACKEND,0,0,0,0,1000,0,43972,2014909,0,0,,0,0,0,0,UP,0,0,0,,0,239016,0,,1,2,0,,0

,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,0,0,0,0,4990,,,0,0,0,128,

가상아이피:80,FRONTEND,,,0,7,10000,1566,745926,9206298,0,0,14,,,,,OPEN,,,,,,,,,1,3,0,,,,

0,0,0,51,,,,0,328,472,766,0,0,,0,52,1566,,,0,0,0,0,,,,,,,,

가상아이피:80,분배할아이피:80,0,0,0,5,,777,386564,7760570,,0,,0,0,0,0,UP,1,1,0,0,0,

239016,0,,1,3,1,,777,,2,0,,26,L4OK,,0,0,278,440,59,0,0,0,,,,2,0,,,,,19908,,,0,0,9,95,

가상아이피:80,분배할아이피:80,0,0,0,6,,775,359358,1443646,,0,,0,0,0,0,UP,1,1,0,1,1,209365,40,,

1,3,2,,775,,2,0,,26,L4OK,,0,0,50,32,693,0,0,0,,,,0,0,,,,,19908,,,0,1,12,47,

가상아이피:80,BACKEND,0,0,0,7,1000,1552,745926,9206298,0,0,,0,0,0,0,UP,2,2,0,,0,239016,0,,

1,3,0,,1552,,1,0,,52,,,,0,328,472,752,0,0,,,,,2,0,0,0,0,0,19908,,,0,0,16,111,

pxname, svname ... 부터는 필드의 명이며 그 아래 라인부터 , 쉼표로 구분되어지는 해당 필드의 값들이다.

보기가 힘들므로 내가 원하는 특정값만을 추출할려면 grep 과 awk 를 사용해서 특정값만 출력할수도 있다.

 echo "show stat" | nc -U /tmp/haproxy | grep 가상아이피:80,분배할아이피:80 | awk -F, '{print $5}'

 

 

참고사이트

http://tech.fawk.eu/111