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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/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 
in 
monit_list:
  
#循环状态列表,取出指标当前的值
  
for 
in 
global_status:
         
if 
"%s\t"
%
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里每分钟执行一次即可。

     本文转自杨云1028 51CTO博客,原文链接:http://blog.51cto.com/yangrong/1684141,如需转载请自行联系原作者

你可能感兴趣的文章
小程序: 查看正在写的页面
查看>>
Jenkins持续集成环境部署
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
eclipse的maven、Scala环境搭建
查看>>
架构师之路(一)- 什么是软件架构
查看>>
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>
10、程序员和编译器之间的关系
查看>>
配置 RAILS FOR JRUBY1.7.4
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>