文档章节

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

eddy_linux
 eddy_linux
发布于 2015/11/26 00:31
字数 482
阅读 463
收藏 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






© 著作权归作者所有

共有 人打赏支持
上一篇: python 系统监控
下一篇: haproxy 透明代理
eddy_linux
粉丝 21
博文 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)请戳(这里) 【今日歌曲】 @达尔文 :分享Roy Orbison的单曲《She's a Mystery to Me》 《She's a Mystery to Me》- Roy Orbison 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
29分钟前
10
2
Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
12
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
18
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部