Linux 监测服务心跳、服务重启策略


前言

请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i


提示:以下是本篇文章正文内容,下面案例可供参考

背景

当服务假死情况下,导致服务不可用,一时间定位不到服务假死原因,可以采用临时应急方案,需要增加探测机制,定时拉起重启服务

一、curl服务可用验证

注:curl请求地址包含特殊字符时,需要将特殊字符转义,curl字符转义移步第四步

curl  http://127.0.0.1:8088/GetResult.json?userName=superAdmin%26password=sadmin_secret_pw -d '{"id":100897}'

首先,正常运行情况下,适用下述curl指令可以正常返回结果:
curl

二、服务探测脚本

编写shell脚本如下:

#!/bin/bash

#      ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#      + 1、此脚本为服务监控脚本,与系统定时任务配合使用    
#      + 2、执行crontab -e进入监控任务配置,配置探测脚本执行时间      
#      + 3、创建此脚本后请赋予可执行权限chmod +x chk_service.sh
#      + 4、普通用户执行docker需要sudo 权限,在执行命令前先设置普通用户密码 !!!          
#      ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



#获取当前时间
DATE=`date +%Y%m%d`
#检测地址
httpCode=`curl -s -o /dev/null -w "%{http_code}" -X POST -d '{"id":100897}' "http://127.0.0.1:8088/GetResult.json?userName=superAdmin&password=sadmin_secret_pw"` 

#服务端口
ports=8088

#检查服务是否正常
function checkService()
{
echo "执行时间: $(date +%Y'-'%m'-'%d' '%H':'%M':'%S) "
if (( "$httpCode"=="200" ));then
        echo "*************************"
        echo "检测服务正常运行服务可用!"
		exit
else
        echo "*************************"
        echo "检测服务不可用!"
        echo "重启检测服务...预计两分钟"
        echo "admin123" | sudo -S docker restart 09a380a14b7f
        sleep 30s

		status=`netstat -nltp|grep ${ports}|grep -v "grep"`
		if [ -z "${status}" ];then
		  echo "docker检测服务重启失败..."
		  echo "再次重启docker检测服务..."
		  echo "admin123" | sudo -S docker restart 09a380a14b7f
		  exit
		else
		  echo "docker检测服务重启完成..." 
		  exit

		fi		
fi

}

checkService	#调用函数

三、配置系统定时任务

监控脚本写完之后,便是把该脚本加入到crontab监控任务中了。该过程可以去查看crontab定时任务。我这个设置的是每一分钟执行一次,就是一行指令:先执行crontab -e进入监控任务配置文件位置:

#查看监控任务
crontab -e

#配置任务
*/1 * * * * cd /root && sh cront_check.sh >> /root/cront.log

查看效果
探测效果

四、Linux特殊字符转义

友情提示: 在url中直接使用特殊符号会截断命令让命令失去原本意义.,所以我们需要编码转义特殊符号

字符URL编码值
空格%20
"%22
#%23
%%25
&%26
(%28
)%29
+%2B
,%2C
/%2F
:%3A
;%3B
<%3C
=%3D
>%3E
?%3F
@%40
\%5C
%7C

总结

我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南国以南i

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值