TiDB 多集群告警监控-初章-监控融合、自动告警处理
author:longzhuquan
背景
随着公司XC改造步伐的前进,越来越多的业务选择 TiDB,由于各个业务之间需要物理隔离,避免不了的 TiDB 集群数量越来越多。虽然每套 TiDB 集群均有两个详细的监控 Dashboard、Grafana,但对于运维来说几十套集群的监控、告警、巡检均需消耗巨大的精力。
“融合工具” - 拥抱开源
虽然 TiDB 本身的 Prometheus 也可进行数据的整合,但场景太过于单一,达不到预想效果。对于运维以及业务来说几十套集群上百个节点均需要做到告警消息及时告知、监控大盘、可在单一页面上便捷的查看所有Grafana信息、Dashboard监控可进行语句级别的查询。TiDB 是一款优秀的开源软件,本着拥抱开源的心态,经过大量的调研以及基于成本的考量,最终选择了在监控领域的开源产品夜莺。夜莺产品架构如下:

选择夜莺监控主要有两点:
1、兼容多个数据源接口,Prometheus、Zabbix、ES 等。这使得对于多套集群的 TiDB 无需做额外改动,只需要将 Prometheus 数据源接入即可获得所有采集数据。从而进行后续告警数据加工,且 ES 等数据源的支持也可为后续多集群日志整合提供可能性。
2、完全开源,成本低。无论是适配成本以及资源成本在同类产品中都占据优势。

工具安装
工具安装
详细的安装步骤请参考官网 安装部署详解 这里不在赘述。
由于整体项目为XC,监控也需要进行XC考量,所以将监控底层存储 MYSQL 替换为TiDB。Redis替换为某国产中间价。实际测试可百分百兼容。
业务组设计
整个监控的告警、监控不仅仅是面向 DBA,对应业务组的重要应用人员也有权知道后端数据库资源使用情况。业务组之间耦合性较低,每个业务仅关心自己的业务,DBA 则需要管控所有集群。针对此种场景在进行监控具体指标设计之前,需要按照不同需求进行业务组、角色、团队设计。
设计规则
用户管理:1、LDAP用户登录帐号,2、虚拟机器人+token地址(内部飞书告警)


团队管理:以一级部门名称+产品名称+业务系统命名(对应飞书接收群组名称),对应告警接收组 eg :ITXX部门- TiDB-XXX业务系统

业务组管理:以产品名称+一级部门+产品名称+系统名称命名(对应告警规则组),此处第一个产品名称为自动折叠设置。

角色管理:告警机器人账户、业务组人员账户、监控管理员账户,不同角色不同权限。

告警规则制定
制定完成业务组后,第一步实现飞书自动告警功能。
添加数据源
为方便管理数据源命名规范为:
部门_中间件名_业务系统_环境_IP(prometheus)
eg:XXIT_TiDB_ JAVA_PRO_127_0_0_1

添加告警规则
告警管理-告警规则-点击对于业务组-新增,同样为后续运维性考量,需严格设置规范命名规则。其中PromQL规则则按照自我需求编写即可,后续我司规则将会提交至开源社区,感兴趣可参考。
规则名称:业务系统描述+告警简介
备注:对应告警集群
数据源:只关联业务系统对应的数据源
告警接收组:对应业务组



告警模板制定(此处可根据需求自行编写通知模板)
系统配置-通知模板-飞书
告警环境: 测试环境
服务名称: {{index .TagsMap "paasName"}}{{index .TagsMap "serviceName"}}
级别状态: S{{.Severity}} {{if .IsRecovered}}Recovered {{else}}Triggered{{end}}
告警对象: {{if.TargetIdent}}{{.TargetIdent}} {{else}}{{index .TagsMap "instance"}}{{end}}
规则名称: {{.RuleName}}{{if .RuleNote}}
规则备注: {{.RuleNote}}{{end}}
监控指标: {{.TagsJSON}}
{{if .IsRecovered}}
恢复时间: {{timeformat .LastEvalTime}}
{{else}}
触发时间: {{timeformat .TriggerTime}}
触发时值: {{.TriggerValue}}
{{end}}
发送时间: {{timestamp}}
成果展示
告警管理-业务组告警规则-不同业务组不同集群全部整合

飞书告警效果

结语
本篇文章粗浅的介绍了如何通过夜莺补齐 TiDB 告警融合缺失的问题,当然文章篇幅有限,实际会有更多细节,如感兴趣欢迎垂询。
下一章将会介绍如何融合多集群 Grafana ,以及 Dashboard 部分功能实现,做到一个页面即可查看几十甚至上百节点集群的难题。
TiDB 多集群告警监控-初章-监控融合、自动告警处理的更多相关文章
- 菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章
菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章 cheungmine, 2014-10-26 在上一章中,我们准备好了计算机和软件.本章开始部署hadoop 高可用集群. 2 部署 ...
- 菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章
菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章 cheungmine, 2014-10-25 0 引言 在生产环境上安装Hadoop高可用集群一直是一个需要极度耐心和体力的细致工作 ...
- TiDB数据库集群安装以及注意事项
今天尝试安装tidb集群.详细的安装步骤我们参考:https://pingcap.com/docs-cn/op-guide/ansible-deployment/ . 不过安装之前需要一些注意事项. ...
- redis集群的远程管理与监控
一.redis集群的重要性 目前大部分的互联网平台,都会用到Redis内存数据库,以提高响应速度,提升用户使用体验. 为了实现Redis的高可用,通常都会布署Redis集群,使用Redis-Senti ...
- kubeadm搭建K8s集群及Pod初体验
基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...
- Standalone集群搭建和Spark应用监控
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6815920501530034696/ 承接上一篇文档<Spark词频前十的统计练习> Spark on ...
- Hadoop集群+Spark集群搭建(一篇文章就够了)
本文档环境基于ubuntu16.04版本,(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢) 一.准备 1.1 软件版本 Ub ...
- Redis集群(九):Redis Sharding集群Redis节点主从切换后客户端自动重新连接
上文介绍了Redis Sharding集群的使用,点击阅读 本文介绍当某个Redis节点的Master节点发生问题,发生主从切换时,Jedis怎样自动重连新的Master节点 一.步骤如下: 1.配 ...
- CHD-5.3.6集群上Flume的文件监控
收集hive的log hive的运行日志: /home/hadoop/CDH5.3.6/hive-0.13.1-cdh5.3.6/log/hive.log * memory *hdfs ...
- 如何扩展单个Prometheus实现近万Kubernetes集群监控?
引言 TKE团队负责公有云,私有云场景下近万个集群,数百万核节点的运维管理工作.为了监控规模如此庞大的集群联邦,TKE团队在原生Prometheus的基础上进行了大量探索与改进,研发出一套可扩展,高可 ...
随机推荐
- 第 9章 数据分析案例:Python 岗位行情
第 9章 数据分析案例:Python 岗位行情 9.1 数据爬取 (1)打开某招聘网站首页 https://www.lagou.com,选择"全国站",在搜索栏输入 Python, ...
- Java 断言 Assert 使用教程与最佳实践
本文收录于 Github.com/niumoo/JavaNotes,Java 系列文档,数据结构与算法! 本文收录于网站:https://www.wdbyte.com/,我的公众号:程序猿阿朗 作为一 ...
- 五福背后的 Web 3D 引擎 Oasis Engine 正式开源
简介: Oasis 从开源走向新的起点,用 3D 化的交互和表达让世界变得更美好. 相信大家已经体验了今年支付宝五福的活动,无论是今年的五福首页还是打年兽游戏都是由蚂蚁互动图形引擎(代号:Oasis ...
- Hologres揭秘:优化COPY,批量导入性能提升5倍+
简介: 揭秘Hologres优化COPY的技术原理,实现批量导入性能提升5倍+ Hologres(中文名交互式分析)是阿里云自研的一站式实时数仓,这个云原生系统融合了实时服务和分析大数据的场景,全面兼 ...
- 修改python别名
修改Python别名 发现课程提供的启动python程序的命令均为python3,而我们的环境中只能用python来启动 Python 解释器,可以通过修改python的别名来实现不同名称调用同一个程 ...
- VisualStudio 在 DebuggerDisplay 的属性更改业务逻辑将会让调试和非调试下逻辑不同
本文记录我写的逗比代码,我在 DebuggerDisplay 对应的属性的 get 方法上,在这个方法里面修改了业务逻辑,如修改界面元素,此时我在 VisualStudio 断点调试下和非断点调试下的 ...
- 2019-10-28-dotnet-代码调试方法
title author date CreateTime categories dotnet 代码调试方法 lindexi 2019-10-28 08:50:11 +0800 2019-6-5 9:4 ...
- STM32 ADC使用问题
基本信息 MCU:STM32F105R8T6 库:HAL 平台:MDK 精度:12位 问题一 现象: 在测量的时候,发现采样值在 1023 ~ 1042 和 1279 ~ 1290 两个区间之间无法测 ...
- [Oracle故障处理]ORA-30012: undo tablespace 'UNDOTBS1' does not exist
场景:用RMAN在异机上恢复数据. 错误信息如下: ORA-01092: ORACLE instance terminated. Disconnection forced ORA-30012: und ...
- vue2组件封装示例
组件封装注意事项: 1.props:属性.是父容器给子组件参数传递的桥梁 2.this.$emit:事件.子组件通知父容器事件发生,并给父容器传递数据和参数 3.子组件中经常要用watch监控数据变化 ...