集群监控 java_Java 集群高可用监控(结合阿里SLB)脚本

欢迎点评,大家一起来优化

计划思路:  只有在mysql slave java 进程状态都正常的情况下才允许nginx 运行, 否则就干掉它, 负载用的是阿里的SLB

#bin/bash

#邮件函数   我怕看不见就定义了发送十条

mysql_kill_ngx(){

ps -ef|grep nginx|grep -v grep |awk '{print $2}'|xargs -i{} kill -9 {}

pkill nginx

for i in {1..10};

do

char="MySQL slave is not ok"

echo "$char"

echo "ERROR:`hostname` $char"|mail -s "$char" ***@.com>/dev/null 2>&1

#sleep 60

done

}

java_kill_ngx(){

ps -ef|grep nginx|grep -v grep |awk '{print $2}'|xargs -i{} kill -9 {}

pkill nginx

for i in {1..10};

do

echo "ERROR:`hostname` Java is not ok "|mail -s "Java is not ok" ***@.com >/dev/null 2>&1

#sleep 60

done

}

#这里是一个循环保证脚本一直监控

while true

do

HOME=/home /data/opt/mysql/bin/mysql -e "show slave status\G;"| egrep "_Running|Behind_Master" >slave.log  #查询slave状态   这个命令方法解释参见(https://www.cnblogs.com/musen/p/11512122.html)

array=($(egrep "_Running|Behind_Master" slave.log|awk '{print $NF}'))

#判断Mysql slave状态

if [ "${array[0]}" == "Yes" -a "${array[1]}" == "Yes" -a "${array[2]}" == "0" ]

then

echo "MySQL is slave is ok"

java_status=`ps -ef|grep java|grep 'jar$'|grep app`

nginx_status=`ps -ef|grep nginx|grep -v grep`

#判断java进程状态

if [ -z "${java_status}" ];

then echo "java not ok"

java_kill_ngx

else

echo "Java is ok"

#判断nginx状态

if [ -z "${nginx_status}" ];

then echo "nginx not ok"

else

echo "nginx is ok"

/opt/ng/sbin/nginx

fi

fi

else

mysql_kill_ngx

#break

fi

sleep 30

done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值