HAProxy快速入门(六)—— 管理HAProxy

前面说过,我们一般是这么使用haproxy的。

1. 编辑配置文件:vim /etc/haproxy/haproxy.cfg

2. 启动haproxy服务:service haproxy start

 

但是有时候,我们要在haproxy运行时,动态的修改一些参数并想立刻生效怎么办?

最笨的办法是修改完配置后,重启服务:service haproxy restart. 但是这样会停掉服务然后再重新启动,会导致haproxy暂时不可用。所以这种办法不是很好。

最好是像mysql一样,可通过客户端能连接服务端,动态的执行一些命令。这就是本章说的stats socket.

通过连接socket,我们可以在haproxy运行的过程中发送一些命令,立刻生效而且不会停止服务。

 

启用stats socket

默认情况下,stats socket是没有启动的。

开启这个功能的方法也很简单,我们只需要往haproxy的配置文件中haproxy.cfg添加两行配置即可:

global
        daemon
        maxconn 256
        stats socket /var/run/haproxy.sock mode 600 level admin
        stats timeout 2m

stats socket这一行是监听一个UNIX socket。

stats timeout这一行是配置一个超时时间。

除了可以监听一个UNIX socket,我们还可以监听TCP端口。

global
        daemon
        maxconn 256
        stats socket /var/run/haproxy.sock mode 600 level admin
        stats socket ipv4@127.0.0.1:9999 level admin
        stats timeout 2m

这样我们就开启了stats socket功能。

 

安装socat

前面是开启stats socket,但是如何访问呢?这时候我们就需要另外一个工具了——socat。

它就像一把瑞士军刀一样,连接任何东西。我们通过它连接socket的终端。当前的CentOS上没有这个工具,所以我们先安装。

1. 查找一下安装包:# yum search socat

2. 安装socat:yum install -y socat

3. 查看版本:# socat -V

我们这里安装的版本是1.7.3.2,不过任何版本应该都没有太大关系。

 

一般有两种方式来使用socat连接socket:

1. # socat /var/run/haproxy.sock stdio:这个通常是发送一个脚本到haproxy

2. # socat /var/run/haproxy.sock readline:这个是通过手动发送命令

 

socket支持两种操作模式:

1. 非交互式模式:这是默认模式,通常是发送单行命令。发送完命令后,haproxy返回后,整个操作就结束了。

2. 交互式模式:顾名思义,就是交互,有来有回,就像bash一样。就像我们通过终端执行linux命令一样,会有一个提示符,提示我们输入一个又一个命令。(在linux中通常是#或者$符号,在haproxy中是>)

 

连接haproxy

安装完socat后,我们就可以通过它连接haproxy并执行命令了。

最常用的连接方式:

socat /var/run/haproxy.sock readline

然后,我们输入命令,点击回车,就可以看到操作结果了。

本例中,我们输入haproxy的命令“show info”,于是就打印出了HAProxy的基本信息了。

注意,这里默认是非交互式模式,当我们输入命令回车并打印结果后,整个连接就自动关闭了。

如果我们想要执行多条命令呢?第一种方法还是非交互式模式,多条命令用分号分隔,比如show info; show stats,然后回车。这样就一次传输了多条命令给haproxy。

 

更好的做法是非交互式模式。

我们执行完命令"socat /var/run/haproxy.sock readline"建立连接后,输入命令"prompt"回车,就进入交互式模式了,看到了我们输入的提示符">":

执行完命令"show backend"后,会打印出haproxy当前所有backend,这里我的haproxy中只有一个backend名称叫servers。

然后终端又回到提示符>, 提示我们可以继续输入命令。

如果我们想退出连接,输入quit即可。

 

haproxy支持的命令

支持很多中命令,主要是分为以下几大类:

1. 对ACLs和Backend、frontend等的增删查改、启用禁用的管理。

2. 查询haproxy的基本信息


以下我们只列举几个常见的命令

  1. show info:可以看到HAProxy版本等信息
  2. disable server servers/tomcat1:关闭一台server
  3. enable server servers/tomcat1:启动一台server
  4. get weight servers/tomcat1:获取server的权重
  5. set server servers/tomcat1 weight 100:设置server的权重
  6. show backend:列举所有backend
  7. show servers state:查看server列表及状态
  8. show stat:查看统计信息

完整的命令请参考官方文档。

官方文档9.3Management【Unix Socket commands】:http://cbonte.github.io/haproxy-dconv/2.0/management.html#9.3

 

通过socat连接socket,我们就能在不停机的情况下操作管理haproxy了,是不是很方便呢!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值