网页制作免费的素材网站,百度网站提交收录,长沙flash网站设计,做水果网站行[rootcentos01 keepalived]# cat check_httpd.sh 脚本需要有执行权限 通常情况下#xff0c;利用keepalived做热备#xff0c;其中一台设置为master#xff0c;一台设置为backup。当master出现异常后#xff0c;backup自动切换为master。当backup成为master后#xff0c;m…[rootcentos01 keepalived]# cat check_httpd.sh 脚本需要有执行权限 通常情况下利用keepalived做热备其中一台设置为master一台设置为backup。当master出现异常后backup自动切换为master。当backup成为master后master恢复正常后会再次抢占成为master导致不必要的主备切换。因此可以将两台keepalived初始状态均配置为backup设置不同的优先级优先级高的设置nopreempt解决异常恢复后再次抢占的问题。keepalived只能做到对网络故障和keepalived本身的监控即当出现网络故障或者keepalived本身出现问题时进行切换。但是这些还不够我们还需要监控keepalived所在服务器上的其他业务进程比如说nginxkeepalivednginx实现nginx的负载均衡高可用如果nginx异常仅仅keepalived保持正常是无法完成系统的正常工作的因此需要根据业务进程的运行状态决定是否需要进行主备切换。这个时候我们可以通过编写脚本对业务进程进行检测监控。下面是 vrrp_script 模块常见的几种监控机制1、killall 命令探测服务运行状态vrrp_script check_nginx { # check_nginx 为自定义的一个监控名称script killall -0 nginx # 采用 killall 信号 0 来对进程运行状态进行监控0 为正常1 为异常interval 2 # 检测间隔时间即两秒检测一次weight 30 # 一个正整数或负整数。权重值关系到整个集群角色选举尤为重要( 单独出帖 )}track_script {check_nginx # 引用上面定义的监控模块}2、检测端口运行状态检测端口的运行状态也是最常见的服务监控方式在keepalived的vrrp_script模块中可以通过如下方式对本机的端口进行检测vrrp_script check_nginx {script /dev/tcp/127.0.0.1:80 # 通过 /dev/tcp/127.0.0.1:80 这样的方式定义一个对本机端口状态的检测interval 2fall 2 # 检测失败的最大次数超过两次认为节点资源发生故障rise 1 # 请求一次成功认为节点恢复正常weight 30}track_script {check_nginx}通过 /dev/tcp/127.0.0.1/80这样的方式定义了一个对本机80端口的状态检测其中“fail”选项表示检测到失败的最大次数也就是说如果请求失败两次就认为此节点资源发生故障将进行切换操作“rise”表示如果请求一次成功就认为此节点资源恢复正常。3、通过 shell 语句进行状态监控vrrp_script check_nginx {script if [ -f /usr/local/nginx/logs/nginx.pid ]; then exit 0 ; else exit 1; fiinterval 2fall 1rise 1weight 30}track_script {check_nginx}通过一个shell判断语句检测httpd.pid文件是否存在如果存在就认为状态正常否则认为状态异常这种监测方式对于一些简单的应用监控或者流程监控非常有用。从这里也可以得知vrrp_script模块支持的监控方式十分灵活。4、通过脚本进行服务状态监控vrrp_script chk_mysqld {script /etc/keepalived/check_mysqld.shinterval 2}track_script {chk_mysqld}check_mysqld.sh的内容为:#!/bin/bash/usr/bin/mysql -e show status; /dev/null 21if [ $? -eq 0 ];thenMYSQL_STATUS0elseMYSQL_STATUS1fiexit $MYSQL_STATUS