keepalived 监控 nginx 配合
制作nginx监控脚本
1、编辑nginx 监控脚本
vim /etc/keepalived/check_ng.sh
加入如下:
#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
systemctl start nginx
n2=`ps -C nginx --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi
保存 退出
2. 给脚本755权限
chmod 755 /etc/keepalived/check_ng.sh
3.配置keepalived定时监听nginx
vim /etc/keepalived/keepalived.conf
如下是配置监听 红色字体
! Configuration File for keepalived
global_defs {
#路由ID当前安装节点主机的标识符,全局唯一
router_id keep_151
}
#这里的check_nginx和下面的track_script一样
vrrp_script check_nginx {
#设置脚本的位置
script "/etc/keepalived/check_ng.sh"
#设置每隔两秒运行脚本
interval 2
weight 10
#如果脚本运行成功 则升级权重+10
#weight -10 如果脚本运行失败 则降低权重-10
}
#计算机节点 vrrp的ID
vrrp_instance VI_1 {
#这个表示状态为主点MASTER 备份的为BACKUP
state MASTER
# 当前服务器绑定的网卡 我的是虚拟机所以是ens33
interface ens33
#虚拟路由的ID 主备节点要一致 说明在一个组里
virtual_router_id 51
#优先级/权重 100 谁大谁高 谁是主
priority 100
#主备之间同步检查的时间间隔,默认是1秒
advert_int 1
#认证授权的密-码 主备节点设置的一样即可
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
#追踪nginx脚本 上面定义好的
check_nginx
}
virtual_ipaddress {
#你规划的 虚拟的IP我设置的是10.10.201.171
#这个IP是网络中没有的 专门给两台keeplived虚拟IP使用
#注意:不能冲突
10.10.201.171
}
}
#其他全部删除
从启动服务
systemctl restart keepalived