且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

mysql 之 主从加 keepalive 在生产系统应用(zabbix)

更新时间:2022-09-22 23:32:48

    我们的生产平台上使用了zabbix,zabbix使用的数据库是mysql,并且数据量还比较大,每个月产生的数据文件有10G以上,经过上篇《mysql 之 主从数据加keepalive》的操练之后,具备了向生产系统运用的条件,选用生产系统的zabbix(开源监控平台) 练手非常合适。

    原系统是单机系统, zabbix采用的是linux+apache+mysql+PHP环境,典型的LAMP,现在我们需要做的就是将mysql变成 主从双 机,并且在主从双机上安装配置keepalived,最后  将php程序连接mysql的IP地址改为 主从双机的VIP。

    现网zabbix环境(单机):

    zabbix服务器:  10.0.0.111

    mysql服务器:  10.0.0.111

    首先参照《mysql 之 主从同步(单向同步和双向同步)》这篇博客。选择内网一台比较空闲的服务器10.0.0.10作为另外一台mysql服务器,在这台服务器上安装mysql,然后在这2台服务器上安装配置keepalived。选择一个内网空闲IP地址作为VIP。

    改造后的系统环境如下(主从双机):

    zabbix服务器:   10.0.0.111 (php +apache)

    MySql-01:    10.0.0.111   (部署keepalived+mysql)

    MySql-02:     10.0.0.10    (部署keepalived+mysql)

    VIP:            10.0.0.15    (将php指向VIP)

    安装详细过程是参照《mysql 之 主从同步(单向同步和双向同步)》和《mysql 之 主从数据加keepalive》进行操作的,这里就不详细写了,过程中碰到下面的问题,记录下来备忘:

    1、配置mysql的主从同步,配置的是双向同步;

    2、配置文件/etc/keepalived/keepalived.conf中,

    ..........

vrrp_instance VI_1 {
    state master      
    interface em1

    ...............

    网络接口需要根据实际使用的网卡进行修改。

    3、修改zabbix服务器上的/usr/share/zabbix/conf/zabbix.conf.php文件$DB['SERVER'] 参数:

    $DB['SERVER']   = '10.0.0.15';

    这个参数修改完之后不需要重启应用,直接生效。


测试过程:

   1、 在MySql-01中将mysqld服务停止:

    service mysqld stop

    在MySql-01、MySql-02中使用ip addr查看IP地址,VIP地址10.0.0.15从MySql-01切换到了MySql-02中。通过web界面访问zabbix应用,不受影响,说明平滑切换成功。此时查看MySql-01的keepalived服务是关闭的: 

     #service keepalived status
     keepalived is stopped

    2、恢复服务。在MySql-01服务器中将mysqld开启:

    service mysqld start

    将keepalived服务开启:

    service keepalived start

    此时的VIP还是在MySql-02上,如果想把VIP切回MySql-01,那么在MySql-02上执行 service keepalived restart就可以了,因为keepalived服务重启的过程是先关闭再启动,关闭的时候另一台主机的keepalived会接管VIP,从而达到切换的目的。











本文转自yuweibing51CTO博客,原文链接:http://blog.51cto.com/yuweibing/1745234 ,如需转载请自行联系原作者