Xinetd–03–案例:监控mycat存活
前提:mycat我已经提前装好
1、安装Xinetd
2、增加 MyCat 存活状态检测服务配置
vim /etc/xinetd.d/mycat_status
移动要放到/etc/xinetd.d/目录,因为这个是应用的配置目录
mycat_status内容
#代表被托管服务的名称
service mycat_status
{
flags = REUSE
# socket连接方式
socket_type = stream
# 服务监听端口
port = 48700
# 是否并发,即服务将以多线程的方式运行
wait = no
# 以什么用户进行启动
user = root
# 被托管服务的启动脚本,我们这里是检测脚本
server =/usr/local/bin/mycat_status
# 设置失败时,UID添加到系统登记表
log_on_failure += USERID
# 是否禁用托管服务,no表示开启托管服务
disable = no
}
3、添加 /usr/local/bin/mycat_status 服务脚本
touch /usr/local/bin/mycat_status
vim /usr/local/bin/mycat_status
mycat_status 内容
#!/bin/bash
#/usr/local/bin/mycat_status.sh
# This script checks if a mycat server is healthy running on localhost.
# It will return:
# "HTTP/1.x 200 OK\r" (if mycat is running smoothly)
# "HTTP/1.x 503 Internal Server Error\r" (else)
mycat=`/usr/local/mycat/bin/mycat status | grep 'not running' | wc -l`
if [ "$mycat" = "0" ]; then
# mycat 是存活状态
/bin/echo -e "HTTP/1.1 200 OK\r\n"
else
# mycat 是宕机状态
/bin/echo -e "HTTP/1.1 503 Service Unavailable\r\n"
fi
4、给新增脚本赋予可执行权限
chmod a+x /usr/local/bin/mycat_status
5、在 /etc/services 中加入 mycat_status 服务
vim /etc/services
在末尾加入
mycat_status 48700/tcp # mycat_status
保存后,重启 xinetd 服务
service xinetd restart
6、验证 mycat_status 服务是否成功启动
netstat -antup|grep 48700
netstat -ntlp
7、MyCat 服务主机的防火墙上打开 48700 端口(我没有安装防火墙,这一步不做)
vim /etc/sysconfig/iptables
增加内容
-A INPUT -m state --state NEW -m tcp -p tcp --dport 48700 -j ACCEPT
保存后重启防火墙
service iptables restart
8、脚本测试
/usr/local/bin/mycat_status
[外链
可能有防盗链机制,建议将图片保存下来直接上传(img-joWa1MZ4-1641816153221)(./image1/4.png)]