keepalived监控nginx进程

目录

1、说明

2、上传脚本

3、修改keepalived.conf

3.1 定义监控脚本

3.2 在实例中加入启用监控

4、keepalived.conf配置示例


1、说明

        keepalived本身只是监控自身的进程是否挂掉,如果机器并没有挂机,只是nginx挂了,那么keepalived是不会做切换主备的,所以我们需要写个脚本来监控nginx进程是否存在。

2、上传脚本

上传脚本check_nginx.sh到/etc/keepalived目录。

#!/bin/bash
# 如果进程中没有nginx则将keepalived进程kill掉
A=`ps -C nginx --no-header |wc -l`      ## 查看是否有 nginx进程 把值赋给变量A 
if [ $A -eq 0 ];then                    ## 如果没有进程值得为 零
       service keepalived stop          ## 则结束 keepalived 进程
fi

设置check_nginx.sh脚本可执行权限:

chmod 755 check_nginx.sh  或者 chmod +x check_nginx.sh

如果执行脚本出错,需要使用dos2unix工具转化下格式:

安装dos2unix:  yum -y install dos2unix

使用:dos2unix check_nginx.sh

3、修改keepalived.conf

3.1 定义监控脚本

vrrp_script check_nginx {

    script "/etc/keepalived/check_nginx.sh"         ##监控脚本

    interval 2                                      ##时间间隔,2秒

    weight 2                                        ##权重

}

3.2 在实例中加入启用监控

vrrp_instance VI_1 {

    state BACKUP           #标示状态为MASTER 备份机为BACKUP

    interface eth0         #设置实例绑定的网卡

    virtual_router_id 51   #同一实例下virtual_router_id必须相同

    priority 100           #MASTER权重要高于BACKUP 比如BACKUP为99 

    advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒

    authentication {       #设置认证

        auth_type PASS     #主从服务器验证方式

        auth_pass 8888

    }

    virtual_ipaddress {    #设置vip

        192.168.0.55       #可以多个虚拟IP,换行即可

    }

    track_script {

            check_nginx        #监控脚本

    }

}

4、keepalived.conf配置示例

! Configuration File for keepalived

#全局配置
global_defs {
   notification_email {  #指定keepalived在发生切换时需要发送email到的对象,一行一个
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc  #指定发件人
   #smtp_server 192.168.200.1                             #指定smtp服务器地址
   #smtp_connect_timeout 30                               #指定smtp连接超时时间
   router_id LVS_DEVEL                                    #运行keepalived机器的一个标识
}

vrrp_instance VI_1 { 
    state MASTER           #标示状态为MASTER 备份机为BACKUP
    interface eth0         #设置实例绑定的网卡
    virtual_router_id 51   #同一实例下virtual_router_id必须相同
    priority 100           #MASTER权重要高于BACKUP 比如BACKUP为99  
    advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
    authentication {       #设置认证
        auth_type PASS     #主从服务器验证方式
        auth_pass 1111
    }
    virtual_ipaddress {    #设置vip
        192.168.0.55       #可以多个虚拟IP,换行即可
    }
}

#虚拟服务器 80端口的配置
virtual_server 192.168.0.55 80 {
    delay_loop 6              #(每隔10秒查询realserver状态)  
    lb_algo rr                #lvs调度算法rr|wrr|lc|wlc|lblc|sh|dh
    lb_kind DR                #负载均衡转发规则NAT|DR|RUN
    #nat_mask 255.255.255.0   #掩码
    persistence_timeout 50    #会话保持时间(同一IP的连接60秒内被分配到同一台realserver)  
    protocol TCP              #使用的协议

    #实际服务器的IP和端口  
    real_server 192.168.0.48 80 {
        weight 1              #默认为1,0为失效
        HTTP_GET {             #使用http get检测方式
            url {
              path /index.html
              #digest ff20ad2481f97b1754ef3e12ecd3a9cc  #http://192.168.0.48/index.html的digest值 
          status_code 200                           #http://192.168.0.48/index.html的返回状态码
            }
            connect_timeout 3     #连接超时时间
            nb_get_retry 3        #重连次数
            delay_before_retry 3  #重连间隔时间
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/846225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟化软件(VMWare、VB)异常最后解决手段

Version V0.0:20240601 Ini 前言 这里描述的是常规的解决办法还是无法解决的严重问题,比如”虚拟化软件(VMWare、VB)“启动”虚拟机“、和”CPU硬件加速“开启不了等问题。 一、安装了加速器、游戏平台、模拟器的电脑 解决办法: 把这些…

把AI引入到低代码领域

前言 引入AI到低代码开发平台,如驰骋低代码,能够带来显著的利益和价值,具体体现在以下几个方面: 1. 提升开发效率 自动化设计:AI可以帮助设计者自动规划菜单体系,减少手动设计的时间和错误。快速表单设计…

【MySQL】聊聊order by 是如何排序的

CREATE TABLE t (id int(11) NOT NULL,city varchar(16) NOT NULL,name varchar(16) NOT NULL,age int(11) NOT NULL,addr varchar(128) DEFAULT NULL,PRIMARY KEY (id),KEY city (city) ) ENGINEInnoDB;构建一个表结构,以及数据。 本篇主要来分析下order by是如何进…

springboot游戏售卖商城网站-计算机毕业设计源码80257

摘 要 本论文主要论述了如何使用JAVA语言开发一个springboot 游戏售卖商城网站,本系统将严格按照软件开发流程进行各个阶段的工作,采用springbootvue.js相结合框架,采用B/S架构,面向对象编程思想进行项目开发。在引言中&#xff0…

Stable Diffusion安装记录II

文章目录 前言0 更改python路径(跳过)1 Torch is not able to use GPU1.1 确认显卡1.2 安装nvdia驱动 1.3 检查CUDA1.4更改启动脚本 2 依赖安装2.1 pip install报错2.2 git报错2.3 卡在installing requirements 3 启动咯~3.1 clip报错 4 成功运行4.1 遗留…

非全考研前后的学习历程

最近2年多的学习经历 记录从2021年下半年、到2024年中,共2年半时间的学习经历。 从2022年4月份开始,复习了大约8个月,2022年12月24日参加研究生统一入学考试。 政治:4本教材看了2遍,认为重要的和不太理解的知识点&a…

高级Web Lab2

高级Web Lab2 12 1 按照“Lab 2 基础学习文档”文档完成实验步骤 实验截图: 2 添加了Web3D场景选择按钮,可以选择目标课程或者学习房间。

ce编程语言:探索其深度与广度

ce编程语言:探索其深度与广度 ce编程语言,一个充满神秘与魅力的领域,吸引了无数编程爱好者的目光。然而,对于初学者来说,ce编程语言可能是一个充满困惑与挑战的迷宫。本文将带领你深入探索ce编程语言的四个方面、五个…

一款高性能的轻量级ORM数据映射框架——Chloe

Chloe 是一个轻量级的对象/关系映射 (ORM) 库。 查询接口类似于 LINQ。可以像 LINQ 一样查询数据并执行任何操作(联接查询 |群查询 |聚合查询 |插入 |批量更新 |批量删除 |分片)。 对应文档链接: https://github.com/shuxinqin/Chloe/wiki 适应数据库包括:SqlServer、M…

eNSP学习——连接RIP与OSPF网络、默认路由

目录 相关主要命令 实验一、连接RIP与OSPF网络 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建RIP和OSPF网络 3、配置双向路由引入 4、手工配置引入时的开销值 实验二、使用OSPF、RIP发布默认路由 原理介绍 实验目的 实验内容 实…

LeetCode 算法:盛最多水的容器c++

原题链接🔗:盛最多水的容器 难度:中等⭐️⭐️ 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以…

Python编程练习小结

Python编程练习小结 变量是编程中的一个基本概念,用来存储数据。在 Python 中,变量的使用非常灵活,可以存储不同类型的数据,如整数、浮点数、字符串、列表、字典等。以下是 Python 中变量的一些基本用法和规则: 1. 变量的命名规则 变量名必须以字母或下划线 _ 开头,不能…

回文串算法题

回文串是一个正着读和反着读顺序一样的字符串。"aba" 是回文串,"abba" 是回文串,"abc" 不是回文串。 回文串的题目,都要使用一个基本的逻辑,就是判断当前这个字符串是不是回文串。以 c 为例&#…

Keras深度学习框架基础第五讲:层接口(layers API)“核心层Core layers”

1、 输入对象 输入对象使用Input 函数。 “Input object” 在编程和机器学习通常指的是一个用于接收数据或参数的输入对象。在 Keras(一个流行的深度学习框架)中,Input 是一个特殊的类,用于实例化一个输入张量(tensor…

六一去哪儿,跟着蒙自源开启一段关于童年记忆与美味奇妙旅程

夏日微风轻拂,童心随风起舞。在这个充满欢声笑语的季节里,蒙自源诚挚地邀请您和您的家人,一同参加为六一儿童节精心准备的庆祝活动,共同开启一段关于童年记忆与美味的奇妙旅程。 从5月25日起,蒙自源的各大门店将化身为…

【R语言入门】 在Anaconda Navigator平台使用R语言编程

R语言入门 - 在Anaconda Navigator平台使用R语言编程 R Essentials - Using R Programming Language on Anaconda Navigator Platform By JacksonML 02/06/2024 1. 安装Anaconda Navigator 为了持续研究数据科学,笔者一开始就在电脑上安装了Jupyter Notebook&am…

services层和controller层

services层 我的理解,services层是编写逻辑代码语句最多的一个层,非常重要,在实际的项目中,负责调用Dao层中的mybatis,在我的项目中它调用的是这两个文件 举例代码如下 package com.example.sfdeliverysystem.servic…

Python 点云快速全局配准算法

点云快速全局配准 一、概述1.1 定义1.2 函数讲解1.3 算法步骤二、代码示例三、运行结果一、概述 1.1 定义 基于特征匹配的快速全局配准算法(Fast Global Registration, FGR):通过计算源点云和目标点云的特征(如ORB、FPFH等特征),再使用特征匹配的方法实现点云之间的配准…

详解 Spark 核心编程之累加器

累加器是分布式共享只写变量 一、累加器功能 ​ 累加器可以用来把 Executor 端的变量信息聚合到 Driver 端。在 Driver 程序中定义的变量,在 Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后,传回 Dri…

LeetCode 两两交换链表中的节点

原题链接24. 两两交换链表中的节点 - 力扣(LeetCode) 思路,请看图片的过程模拟,这里添加了一个哨兵节点0,目的是为了方便操作,得到指向1节点的指针。 class Solution {public:ListNode* swapPairs(ListNod…