首页 > 系统相关 >keepalived检测nginx脚本

keepalived检测nginx脚本

时间:2023-06-18 19:35:21浏览次数:46  
标签:脚本 etc firewall keepalived nginx vrrp check

当主节点Nginx挂掉,keepalived仍然存活时,此时无法访问主节点,因此需要检测Nginx状态,配置自动重启。

一、新增Nginx状态监测与重启脚本

[root@server01 ~]# cat /etc/keepalived/nginx_check.sh
#!/bin/bash
#Author:Mr.Ding
#Mail:[email protected]
#Created Time:2023-06-18 18:40:37
#Name:/etc/keepalived/nginx_check.sh
#Description:
#Ver:
num=`ps -C nginx --no-header | wc -l`
if [ $num -eq 0 ];then
	systemctl start nginx
	sleep 1
	if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
	systemctl stop keepalived
	fi
fi

给脚本添加权限

chmod +x /etc/keepalived/nginx_check.sh

 

二、配置keepalived核心文件,定时执行脚本

[root@server01 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 1270.0.01
   smtp_connect_timeout 30
   router_id lb02
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
# 引入脚本
vrrp_script chk_nginx {
	script "/etc/keepalived/nginx_check.sh"
	interval 1  # 设置执行间隔
	weight 10  # 运行成功则升级权重+10,否则-10
}

vrrp_instance VI_1 {
    state MASTER
    interface ens34
    virtual_router_id 55
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.24/24 dev ens34 lable ens34:1
    }
  
  # 在实例中追踪nginx状态 track_script { chk_nginx } }

 重启keepalived服务,使配置生效。

systemctl restart keepalived.service

 

标签:脚本,etc,firewall,keepalived,nginx,vrrp,check
From: https://www.cnblogs.com/Mr-Ding/p/17489612.html

相关文章

  • 使用 Nginx 在服务器上搭建一个 Xooxle 镜像站
    配置目标期望能够通过xooxle.example.com访问www.xooxle.com。配置DNS配置地址:「DNS解析DNSPod」->「域名」->「解析」->「添加记录」xooxleA222.233.233.23配置Nginx切换到Nginx配置目录:cd/etc/nginx/sites-enabled新建配置:touchxooxle.conf修改配置:......
  • Nginx代理静态界面资源后,浏览器端CSS、JS不起作用
    现象说明:VUE项目打包后通过Nginx代理访问时,JS、CSS等资源都加载到浏览器端了,但是不起作用。经过分析后,发现对于JS、CSS在浏览器端显示的资源类型为:Content-Type=text/plain。发现Nginx没有配置:includemime.types;当Nginx服务器收到静态文件请求时,会根据请求文件中的后缀名在M......
  • Shell脚本_统计当前shell脚本已经运行了几分几秒
    可以使用date命令获取当前时间,再与脚本开始运行的时间进行计算,最后将计算结果转换为分钟和秒数。示例代码:#!/bin/bash#记录脚本开始运行的时间start_time=$(date+%s)#执行脚本的主体代码sleep5#计算脚本已经运行的时间end_time=$(date+%s)elapsed_time=$((end_time......
  • nginx-clojure debug构建简单说明
    实际上参考了官方的构建参数,提供一个debug模式的文件原始配置configurearguments:--prefix=--sbin-path=nginx--conf-path=conf/nginx.conf--error-log-path=logs/error.log--http-log-path=logs/access.log--pid-path=logs/nginx.pid--lock-path=logs/nginx.lock--http-......
  • 查询Oracel 数据文件、数据库用户、删除表空间、删除用户等脚本
    select*fromdba_data_files;select*fromdba_users;--删除用户DROPUSERSYNC_PLUS_1cascade;--删除表空间droptablespaceSYNC_PLUS_ORCLPDB1includingcontentsanddatafiles;为人:谦逊、激情、博学、审问、慎思、明辨、笃行学问:纸上得来终觉浅......
  • nginx-clojure 0.6.0 的一些新特性
    昨天制作了0.6.0的docker镜像,并说明了一些问题,以下简单说明下一些新特性新特性所有的handler可以在http以及servercontext使用了,可以方便进行组合使用nginx1.23.x支持jdk19支持,支持协程了官方提供的二进制构建基于1.23.3说明昨天也说明了,官方提供的二进制包缺少一些依赖,......
  • nginx-clojure 源码构建一些问题
    因为nginx-clojure就是一个标准的nginx模块,一些是尝试基于源码进行构建发现一些问题的说明简单说明nginx当前1.25版本的构建是有问题的,1.24版本构建是可以的,1.23版本实际上官方已经提供了但是如果查看nginx官方文档会发现1.23版本的下载官方是似乎移除了,没直接提供了......
  • nginx-clojure-0.6.0 集成nginx 1.25.0 构建的解决方法
    今天也说过关于nginx-clojure-0.6.0集成nginx1.2.50构建是有问题的,以下是解决方法实际问题staticdeclarationof‘ngx_http_close_request’followsnon-staticdeclaration原因nginx-clojure复制了nginx源码中对于nginx的处理函数(ngx_http_clojure_mem.c文件)/*copyfrom......
  • shell启停脚本
    #!/usr/bin/envbash#获取服务目录xxx_dir=$(cd$(dirname"${BASH_SOURCE[0]}")&&pwd)#端口检测间隔w_interval=3#启动后端口检测次数max_retried_times=50REDIS_INSTALL_DIR=/bin/REDIS_CONFIG_FILE=/etc/redis/redis.confMONGO_INSTALL_DIR=/usr/MONGO_CON......
  • 3、【java程序运行监控byteman】Byteman脚本详解及javaagent和byteman结合使用详细示
    java程序运行监控byteman系列文章1、【java程序运行监控byteman】之安装部署和入门示例2、【java程序运行监控byteman】使用示例(运行中方法耗时监控、javaagent监控、jvm监控、规则的检查、是否运行以及查看等)3、【java程序运行监控byteman】Byteman脚本详解及javaagent和bytem......