haproxy:添加 tcplog 参数

haproxy:添加 tcplog 参数

略微相关于“haproxy 中“平衡源”的其他选项“,我想知道哪些端口目前指向哪里。

为了确认,我使用 haproxy 将每次只建立单个连接的客户端分发到代理上的不同端口,分发到不同的后端服务器。假设协议是 ssh。

我使用 stick-table 将客户端保留在一个后端服务器上,直到该服务器发生故障。找出当前状态的最佳方法是什么?

我知道我可以为每个端口创建一个前端,然后将它们全部指向同一个后端。然后记录前端的名称,但我还是想要一个带有一系列端口的整洁前端,然后记录 dst_port。

答案1

我目前的答案/解决方案(问题中提到)如下。

我为每个要绑定的端口定义了不同的“监听”和一个可识别的名称。

然后我确保option tcplog该前端已启用。

然后,日志会为我提供我需要的两条信息。使用的前端和后端。

例如

haproxy[18989]: 127.0.0.1:34550 [15/Oct/2003:15:24:28.312] frontend backend/server 0/0/5007 0 cD 0/0/0/0/0 0/0

我“神奇地”解析该日志文件并使用该信息来呈现最新状态。

option logasap有帮助..

答案2

默认tcplog 格式相当于:

log-format "%ci:%cp [%t] %ft %b/%s %Tw/%Tc/%Tt %B %ts %ac/%fc/%bc/%sc/%rc %sq/%bq"

因此,您可以根据自己的兴趣添加变量来定制它(定义变量的列表), 例如前端监听端口%fp:

log-format "%ci:%cp [%t] %ft %fp %b/%s %Tw/%Tc/%Tt %B %ts %ac/%fc/%bc/%sc/%rc %sq/%bq"

答案3

我不确定这是否是你所需要的。

您可以在 HAProxy 配置中启用统计信息,并在 :80 端口配置中添加以下行

stats enable
stats auth YOURUSERNAME:YOURPASSWORD

然后你可以访问以下 URL: http://您的域名或 IP/haproxy?stats

您可以随时在那里查看 HAProxy 的状态和重定向执行情况。

相关内容