keeplived+lvs部署mycat 日志报错处理

1.keepalived 开始采用tcp的方式检测端口 mycat疯狂报错 采用MISC_CHECK检测后日志正常

MISC_CHECK的用法是 执行脚本返回1着为错误 剔除服务 返回0则正常

vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id 112
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.193
    }
}

virtual_server 192.168.1.193 3306 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    # persistence_timeout 50 #测试的时候注释掉
protocol TCP

    real_server 192.168.1.117 3306 {
        weight 1
#       TCP_CHECK {
# connect_timeout 3
#           nb_get_retry 3
#            delay_before_retry 3
#            connect_port 3306
MISC_CHECK {
          misc_path "/etc/keepalived/scripts/mycat_check.sh 192.168.1.117 3306 tkgrowlog"
          misc_timeout 10
          misc_dynamic
}
}

real_server 192.168.1.118 3306 {
        weight 1
#       TCP_CHECK {
#       connect_timeout 3
#            nb_get_retry 3
#            delay_before_retry 3
#            connect_port 3306
#    }
MISC_CHECK {
          misc_path "/etc/keepalived/scripts/mycat_check.sh 192.168.1.118 3306 tkgrowlog"
          misc_timeout 10
          misc_dynamic
}


}
}

注意nc命令需要安装一下 在keeplived端

yum install nc -y
yum install nmap -y

 

vi /etc/keepalived/scripts/mycat_check.sh

# cat mycat_check.sh
#!/bin/bash
time=$(date "+%Y-%m-%d %H:%M:%S")
nc -v -z $1 $2
if [ $? -eq 0 ]
then
    echo "$time "$1:$2:$3":  mycat is running..." >> /var/log/keepalived_check.log
    exit 0
else
    echo "$time "$1:$2:$3":  mycat is not running..." >> /var/log/keepalived_check.log
    exit 1
fi

 测试结果mycat 有性能衰减 不同测试方式有差异
线程越多 keepalived性能越好 与单实例数据库越接近
在mycat日志开启debug级别的时候 lvs数据库性能高于mycat 低于单实例数据库
在写人数据库有大量数据写入的时候也不影响数据读取

vi /usr/local/mycat/conf/log4j2.xml #修改日志级别提升mycat性能 也可以消除报错

        <asyncRoot level="error" includeLocation="true">

 

posted @ 2019-08-16 14:58  夜辰雪扬  阅读(159)  评论(0)    收藏  举报