首页 > MySQL, MySQL HA > lbmysqlping (LegendBase MySQL Ping)

lbmysqlping (LegendBase MySQL Ping)

lbmysqlping (LegendBase MySQL Ping) is a tool that does MySQL service availability check for MySQL HA solution.

Of course, it could be used to monitor MySQL servers availability. If some server down, LBMySQLping will run “Down” command that could send email or message to your mobile.

有不少朋友在做MySQL数据库高可用(Heartbeat,keepalived)和主从负载均衡(LVS,F5,A10等)的时候都面对MySQL服务可用性检测的问题.

检测可用性面对的几个问题不太容易解决:

  • 端口能连上,但是SQL语句很可能无法执行,其实这时候MySQL服务是不可用的
  • 连上了,SQL语句执行堵塞,长时间不能返回,因为MySQL是堵塞式的
  • MySQL Slave延时太大,应该从路由表里面清除

而且我了解到的有不少人都是用检测端口的方法,这是有风险的.

今天贡献的lbmysqlping通过可配置的方式,能够灵活的对MySQL服务进行检测,如果出现异常超时或者Slave延时超过配置大小,可以执行指定的失效命令,当服务恢复可用的时候又可以执行恢复命令.

另外lbmysqlping还可以做简单的报警系统,配置好默认信息后,其他realserver 只需要配置ip地址即可,如果端口不一样,改下端口。然后在down命令和up命令里面填上相关的脚本或者报警程序,这样一个简单的MySQL服务可用性报警系统就出来了,简单、高效。

配置文件格式如下:

< ?xml version="1.0" encoding="utf-8"?>
<lbmysqlping Version="1.0">
        <log>lb.log</log>
        <rsdefault>
                <port>3306</port>
                <user>ivan</user>
                <pass>test</pass>
                <query>select 1</query>
                <times>2</times>
                <interval>1000</interval>
                <timeout>1000</timeout>
        </rsdefault>
        <realserver Name="test">
                <host>192.168.1.157</host>
                <down>ipvsadm -d -t 192.168.2.250:3306 -r 192.168.1.157:3306 -g</down>
                <up>ipvsadm -a -t 192.168.2.250:3306 -r 192.168.1.157:3306</up>
        </realserver>
        <realserver Name="local">
                <host>192.168.1.158</host>
                <checkslave>true</checkslave>
                <secondsbehindmaster>10</secondsbehindmaster>
                <down>ipvsadm -d -t 192.168.2.250:3306 -r 192.168.1.158:3306 -g</down>
                <up>ipvsadm -a -t 192.168.2.250:3306 -r 192.168.1.158:3306</up>
        </realserver>
</lbmysqlping>
 

其中 interval,timeout是毫秒数

下载地址:
linux32: lbmysqlping_v1_i386.tar.gz
linux64:

Executable binary package will be uploaded soon. Be patient.
刚发现linux环境有问题,等我弄好之后马上上传

Related posts:

  1. A new MySQL proxy written in Go — LegendBase Proxy for MySQL
  2. MySQL5.5复制/同步的新特性及改进
  1. 2012年6月8日11:34 | #1

    启动命令可以这样写:nohup ./lbmysqlping -f=/path/to/lb.xml 2>&1 >output.log &

  2. 2012年6月9日01:49 | #2

    kill `cat lb.pid` 是没办法杀掉lbmysqlping的进程的,这个也是为了保护进程被随意退出。除非用kill -9

  3. 2012年6月9日01:50 | #3

    另外 Down和Up命令用绝对路径,这样才可以确保命令被正确执行。

  1. 2012年8月9日03:18 | #1