博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xtradb+Haproxy高可用数据库集群(四)集群zabbix监控篇
阅读量:7208 次
发布时间:2019-06-29

本文共 2639 字,大约阅读时间需要 8 分钟。

xtradb cluster集群zabbix监控

监控指标

官网参考地址:

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

 

1、报警参数

每个集群节点状态:

 != Primary

 != ON

 != ON

 

复制冲突过高

 

流量控制信息

 

复制队列大小

 

2、长期图表收集参数

队列大小

 

 

流量控制

 

本节点进出交换数量

 

进出交换的字节数

 

复制冲突

 

 

Zabbix监控脚本

[root@yang-219 ~]# 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,osimport commands###variable   数据库及监控项变量定义区域mysql_user='sstuser'mysql_pass='s3cret'mysql_host='localhost'mysql_port='3306'monit_message='''wsrep_cluster_statuswsrep_connectedwsrep_readywsrep_local_cert_failureswsrep_local_bf_abortswsrep_flow_control_sentwsrep_flow_control_recvwsrep_local_recv_queuewsrep_local_recv_queuewsrep_local_send_queuewsrep_flow_control_sentwsrep_flow_control_recvwsrep_replicatedwsrep_receivedwsrep_replicated_byteswsrep_received_byteswsrep_local_cert_failureswsrep_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=10051timestamp = 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_cmdos.popen(send_data_cmd)

 

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

转载地址:http://qraum.baihongyu.com/

你可能感兴趣的文章
[C语言] 数据结构-算法效率的度量方法-事前分析估算方法
查看>>
js_实用
查看>>
基础权限管理
查看>>
navicat for mysql快捷键
查看>>
PHP中设置时区方法小结
查看>>
netty源码分析
查看>>
linux-2.6内核驱动学习——jz2440之输入子系统
查看>>
Sizeof与Strlen的区别与联系
查看>>
Hadoop- NameNode和Secondary NameNode元数据管理机制
查看>>
python中socket模块详解
查看>>
Android 四大组件 (三) BroadcastReceiver 介绍
查看>>
一个友盟BUG的思考和分析:Invalid update
查看>>
读取对象
查看>>
切换带空格的目录下
查看>>
Nginx 在ubuntu14.04下的安装
查看>>
51nod 1100:斜率最大
查看>>
简单工厂模式(C++)
查看>>
关于Java中的Arrays.copyOfRange()方法
查看>>
正确地黑C
查看>>
一个程序员的自白(三十而立)
查看>>