手动写一个监控nacos单机服务是否挂掉的bash脚本
这个脚本其实不光可以监控nacos服务,所有的服务都可以监控。
脚本逻辑是,如果检测到nacos服务挂掉后调用http接口发送警告通知,然后暂停5分钟,之后继续监控。如果正常就暂停一小会,之后继续循环。
使用 Bash 脚本和 curl
命令:
-
安装所需工具: 确保 CentOS 服务器上已经安装了
curl
。如果没有,您可以通过以下命令来安装:sudo yum install curl -y
-
创建脚本文件: 创建一个名为
monitor_nacos.sh
的文件,并给予执行权限:touch monitor_nacos.sh chmod +x monitor_nacos.sh
-
编辑脚本内容: 使用文本编辑器编辑脚本,内容如下:
#!/bin/bash # Nacos 服务健康检查 URL NACOS_HEALTH_CHECK_URL="http://localhost:8848/nacos/v1/console/health/readiness" # 触发的远程 HTTP 接口 URL REMOTE_HTTP_URL="http://example.com/remote_api" # 暂停监控的时间,单位秒 (例如5分钟暂停则为300秒) PAUSE_TIME=300 while true; do STATUS_CODE=$(curl -o /dev/null -s -w "%{http_code}\n" $NACOS_HEALTH_CHECK_URL) if [ $STATUS_CODE -ne 200 ]; then echo "Nacos 服务不健康,状态码: $STATUS_CODE, 正在调用远程接口..." # 调用远程 HTTP 接口 curl -X POST $REMOTE_HTTP_URL echo "远程接口调用完成,暂停监控 $PAUSE_TIME 秒..." # 暂停监控 5 分钟 sleep $PAUSE_TIME else echo "Nacos 服务健康" fi # 检查间隔,例如 60 秒 sleep 60 done
请替换
NACOS_HEALTH_CHECK_URL
和REMOTE_HTTP_URL
为你的实际 URL。 -
运行脚本:
nohup ./monitor_nacos.sh &
此脚本将无限循环检查 Nacos 服务的健康状态,并在检测到不健康时调用远程 HTTP 接口。您可以根据需要自定义检查间隔和其他逻辑。
也可以把报警改为发短信或发邮件通知
在脚本中将调用远程 HTTP 接口的逻辑替换为发送短信或邮件。以下是一些可能的替代方案:
发送邮件
如果服务器上配置了邮件发送工具,如sendmail
或mailx
,可以使用以下命令发送警报邮件:
echo "Nacos 服务不健康" | mail -s "Nacos Alert" your-email@example.com
请将your-email@example.com
替换为接收警报的电子邮件地址。
发送短信
发送短信可能会涉及使用特定的 SMS 网关或提供商 API。需要注册第三方短信服务,并使用他们提供的 API 来发送短信。以下是一个使用 curl
命令调用 SMS 服务提供商 API 的示例:
curl -X POST "https://sms-provider.com/api" \ -d "api_key=YOUR_API_KEY" \ -d "message=Nacos 服务不健康" \ -d "to=PHONE_NUMBER"
请根据你选择的 SMS 服务提供商的文档修改上述命令,并替换 YOUR_API_KEY
和 PHONE_NUMBER
等适当的值。