文档章节

haproxy+mysql+主从监控检测脚本

eddy_linux
 eddy_linux
发布于 2015/11/26 00:31
字数 482
阅读 447
收藏 11
#想法:让haproxy进行mysql的用户登录检查,python检查主从状态,正常就不做操作,主从不正常就删除用户,从而让haproxy踢出不正常节点。
1.安装haproxy
tar  -xzvf haproxy-1.4.21.tar.gz
cd haproxy-1.4.21
make TARGET=linux26 CPU=x86_64
make install

2.haproxy配置文件
# HAProxy configuration file
global
        daemon
        stats socket /var/run/haproxy.stat mode 600
        log 127.0.0.1 local4
        maxconn 40
        ulimit-n 80013
        pidfile /var/run/haproxy.pid
defaults
        log global
        mode    http
        contimeout      4000
        clitimeout      42000
        srvtimeout      43000
        balance roundrobin
listen  admin_stats *:80
        mode        http
        stats uri   /status
        stats realm     Global\ statistics
        stats auth  admin:admin
listen  VIP_mysql *:8888
        mode    tcp
        option mysql-check user haproxy#登陆mysql的用户
        server server1 192.168.1.102:3306 weight 1 check inter 1s rise 2 fall 2
        server server2 192.168.1.103:3306 weight 1 check inter 1s rise 2 fall 2
        
3.mysql数据库主从搭建
master mysql:
mysql>GRANT REPLICATION SLAVE ON *.* to 'eddy'@'%' identified by '123456';

编辑mysql配置文件
[mysqld]
       log-bin=mysql-bin      #[必须]启用二进制日志
       server-id=1            #[必须]服务器唯一ID
重启mysql服务器
/etc/init.d/mysql restart
mysql> show master status;
+--------------+----------+--------------+------------------+
| File         | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------+----------+--------------+------------------+
| mysql.000007 |      287 |              |                  |
+--------------+----------+--------------+------------------+   
    
slave mysql:
编辑mysql配置文件
[mysqld]
       log-bin=mysql-bin    #[不是必须]启用二进制日志
       server-id=2          #[必须]服务器唯一ID
重启mysql服务器
/etc/init.d/mysql restart       
CHANGE MASTER TO
  MASTER_HOST='master.mysql.com',#主ip地址
  MASTER_USER='eddy',#主授权的用户
  MASTER_PASSWORD='123456',#密码
  MASTER_PORT=3306,#端口
  MASTER_LOG_FILE='mysql.000007',#二进制日志文件
  MASTER_LOG_POS=287,#记录点
  MASTER_CONNECT_RETRY=10;#重试次数
mysql> start slave;
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: 
                  Master_Host: 192.168.1.102
                  Master_User: test
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql.000007
          Read_Master_Log_Pos: 106
               Relay_Log_File: client1-relay-bin.000002
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql.000007
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
看到以下状态表示完成主从配置            
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

4.主从检测脚本
#! /usr/bin/env python
# -*- coding: utf-8 -*

import commands
import time
i = 0
while i < 60:
    (status1, result1) = commands.getstatusoutput("mysql -ueddy -poracle -e 'show slave status\G'|grep Slave_IO_Running:|awk '{print $2}'")
    (status2, result2) = commands.getstatusoutput("mysql -ueddy -poracle -e 'show slave status\G'|grep Slave_SQL_Running:|awk '{print $2}'")

    slave_io = result1
    slave_sql = result2
    if slave_io == 'Yes' and slave_sql == 'Yes':
        pass
    else:
        if result3 == 'haproxy':
            commands.getstatusoutput("mysql -ueddy -poracle -e 'drop user haproxy'")
    i += 1    
    time.sleep(1)
crpntab -e
*    *    *    *    *           /usr/local/haproxy/sbin/check_mysql_status.py






© 著作权归作者所有

共有 人打赏支持
eddy_linux
粉丝 19
博文 135
码字总数 188789
作品 0
成都
程序员
Zabbix 检测Mysql数据库的主从同步

在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成检测网站正常运行的...

levinbin
06/26
0
0
脚本分享-MYSQL服务+主从+告警通知监控

1、配置MYSQL本地免密登录 账号密码会信息会记录到用户家目录下的".mylogin.cnf"文件中,若你想重新输入密码登录的话则删除此文件即可。 2、配置邮件转发 我们需要安装邮件客户端软件"Mailx"...

乘_风
07/24
0
0
mysql 主从复制配置,以及常见问题解决!

一:我的mysql 5.7.15 ,系统是centos6.5 主从复制配置步骤: http://blog.csdn.net/lyscforever/article/details/52216929 瞅清楚!配置不要出错!! 二:遇到的问题 Got fatal error 1236...

洋哥6
2016/09/27
27
0
nagios监控mysql主从

nagios监控mysql的主从,我这里介绍两种方法,一种是用nagios自带监控mysql 的插件实现,另一种是自己写脚本,下面是两种方法的具体实现过程: 一、nagios自带监控mysql的插件实现 1、编辑/...

kisops
2013/08/25
0
0
MySQL MHA: 一种master高可用的主从复制解决方案

大纲 前言 MHA的架构 环境部署 实验步骤 总结 前言 上篇文章我们实现了的主从复制, 但是我们之前就说过, 主从复制是有很多问题的, 我们这篇文章为大家介绍一如何使用来实现复制集群的高可用 ...

vinci321
05/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 小心着凉 @红薯

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:5.33起,其声呜呜然,如怨如慕,如泣如诉。余音袅袅,不绝如缕。分享Arch Enemy的单曲《Bridge Of Destiny (2009)》 《Bridge Of...

小小编辑
今天
170
4
what f,,

anlve
今天
2
0
初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
14
0
现场看路演了!

HiBlock
昨天
21
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部