医院里,一母亲带着小女孩打针。小女孩:“妈妈我不想打针,疼!”妈妈:“宝贝儿听话,这里这么多护士阿姨,咱们找个打针不疼的。”小女孩:“那哪个阿姨打针不疼呢?”妈妈:“妈妈也不知道,咱们试试看吧。”小女孩高兴的点了点头。。。
路漫漫其修远兮,吾将上下而求索!
github:https://github.com/youzhibing
码云(gitee):https://gitee.com/youzhibing
问题背景Mycat - 实现数据库的读写分离与高可用写完之后,本以为一两天就能写完Mycat - 高可用与负载均衡实现,满满的干货!,可事实是却用了一个星期;期间虽然产生了一系列的问题,但主要还是卡在了keeplaived实现mycat的高可用,那时候两台keepalived服务器的keepalived.conf内容如下
细心的朋友应该已经找到问题了,不管你找没找到问题,都可以准备好花生、瓜子和啤酒,且看我是如何埋雷和扫雷的
vip查看问题个人一直用ifconfig命令来管理linux的网络配置,但是keepalived启动之后通过ifconfig命令却看不到vip。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一,大多数Linux发行版已经预装了iproute2工具,而没有预装net-tools,ip命令功能更强大,旨在取代ifconfig。我们可以用ip命令查看vip的绑定情况,具体如下
这个问题还真卡了我一会,一直以为vip绑定失败,但是看/var/log/message,又没发现有什么问题,并且还能ping通vip。我这个无知者是有多无畏、多自信呀!
更多关于ifconfig、ip的信息,大家可以去网上查阅,这里我就不细讲了(其实是不知道,
)。 检测脚本问题单独执行命令是正确的;命令放入检测脚本中,部分是正确的;检测脚本结合keepalived,正确的更少了,具体我们往下看
ps命令查询mycat进程check_pid.sh具体配置如下
#!/bin/bash count=`ps -ef|grep mycat |grep -v grep | wc -l` time=$(date "+%Y-%m-%d %H:%M:%S") if [ $count = 0 ]; then echo "$time : count=$count, mycat is not running..." >> /var/log/keepalived_check.log exit 1 # 返回1说明脚本非正常执行,mycat不在运行中 else echo "$time : count=$count, mycat is running..." >> /var/log/keepalived_check.log exit 0 # 返回0说明脚本正常执行,mycat正在运行中 fi