我已经设置了一个带有两个服务器的后端的 haproxy 配置,如下所示:
...
default
option log-health-checks
...
mailers mta
mailer smtp1 127.0.0.1:25
...
backend s_api
balance roundrobin
option httpchk GET /sites?site=q&limit=1
http-check expect rstatus (2|3)[0-9][0-9]
server s1_a 1.2.3.4:3600 check inter 5s fall 4 rise 1
server s2_b 1.2.3.5:3600 check backup
timeout queue 60s
timeout server 60s
timeout connect 60s
email-alert mailers mta
email-alert level notice
email-alert from [email protected]
email-alert to [email protected]
现在,当服务器再次出现故障时,我会通过电子邮件收到通知。我想要归档的是在服务器启动时启动一个本地 bash 脚本,而在服务器关闭时启动另一个脚本。
那怎么可能呢?
我可能会使用外部检查脚本来执行此操作,并使用它来控制上升和下降值。然后,当您遇到上升或下降值时,您可以运行自己的脚本。将您的 haproxy 配置中的上升和下降设置为 1,并将检查更改为外部
然后作为一个带有外部 ping 检查的粗略示例
你也可以用 lua 做到这一点,但我没有看过。我已经为电子邮件警报做了一些其他选项,例如轮询统计数据套接字或破解 haproxy,这些选项可以进行调整,但外部检查可能在这里效果最好。但是,如果您想尝试一下,可以在这里找到它们https://www.loadbalancer.org/blog/3-ways-to-send-haproxy-health-check-email-alerts/。