写点什么

TiDB 多集群告警监控 - 初章 - 监控融合、自动告警处理

  • 2023-08-04
    北京
  • 本文字数:1625 字

    阅读完需:约 5 分钟

作者: longzhuquan 原文来源:https://tidb.net/blog/2697c4d6

背景

随着公司 XC 改造步伐的前进,越来越多的业务选择 TiDB,由于各个业务之间需要物理隔离,避免不了的 TiDB 集群数量越来越多。虽然每套 TiDB 集群均有两个详细的监控 Dashboard、Grafana,但对于运维来说几十套集群的监控、告警、巡检均需消耗巨大的精力。

“融合工具” - 拥抱开源

虽然 TiDB 本身的 Prometheus 也可进行数据的整合,但场景太过于单一,达不到预想效果。对于运维以及业务来说几十套集群上百个节点均需要做到告警消息及时告知、监控大盘、可在单一页面上便捷的查看所有 Grafana 信息、Dashboard 监控可进行语句级别的查询。TiDB 是一款优秀的开源软件,本着拥抱开源的心态,经过大量的调研以及基于成本的考量,最终选择了在监控领域的开源产品夜莺。夜莺产品架构如下:



选择夜莺监控主要有两点:1、兼容多个数据源接口,Prometheus、Zabbix、ClickHouse、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 部分功能实现,做到一个页面即可查看几十甚至上百节点集群的难题。


发布于: 刚刚阅读数: 2
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TiDB 多集群告警监控-初章-监控融合、自动告警处理_监控_TiDB 社区干货传送门_InfoQ写作社区