Xtradb+Haproxy高可用数据库集群(四)集群zabbix监控篇

xtradb cluster集群zabbix监控

监控指标

官网参考地址:

https://www.percona.com/doc/percona-xtradb-cluster/5.6/manual/monitoring.html

1、报警参数

每个集群节点状态:

wsrep_cluster_status != Primary

wsrep_connected != ON

wsrep_ready != ON

复制冲突过高

wsrep_local_cert_failures

wsrep_local_bf_aborts

流量控制信息

wsrep_flow_control_sent

wsrep_flow_control_recv

复制队列大小

wsrep_local_recv_queue

2、长期图表收集参数

队列大小

wsrep_local_recv_queue

 wsrep_local_send_queue

流量控制

wsrep_flow_control_sent

wsrep_flow_control_recv

本节点进出交换数量

wsrep_replicated

wsrep_received

进出交换的字节数

wsrep_replicated_bytes

wsrep_received_bytes

复制冲突

wsrep_local_cert_failures

wsrep_local_bf_aborts

Zabbix监控脚本

[[email protected] ~]# cat monit_xtradb.py

#!/usr/bin/python env
#coding=utf-8
#time: 2015-8-12
#function: monit xtradb cluster status
#author: yangr
 
import re,time,os
import commands
###variable   数据库及监控项变量定义区域
mysql_user=‘sstuser‘
mysql_pass=‘s3cret‘
mysql_host=‘localhost‘
mysql_port=‘3306‘
monit_message=‘‘‘
wsrep_cluster_status
wsrep_connected
wsrep_ready
wsrep_local_cert_failures
wsrep_local_bf_aborts
wsrep_flow_control_sent
wsrep_flow_control_recv
wsrep_local_recv_queue
wsrep_local_recv_queue
wsrep_local_send_queue
wsrep_flow_control_sent
wsrep_flow_control_recv
wsrep_replicated
wsrep_received
wsrep_replicated_bytes
wsrep_received_bytes
wsrep_local_cert_failures
wsrep_local_bf_aborts
‘‘‘
monit_list=monit_message.split()
####zabbix 相关参数定义区域
zabbix_agent_file=‘/usr/local/zabbix/etc/zabbix_agentd.conf‘
zabbix_server=commands.getstatusoutput(‘‘‘grep ‘^ServerActive‘ %s|awk -F[=] ‘{print $2}‘ ‘‘‘%zabbix_agent_file)[1].strip()
zabbix_hostname=commands.getstatusoutput(‘‘‘grep ‘^Hostname‘ %s|awk -F[=] ‘{print $2}‘  ‘‘‘%zabbix_agent_file)[1].strip()
zabbix_server_port=10051
timestamp = int(time.time())
tmp_file_path=‘/tmp/xtradb_cluster_status.txt‘
zabbix_hostname=‘zabbix_server‘
zabbix_server=‘zabbix_server‘
 
####end variable变量定义结束
 
#获取全局状态信息
status,global_status=commands.getstatusoutput(‘‘‘ mysql -u%s -p%s -h%s -P%s -e ‘show global status like "wsrep%%";‘ ‘‘‘%(mysql_user,mysql_pass,mysql_host,mysql_port))
#print ‘‘‘ mysql -u%s -p%s -h%s -P%s -e ‘show global status like "wsrep%%";‘ ‘‘‘%(mysql_user,mysql_pass,mysql_host,mysql_port)
#print global_status
 
global_status=global_status.split(‘\n‘)
#print global_status
#清空文件
with open(tmp_file_path,‘wb‘) as f:
         f.write(‘‘)
#循环要监控的指标
for i in monit_list:
  #循环状态列表,取出指标当前的值
  for n in global_status:
         if "%s\t"%i in n:
                   value=re.sub(r‘.*\t‘,‘‘,n).strip()
                   #print i,‘value:‘,value
                   #把值写入临时文件
                   with open(tmp_file_path,‘ab‘) as f:
                            f.write(‘%s %s %s %s\n‘%(zabbix_hostname,i,timestamp,value))
        
#把临时文件通过zabbix_sender命令发送到server端
send_data_cmd=‘/usr/local/zabbix/bin/zabbix_sender -vv -z %s -p %s -T -i %s‘%(zabbix_server,zabbix_server_port,tmp_file_path)
print ‘/usr/local/zabbix/bin/zabbix_sender -vv -z %s -p %s -T -i %s‘%(zabbix_server,zabbix_server_port,tmp_file_path)
#print send_data_cmd
os.popen(send_data_cmd)

脚本里monit_message对应的监控项,需要在zabbix服务器上添加对应的监控项,然后把这个脚本放到crontab里每分钟执行一次即可。

时间: 2024-10-12 16:06:01

Xtradb+Haproxy高可用数据库集群(四)集群zabbix监控篇的相关文章

Xtradb+Haproxy高可用数据库集群(一)xtradb部署篇

部署xtradb cluster时,建议使用3台及以上服务器.原因有二: 1.默认情况下,如果一个同伴死去或者两个节点之间的通信不稳定,两个节点都将不接受查询.当然这个可以通过添加忽略仲裁来解决: set globalwsrep_provider_options="pc.ignore_quorum=true"; 2.当宕掉的那台启动时,会进行同步,负责提供数据的节点角色变为Donor, Donor会有一定的时间无法写入.断开情况如下: Mysqldump 适合小库 Rsync    

Xtradb+Haproxy高可用数据库集群(二)haproxy负载均衡篇

Xtradb集群部署完成后,3台机器都能同时读写,此时需要在前端搭建haproxy来进行负载均衡. 官网haproxy配置参考地址: https://www.percona.com/doc/percona-xtradb-cluster/5.6/howtos/virt_sandbox.html Haproxy服务器配置 拿一台机器用作haproxy,此处是192.168.6.219. 安装haproxy yum install haproxy -y 配置文件: [[email protected]

Xtradb+Haproxy高可用数据库集群(三)sysbench性能测试篇

xtradb sysbench性能测试 安装sysbench,最新版本是0.5 yum install sysbench -y 初始化测试表 sysbench --test=/usr/share/doc/sysbench/tests/db/oltp.lua --oltp-table-size=1000000 --mysql-table-engine=innodb --mysql-user=sysbench  --mysql-password=sysbench --mysql-port=3306 

我们的一个已投产项目的高可用数据库实战 - mongo 副本集的搭建详细过程

我们的 mongo 副本集有三台 mongo 服务器:一台主库两台从库.主库进行写操作,两台从库进行读操作(至于某次读操作究竟路由给了哪台,仲裁决定),实现了读写分离.这还不止,如果主库宕掉,还能实现不需要用户干预的情况下,将主库自动切换到另外两台从库中的某一台,真正实现了 db 的高可用. 1. 背景 1.1 环境 CPU核数:4 内存配置:8G 带宽:100MB 磁盘:系统盘 40G,数据盘 180G 操作系统版本:Ubuntu 14.04 64位 1.2 系统部署结构图 2. MongoD

HAProxy高可用负载均衡集群部署

HAProxy高可用负载均衡集群部署 基本信息: 系统平台:VMware WorkStation 系统版本: CentOS Linux release 7.2.1511 (Core) 内核版本: 3.10.0-327.el7.x86_64 集群架构: 前端:HAProxy 1.虚拟FQDN:www.simpletime.net 2.VIP:192.168.39.1:DIP:172.16.39.50 3.调度服务器:Varnish1.Varnish2 4.调度算法:URL_Hash_Consist

负载均衡器HAProxy,高可用集群keepalived,keepalived+lvs

负载均衡器:nginx/haproxy/lvs/F5代理:正向代理:帮助客户端缓存服务器上的数据反向代理:帮助服务器缓存数据 HAProxy:1.安装[[email protected] bin]# yum install -y haproxy2.修改配置文件[[email protected] bin]# vim /etc/haproxy/haproxy.cfg 把# main frontend which proxys to the backends后面部分全部删除,增加以下内容:定义一个监

构建高可用的LVS负载均衡集群 入门篇

一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能. LVS 集群采用IP负载和基于内容请求分

高可用,多路冗余GFS2集群文件系统搭建详解

2014.06 标签:GFS2 multipath 集群文件系统 cmirror 实验拓扑图: 实验原理: 实验目的:通过RHCS集群套件搭建GFS2集群文件系统,保证不同节点能够同时对GFS2集群文件系统进行读取和写入,其次通过multipath实现node和FC,FC和Share Storage之间的多路冗余,最后实现存储的mirror复制达到高可用. GFS2:全局文件系统第二版,GFS2是应用最广泛的集群文件系统.它是由红帽公司开发出来的,允许所有集群节点并行访问.元数据通常会保存在共享

构建高可用的LVS负载均衡集群 进阶篇

一.lvs组件介绍 lvs的组件由两部分组成:工作在内核空间的ipvs模块和工作在用户空间ipvsadm工具.其中ipvsadm是规则生成工具,而ipvs是一个使规则生效的工具. 二.ipvsadm详解 构建高可用的LVS负载均衡集群 进阶篇,布布扣,bubuko.com