侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

keepalived监控Nginx的状态

2023-11-09 星期四 / 0 评论 / 0 点赞 / 58 阅读 / 1583 字

如果主服务器的keepalived停止服务,从服务器会自动接管VIP对外服务;一旦主服务器的keepalived恢复,会重新接管VIP。 但这并不是我们需要的,我们需要的是当Nginx停止服务的时候能

如果主服务器的keepalived停止服务,从服务器会自动接管VIP对外服务;一旦主服务器的keepalived恢复,会重新接管VIP。 但这并不是我们需要的,我们需要的是当Nginx停止服务的时候能够自动切换。

keepalived支持配置监控脚本,我们可以通过脚本监控Nginx的状态,如果状态不正常则进行一系列的操作,最终仍不能恢复Nginx则杀掉keepalived,使得从服务器能够接管服务。

如何监控NginX的状态

最简单的做法是监控Nginx进程,更靠谱的做法是检查Nginx端口,最靠谱的做法是检查多个url能否获取到页面。

如何尝试恢复服务

如果发现Nginx不正常,重启之。等待3秒再次校验,仍然失败则不再尝试。

根据上述策略很容易写出监控脚本。这里使用nmap检查nginx端口来判断nginx的状态,记得要首先安装nmap。监控脚本如下:

#!/bin/sh# check nginx server statusNGINX=/usr/local/nginx/sbin/nginxPORT=80nmap localhost -p $PORT | grep "$PORT/tcp open"#echo $?if [ $? -ne 0 ];then    $NGINX -s stop    $NGINX    sleep 3    nmap localhost -p $PORT | grep "$PORT/tcp open"    [ $? -ne 0 ] && /etc/init.d/keepalived stopfi

假设上述脚本放在/opt/chk_nginx.sh,则keepalived.conf中增加如下配置:

vrrp_script chk_http_port {    script "/opt/chk_nginx.sh"    interval 2    weight 2}track_script {    chk_http_port}

广告 广告

评论区