文档章节

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

eddy_linux
 eddy_linux
发布于 2015/11/26 00:31
字数 482
阅读 439
收藏 11
点赞 0
评论 0
#想法:让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
粉丝 18
博文 135
码字总数 188789
作品 0
成都
程序员
mysql 主从复制配置,以及常见问题解决!

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

洋哥6 ⋅ 2016/09/27 ⋅ 0

nagios监控mysql主从

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

kisops ⋅ 2013/08/25 ⋅ 0

MySQL MHA: 一种master高可用的主从复制解决方案

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

vinci321 ⋅ 05/02 ⋅ 0

redis 集群之sentinel+脚本切换实现高可用切换

环境: 真实IP:10.1.4.25 10.1.4.26 10.1.4.27 10.1.4.28 vip: 10.1.4.85 10.1.4.86 10.1.4.87 监控机:10.1.3.185 目的:通过redis-sentinel+脚本实现高可用故障切换! 主从搭建(省略) ...

tiger2013 ⋅ 2015/10/30 ⋅ 0

30道shell编程题目

题目出自:http://oldboy.blog.51cto.com/2561410/1632876 提供自己做的答案,仅供学习测试用。 企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给...

出VU时代 ⋅ 2016/09/25 ⋅ 0

使用zabbix监控mysql主从状态

公司mysql架构为一主多从。在日常使用过程中我们经常会遇到主从不同步的情况,为了及时处理此问题现使用zabbix监控mysql主从状态并设置触发器,如有异常则发送邮件报警。 我们都知道使用命令...

蜗牛的嘲讽 ⋅ 2017/01/03 ⋅ 0

企业中MySQL高可用集群架构三部曲之MM+keepalived

各位老铁们,老张与大家又见面了。看到各位在博客里面给我的留言和访问量的情况,我很是欣慰,也谢谢大家对我的认可。我写这些博客,就是想把自己对于MySQL数据库的一些看法和自己平时的实战...

superZS ⋅ 2017/08/03 ⋅ 0

如何监控MySQL主从同步情况

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

lwaif ⋅ 2016/03/03 ⋅ 0

shell监控MySQL主从状态脚本两则

内容为自己的一点总结,如有不对欢迎狠劲儿拍砖 本文来自http://yijiu.blog.51cto.com/转载请经博主同意 监控主从复制正常与否 相比各位都应该知道,监控主从是否工作正常,涉及命令如下: ...

zuzhou ⋅ 2014/11/06 ⋅ 0

centos7安装配置nginx+keepalived集群

关闭防火墙(如果因为其他原因不关闭,也请不要禁止80端口):systemctl stop firewalld.service 禁止防火墙自动启动:systemctl disable firewalld.service 查看系统版本 cat /etc/redhat-...

秦时明月路 ⋅ 06/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

istio 文档

https://istio.io/docs/concepts/ https://istio.io/docs/concepts/traffic-management/handling-failures/ https://istio.io/docs/concepts/traffic-management/rules-configuration/......

xiaomin0322 ⋅ 19分钟前 ⋅ 0

编程语言的作用及与操作系统和硬件的关系

一、编程语言的作用及与操作系统和硬件的关系 作用:编程语言是计算机语言,是一种程序员与计算机之间沟通的介质,通过编程语言可以使得计算机能够根据人的指令一步一步去工作,完成某种特定...

slagga ⋅ 30分钟前 ⋅ 0

runtime实现按钮点击事件

也不能说是实现吧,,,就是有点类似于RAC里边的写法,不用给btn添加另外的点击事件,就那个add...select...这样子很不友好,来看下代码: [self.btn handleControlEvent:UIControlEventTou...

RainOrz ⋅ 30分钟前 ⋅ 0

Windows系统运维转linux系统运维的经历

开篇之前,首先介绍一下我的背景把:我是一个三线城市的甲方运维。最近,在《Linux就该这么学》书籍的影响下和朋友小A(Linux运维已经三年了,工资也比我的高很多)的影响下,决定转行。最近...

linux-tao ⋅ 31分钟前 ⋅ 0

zip压缩工具,tar打包工具

zip压缩工具 zip打包工具跟前面说到的gzip,bz2,xz 工具最大的不一样是zip可以压缩目录。如果没有安装,需要使用yum install -y zip 来安装。安装完之后就可以直接使用了,跟之前提到的压缩...

李超小牛子 ⋅ 39分钟前 ⋅ 0

使用npm发布自己的npm组件包

一、注册npm账号 官网:https://www.npmjs.com/signup 注册之后需要进行邮箱验证,否则后面进行组件包发布时候会提示403错误,让进行邮箱核准。 二、本地新建一个文件夹,cd进入后使用npm i...

灰白发 ⋅ 41分钟前 ⋅ 0

010. 深入JVM学习—垃圾收集策略概览

1. 新生代可用GC策略 1. 串行GC(Serial Copying) 算法:复制(Copying)清理算法; 操作步骤: 扫描年轻代中所有存活的对象; 使用Minor GC进行垃圾回收,同时将存活对象保存到“S0”或“S...

影狼 ⋅ 41分钟前 ⋅ 0

JVM性能调优实践——JVM篇

在遇到实际性能问题时,除了关注系统性能指标。还要结合应用程序的系统的日志、堆栈信息、GClog、threaddump等数据进行问题分析和定位。关于性能指标分析可以参考前一篇JVM性能调优实践——性...

Java小铺 ⋅ 42分钟前 ⋅ 0

误关了gitlab sign-in 功能的恢复记录

本想关sign-up的,误点了sign-in 退出后登录界面提示: No authentication methods configured 一脸懵逼.. 百度后众多方案说修改application_settings 的 signin_enabled字段; 实际上新版本字段...

铂金蛋蛋 ⋅ 43分钟前 ⋅ 0

登录后,后续请求接口没有带登录cookie可能原因

1.XMLHttpRequest.withCredentials没设置好,参考https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/withCredentials...

LM_Mike ⋅ 43分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部