首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Prometheus监控DBLE

使用Prometheus监控DBLE

作者头像
保持热爱奔赴山海
发布于 2019-09-17 06:54:56
发布于 2019-09-17 06:54:56
86500
代码可运行
举报
文章被收录于专栏:数据库相关数据库相关
运行总次数:0
代码可运行

DBLE是一款基于MyCAT改进的MySQL分库分表中间件,但是并没有一个配套的监控软件。

这里我分享下我们生产/测试环境在使用的监控方法

需要用到的软件:

Prometheus、 pushgateway、grafana、【alertmanager可选】  (应该很多公司已经在用这套组件)

下面是我采集dble数据的脚本,主要是通过9066管理端口去抓取数据,然后打点到pushgateway:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# 说明: 通过dble管理地址,将dble的基础数据采集到的,然后发送到 pushgateway 去存储。然后可以配合grafana来做展示
# 如果系统上没有nc命令,可以执行 yum install nmap-ncat 来安装

# PUSHGATEWAY_HOST的地址
PUSHGATEWAY_HOST=' 

# DBLE管理端口的连接方式
DBLE_USER='man1'
DBLE_PASS='123456'
DBLE_HOST='127.0.0.1'
DBLE_PORT='9066'

# 标识DBLE集群中的编号(相同DBLE_CLUSTER_NAME里面的DBLE_ID要唯一。用来标识不同DBLE集群内的dble节点,便于在 pushgateway 和 grafana 里面识别出这个metrics对应的dble实例)
DBLE_CLUSTER_NAME='usercenter'
DBLE_ID=3

############## 下面是具体的采集命令  #################
# 当前dble是否已down (1为宕机 0为正常): 
mysql -u${DBLE_USER} -p${DBLE_PASS} -h ${DBLE_HOST} --port ${DBLE_PORT} 2>/dev/null -BNe "show @@version " dble_down=$?

# 当前dble前端的连接数: 
front_conn=$(mysql -u${DBLE_USER} -p${DBLE_PASS} -h ${DBLE_HOST} --port ${DBLE_PORT} 2>/dev/null -BNe "show @@connection " |grep 8066 | wc -l)

# dble和后端的总连接数:
backend_conn=$(mysql -u${DBLE_USER} -p${DBLE_PASS} -h ${DBLE_HOST} --port ${DBLE_PORT} 2>/dev/null -BNe "show @@backend " | wc -l)

# server status状态值
server_status=`mysql -u${DBLE_USER} -p${DBLE_PASS} -h ${DBLE_HOST} --port ${DBLE_PORT} 2>/dev/null -BNe "show @@server "`
# 已使用堆内存
used_mem=`echo $server_status| awk '{print $4}'`
# 总共的堆内存
total_mem=`echo $server_status| awk '{print $5}'`
# 最大可用堆内存
max_mem=`echo $server_status| awk '{print $6}'`

## 输出到 pushgateway
cat <<EOF | curl --data-binary @- ${PUSHGATEWAY_HOST}
# TYPE dble_down gauge
dble_down{cluster="${DBLE_CLUSTER_NAME}", instance="dble${DBLE_ID}"} ${dble_down}
# TYPE front_conn gauge
dble_front_conn{cluster="${DBLE_CLUSTER_NAME}", instance="dble${DBLE_ID}"} ${front_conn}
# TYPE backend_conn gauge
dble_backend_conn{cluster="${DBLE_CLUSTER_NAME}", instance="dble${DBLE_ID}"} ${backend_conn}
# TYPE used_mem gauge
dble_used_mem{cluster="${DBLE_CLUSTER_NAME}", instance="dble${DBLE_ID}"} ${used_mem}
# TYPE total_mem gauge
dble_total_mem{cluster="${DBLE_CLUSTER_NAME}", instance="dble${DBLE_ID}"} ${total_mem}
# TYPE max_mem gauge
dble_max_mem{cluster="${DBLE_CLUSTER_NAME}", instance="dble${DBLE_ID}"} ${max_mem}
EOF

然后,将上面这个脚本加到DBLE所在服务器的cronjob里面,每分钟采样一次

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/1  * * * sh /root/scripts/stats.sh >/dev/null 2>&1

下图,是我在测试环境截的图

抓取到数据后,我们就可以在Prometheus的web界面里面写表达式计算metrics了

下图是我直接在grafana里面画的图

涉及到的表达式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dble_down{cluster='usercenter',instance='dble3'}
dble_front_conn{cluster='usercenter',instance='dble3'}
dble_backend_conn{cluster='usercenter',instance='dble3'}
dble_max_mem{cluster='usercenter',instance='dble3'}
dble_used_mem{cluster='usercenter',instance='dble3'}
dble_total_mem{cluster='usercenter',instance='dble3'}

另外, 我们有多个dble实例的话,建议grafana面板上通过动态获取的方法,这样就不用画多个dashboard了。具体操作方法,可以参考我之前写的https://cloud.tencent.com/developer/article/1506835

除此之外, DBLE所在主机的CPU 内存 磁盘之类的基础监控,我们可以使用node_exporter来采集,也是必须采集的指标。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用Prometheus监控DBLE
DBLE是一款基于MyCAT改进的MySQL分库分表中间件,但是并没有一个配套的监控软件。
保持热爱奔赴山海
2019/09/12
8920
使用Prometheus监控DBLE
分布式 | zabbix 监控 dble
系统运维工程师,目前就职于互联网教育行业,负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率。
爱可生开源社区
2021/12/07
1910
分布式 |   zabbix 监控 dble
腾讯游戏原来是这样使用 Prometheus 的!(下)
背景 随着游戏业务不断增多,业务使用的环境也越来越复杂。此时对于监控的难度也是逐步增大,一方面是监控的数据量大;另一方面是多云之间对于监控及时性的解决方案。腾讯游戏团队与腾讯云监控团队协作,深入研究如何持续解决游戏运维监控问题。最终我们通过构建 Prometheus 监控专项能力,提供免搭建的高效运维能力,降低了全球业务监控复杂度,提升了监控及时性等棘手问题。 上期我们介绍了 Prometheus 的基础,我简单回顾一下上期重点知识,Prometheus 的四个指标类型分为 Counter(计数器) Gau
腾讯云可观测平台
2022/06/29
8800
腾讯游戏原来是这样使用 Prometheus 的!(下)
7.Prometheus监控进阶之自定义监控业务应用
描述: Prometheus 可以通过直接测控或者客户端库来测控业务或者应用,目前我们可以采用多种不同语言编写客户端库包括(GO/Python/Java/Ruby)等客户端;
全栈工程师修炼指南
2022/09/29
2.3K0
7.Prometheus监控进阶之自定义监控业务应用
5.Prometheus监控入门之企业监控实战采集展示
描述: 本章主要讲解和实践Prometheus在企业中的应用场景的复现,采用了docker-compose的资源清单进行快速构建prometheus_server、prometheus_pushgateway、prometheus_alertmanager、grafana等环境。
全栈工程师修炼指南
2022/09/29
9540
5.Prometheus监控入门之企业监控实战采集展示
Prometheus 监控实践
监控作为底层基础设施的一环,是保障生产环境服务稳定性不可或缺的一部分,线上问题从发现到定位再到解决,通过监控和告警手段可以有效地覆盖了「发现」和「定位」,甚至可以通过故障自愈等手段实现解决,服务开发和运维人员能及时有效地发现服务运行的异常,从而更有效率地排查和解决问题。
xjjdog
2020/11/09
1.6K0
Prometheus 监控实践
分布式 | 如何为 DBLE 搭建 JVM 指标监控系统
爱可生 DBLE 团队开发成员,主要负责 DBLE 需求开发,故障排查和社区问题解答。
爱可生开源社区
2023/08/18
2900
分布式 | 如何为 DBLE 搭建 JVM 指标监控系统
SQLServer采集data和log的体积推送到prometheus
生产上需要采集各个库的datasize和logsize,便于DBA提前介入优化(例如数据文件最近为啥体积暴涨、事务日志为啥一直在涨or收缩失败?)
保持热爱奔赴山海
2024/10/01
1130
2.Prometheus监控入门之监控配置说明
描述: 如果我们采用prometheus提供的二进制可执行文件进行搭建prometheus服务器,可以按照以下流程进行操作运行,二进制Release下载地址: https://github.com/prometheus/prometheus/releases
全栈工程师修炼指南
2022/09/29
5.9K0
2.Prometheus监控入门之监控配置说明
Python调用Prometheus监控数据并计算
Prometheus是一套开源监控系统和告警为一体,由go语言(golang)开发,是监控+报警+时间序列数 据库的组合。适合监控docker容器。因为kubernetes(k8s)的流行带动其发展。
钢铁知识库
2022/08/20
1.6K0
记一次open-falcon手动push数据 原
http://book.open-falcon.org/zh/usage/data-push.html http://book.open-falcon.org/zh/philosophy/tags-and-hostgroup.html https://github.com/GuyCheung/falcon-ngx_metric
阿dai学长
2019/04/03
1.1K0
Prometheus入门
Prometheus(普罗米修斯)这款开源监控工具,名字和功能一样酷,本文是一个干货入门,动手来部署一个实验环境。用Prometheus+Grafana来监控MySQL。 这里安利一波docker 和 vagrant ,实在是开发的利器,校长用了都说好!
麒思妙想
2020/07/10
1.4K0
使用sql_exporter+Prometheus监控sql server
最近接管了一套sql server alwayson集群,需要加些监控和告警,简单研究了下github的方案,发现了这种sql_exporter这种更简单,扩展性也超级强。(另一种是通过nodejs的方案监控,费事点,可扩展性也不太好,这里直接pass掉)。
保持热爱奔赴山海
2023/07/20
2.1K8
使用sql_exporter+Prometheus监控sql server
实战 Prometheus 搭建监控系统
Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个在线音乐分享的平台,类似于做视频分享的 YouTube,由于他们在微服务架构的道路上越走越远,出现了成百上千的服务,使用传统的监控系统 StatsD 和 Graphite 存在大量的局限性,于是他们在 2012 年开始着手开发一套全新的监控系统。Prometheus 的原作者是 Matt T. Proud,他也是在 2012 年加入 SoundCloud 的,实际上,在加入 SoundCloud 之前,Matt 一直就职于 Google,他从 Google 的集群管理器 Borg 和它的监控系统 Borgmon 中获取灵感,开发了开源的监控系统 Prometheus,和 Google 的很多项目一样,使用的编程语言是 Go。
Spark学习技巧
2021/03/05
1.3K0
实战 Prometheus 搭建监控系统
破茧成蝶:PgBouncer在GreenPlum中的部署与优化,携手Prometheus+Grafana构建全方位性能仪表板
PgBouncer工具可以用于PostgreSQL和Greenplum数据库连接的连接池。
AiDBA宝典
2024/04/25
5840
破茧成蝶:PgBouncer在GreenPlum中的部署与优化,携手Prometheus+Grafana构建全方位性能仪表板
使用 Prometheus + Grafana 打造 TiDB 监控整合方案
Prometheus + Grafana 作为一套普适的监控系统广泛应用于各种应用环境中。
PingCAP
2021/06/07
2.3K0
1.Prometheus监控入门之介绍整体架构及安装
[TOC] 0x00 前言简述 0.学习导读 Q: 什么是监控? 描述: 一般的将这类可操作的计算机系统归纳为以下四个特征; 1.告警: 掌握故障的发生时间并通知相应人员(监控的重要目标)。 2.调
全栈工程师修炼指南
2022/09/29
7990
1.Prometheus监控入门之介绍整体架构及安装
Actuator + Prometheus + Grafana搭建微服务监控平台
本文的主要目的是实现微服务的监控,简单了解了上述工具的概念后,我们就来动手实践一下。首先创建一个简单的Spring Boot项目,其主要依赖如下:
端碗吹水
2020/09/23
2.8K0
Actuator + Prometheus + Grafana搭建微服务监控平台
再有谁说不熟悉夜莺( Nightingale )监控系统,就把这个给他扔过去!
夜莺监控( Nightingale )是一款国产、开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体。于 2020 年 3 月 20 日,在 github 上发布 v1 版本,已累计迭代 60 多个版本。从 v5 版本开始与 Prometheus、VictoriaMetrics、Grafana、Telegraf、Datadog 等生态紧密协同集成,提供开箱即用的企业级监控分析和告警能力,已有众多企业选择将 Prometheus + AlertManager + Grafana 的组合方案升级为使用夜莺监控。
民工哥
2023/11/16
18.2K0
再有谁说不熟悉夜莺( Nightingale )监控系统,就把这个给他扔过去!
Prometheus 监控架构 -- 生产级别
Prometheus 是由前 Google 工程师从 2012 年开始在 Soundcloud 以开源软件的形式进行研发的系统监控和告警工具包,自此以后,许多公司和组织都采用了 Prometheus 作为监控告警工具。Prometheus 的开发者和用户社区非常活跃,它现在是一个独立的开源项目,可以独立于任何公司进行维护。为了证明这一点,Prometheus 于 2016 年 5 月加入 CNCF 基金会,成为继 Kubernetes 之后的第二个 CNCF 托管项目.
用户3013098
2022/06/01
7120
Prometheus 监控架构  -- 生产级别
推荐阅读
相关推荐
使用Prometheus监控DBLE
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验