PingCAP
  • PingCAP University
  • 文档
  • 案例
  • 社区
  • 博客
  • 关于
  • 问答
  • 联系我们
PingCAP
  • 文档
  • 案例
  • 社区
  • 博客
  • 关于
  • 问答
  • 联系我们
  • PingCAP University

Contact

  • Wechat qrCode

    微信扫一扫
    微信ID:pingcap2015

English
文档
v3.0 (stable) dev v2.1This doc does not exist in v2.1
  • 关于 TiDB
    • TiDB 简介
    • Benchmark 测试
      • 如何用 Sysbench 测试 TiDB
      • 如何对 TiDB 进行 TPC-C 测试
      • Sysbench 性能对比 - v3.0 对比 v2.1
      • TPC-C 性能对比 - v3.0 对比 v2.1
      • 线上负载与 `Add Index` 相互影响测试
      • TiDB in Kubernetes Sysbench 性能测试
      • DM 1.0-GA 性能测试
  • 主要概念
    • 整体架构
    • 核心特性
      • 水平扩展
      • 高可用
  • 操作指南
    • 快速上手
      • 创建集群
        • 使用 Docker Compose 部署 TiDB 集群
      • SQL 基本操作
      • 读取历史数据
      • TiDB Binlog 教程
      • TiDB Data Migration 教程
      • TiDB Lightning 教程
      • TiSpark 教程
    • 部署
      • 软硬件环境需求
      • 集群部署方式
        • 使用 Ansible 部署(推荐)
        • 使用 Ansible 离线部署
        • 使用 Docker 部署
      • 跨地域冗余
        • 跨数据中心部署方案
        • 配置集群拓扑
      • 使用 Ansible 部署 DM 集群
    • 配置
      • 时区
      • 内存控制
    • 安全
      • 安全传输层协议 (TLS)
        • 为 MySQL 客户端开启 TLS
        • 为 TiDB 组件间开启 TLS
      • 生成自签名证书
    • 监控
      • 概述
      • 监控 TiDB 集群
    • 迁移
      • 概述
      • 从 MySQL 迁移
        • 全量迁移
        • 增量复制
      • 从 Amazon Aurora MySQL 迁移数据
      • 从 CSV 迁移
    • 运维
      • Ansible 常见运维操作
      • 备份与恢复
      • 定位慢查询
    • 扩容缩容
      • 使用 Ansible 扩容缩容
    • 升级
      • 升级至 TiDB 3.0
    • 故障诊断
      • 集群配置诊断
      • TiDB Lightning 故障诊断
  • 参考手册
    • SQL
      • 与 MySQL 兼容性对比
      • SQL 语言结构
        • 字面值
        • Schema 对象名
        • 关键字和保留字
        • 用户自定义变量
        • 表达式语法
        • 注释语法
      • 数据类型
        • 概述
        • 默认值
        • 数值类型
          • `BIT`
          • `BOOL|BOOLEAN`
          • `TINYINT`
          • `SMALLINT`
          • `MEDIUMINT`
          • `INT|INTEGER`
          • `BIGINT`
          • `DECIMAL`
          • `FLOAT`
          • `DOUBLE`
        • 日期和时间类型
          • `DATE`
          • `DATETIME`
          • `TIMESTAMP`
          • `TIME`
          • `YEAR`
        • 字符串类型
          • `CHAR`
          • `VARCHAR`
          • `TEXT`
          • `LONGTEXT`
          • `BINARY`
          • `VARBINARY`
          • `TINYBLOB`
          • `BLOB`
          • `MEDIUMBLOB`
          • `LONGBLOB`
          • `ENUM`
          • `SET`
        • JSON Type
      • 函数与操作符
        • 函数与操作符概述
        • 表达式求值的类型转换
        • 操作符
        • 控制流程函数
        • 字符串函数
        • 数值函数与操作符
        • 日期和时间函数
        • 位函数和操作符
        • Cast 函数和操作符
        • 加密和压缩函数
        • 信息函数
        • JSON 函数
        • GROUP BY 聚合函数
        • 窗口函数
        • 其它函数
        • 精度数学
        • 下推到 TiKV 的表达式列表
      • SQL 语句
        • `ADD COLUMN`
        • `ADD INDEX`
        • `ADMIN`
        • `ALTER DATABASE`
        • `ALTER TABLE`
        • `ALTER USER`
        • `ANALYZE TABLE`
        • `BEGIN`
        • `COMMIT`
        • `CREATE DATABASE`
        • `CREATE INDEX`
        • `CREATE TABLE LIKE`
        • `CREATE TABLE`
        • `CREATE USER`
        • `CREATE VIEW`
        • `DEALLOCATE`
        • `DELETE`
        • `DESC`
        • `DESCRIBE`
        • `DO`
        • `DROP COLUMN`
        • `DROP DATABASE`
        • `DROP INDEX`
        • `DROP TABLE`
        • `DROP USER`
        • `DROP VIEW`
        • `EXECUTE`
        • `EXPLAIN ANALYZE`
        • `EXPLAIN`
        • `FLUSH PRIVILEGES`
        • `FLUSH STATUS`
        • `FLUSH TABLES`
        • `GRANT <privileges>`
        • `INSERT`
        • `KILL [TIDB]`
        • `LOAD DATA`
        • `MODIFY COLUMN`
        • `PREPARE`
        • `RECOVER TABLE`
        • `RENAME INDEX`
        • `RENAME TABLE`
        • `REPLACE`
        • `REVOKE <privileges>`
        • `ROLLBACK`
        • `SELECT`
        • `SET [NAMES|CHARACTER SET]`
        • `SET PASSWORD`
        • `SET TRANSACTION`
        • `SET [GLOBAL|SESSION] <variable>`
        • `SHOW CHARACTER SET`
        • `SHOW COLLATION`
        • `SHOW [FULL] COLUMNS FROM`
        • `SHOW CREATE TABLE`
        • `SHOW CREATE USER`
        • `SHOW DATABASES`
        • `SHOW ENGINES`
        • `SHOW ERRORS`
        • `SHOW [FULL] FIELDS FROM`
        • `SHOW GRANTS`
        • `SHOW INDEXES [FROM|IN]`
        • `SHOW INDEX [FROM|IN]`
        • `SHOW KEYS [FROM|IN]`
        • `SHOW PRIVILEGES`
        • `SHOW [FULL] PROCESSSLIST`
        • `SHOW SCHEMAS`
        • `SHOW [FULL] TABLES`
        • `SHOW TABLE REGIONS`
        • `SHOW TABLE STATUS`
        • `SHOW [GLOBAL|SESSION] VARIABLES`
        • `SHOW WARNINGS`
        • `SPLIT REGION`
        • `START TRANSACTION`
        • `TRACE`
        • `TRUNCATE`
        • `UPDATE`
        • `USE`
      • 约束
      • 生成列
      • 分区表
      • 字符集
      • SQL 模式
      • 视图
    • 配置
      • tidb-server
        • MySQL 系统变量
        • TiDB 特定系统变量
        • 配置参数
        • 配置文件描述
      • pd-server
        • 配置参数
        • 配置文件描述
      • tikv-server
        • 配置参数
        • 配置文件描述
    • 安全
      • 与 MySQL 的安全特性差异
      • TiDB 数据库权限管理
      • TiDB 用户账户管理
      • 基于角色的访问控制
    • 事务
      • 事务语句
      • 事务模型
      • 隔离级别
      • 悲观事务
    • 系统数据库
      • `mysql`
      • `information_schema`
    • 错误码
    • 支持的连接器和 API
    • 垃圾回收 (GC)
      • GC 机制简介
      • GC 配置
    • 性能调优
      • SQL 优化流程
      • 理解 TiDB 执行计划
      • 执行计划绑定
      • 统计信息概述
      • Optimizer Hints
      • 使用 SQL 语句检查 TiDB 集群状态
      • Statement Summary Table
      • TiKV 调优
      • TiDB 最佳实践
    • 监控指标
      • Overview 面板
      • TiDB 面板
      • PD 面板
      • TiKV 面板
    • 报警规则
    • 最佳实践
      • HAProxy 最佳实践
      • Java 应用开发最佳实践
      • 高并发写入场景最佳实践
      • Grafana 监控最佳实践
      • PD 调度策略最佳实践
      • 海量 Region 集群调优最佳实践
      • 乐观锁事务最佳实践
    • TiSpark 使用指南
    • TiDB Binlog
      • 概述
      • 部署使用
      • 运维管理
      • 版本升级
      • 监控告警
      • 增量恢复
      • Kafka 自定义开发
      • 故障诊断
        • 故障诊断
        • 常见错误修复
      • FAQ
    • 周边工具
      • Mydumper
      • Loader
      • Syncer
      • Data Migration
        • 概述
          • DM 架构
          • 同步功能介绍
          • 使用限制
          • DM-worker 简介
          • DM Relay Log
        • 核心特性
          • Table Routing
          • Black & White Lists
          • Binlog Event Filter
          • 同步延迟监控
          • Shard Support
            • 简介
            • 使用限制
            • 手动处理 Sharding DDL Lock
        • 使用场景
          • 简单的从库同步场景
          • 分库分表合并场景
          • 分表合并数据迁移最佳实践
          • DM-worker 在上游 MySQL 主从间切换
        • 部署使用
        • 配置
          • 概述
          • DM-master 配置
          • DM-worker 配置
          • 任务配置
        • DM 集群管理
          • 集群操作
          • 集群升级
        • DM 同步任务管理
          • 管理数据同步任务
          • 任务前置检查
          • 任务状态查询
          • 跳过或替代执行异常的 SQL 语句
        • 监控 DM 集群
        • 从与 MySQL 兼容的数据库迁移数据
          • 从 Amazon Aurora MySQL 迁移数据
        • DM Portal
        • DM 故障诊断
          • 故障诊断
          • 错误含义
          • 常见错误修复
        • DM FAQ
        • 版本发布历史
          • v1.0
            • 1.0.2
        • TiDB DM 术语表
      • TiDB Lightning
        • 概述
        • 部署执行
        • 断点续传
        • 表库过滤
        • CSV 支持
        • 监控告警
        • 故障诊断
        • FAQ
      • sync-diff-inspector
      • PD Control
      • PD Recover
      • TiKV Control
      • TiDB Controller
      • 工具下载
  • TiDB in Kubernetes
    • TiDB Operator 简介
    • 快速上手
      • kind
      • GKE
      • Minikube
    • 部署
      • 集群环境要求
      • 部署 TiDB Operator
      • 标准 Kubernetes 上的 TiDB 集群
      • AWS EKS 上的 TiDB 集群
      • GCP 上的 TiDB 集群
      • 阿里云上的 TiDB 集群
      • 访问 Kubernetes 上的 TiDB 集群
    • 配置
      • 初始化集群
    • 监控
    • 运维
      • 销毁 TiDB 集群
      • 维护 TiDB 集群所在节点
      • 备份与恢复
      • 恢复 Kubernetes 上的 TiDB 集群数据
      • 收集日志
      • 集群故障自动转移
      • TiDB Binlog
    • 扩缩容
    • 升级
      • TiDB 集群
      • TiDB Operator
    • 参考信息
      • 配置
        • 集群配置
        • 备份配置
        • PV 配置
        • TiDB Drainer
      • 工具
        • tkctl
        • 相关工具使用
    • 故障诊断
    • 常见问题
  • 常见问题 (FAQ)
    • TiDB FAQ
    • TiDB Lightning FAQ
    • 升级 FAQ
  • 技术支持
    • 支持渠道
    • 反馈问题
  • 贡献
    • 贡献代码
    • 改进文档
  • TiDB 路线图
  • 版本发布历史
    • v3.0
      • 3.0.7
      • 3.0.6
      • 3.0.5
      • 3.0.4
      • 3.0.3
      • 3.0.2
      • 3.0.1
      • 3.0 GA
      • 3.0.0-rc.3
      • 3.0.0-rc.2
      • 3.0.0-rc.1
      • 3.0.0-beta.1
      • 3.0.0-beta
    • v2.1
      • 2.1.18
      • 2.1.17
      • 2.1.16
      • 2.1.15
      • 2.1.14
      • 2.1.13
      • 2.1.12
      • 2.1.11
      • 2.1.10
      • 2.1.9
      • 2.1.8
      • 2.1.7
      • 2.1.6
      • 2.1.5
      • 2.1.4
      • 2.1.3
      • 2.1.2
      • 2.1.1
      • 2.1 GA
      • 2.1 RC5
      • 2.1 RC4
      • 2.1 RC3
      • 2.1 RC2
      • 2.1 RC1
      • 2.1 Beta
    • v2.0
      • 2.0.11
      • 2.0.10
      • 2.0.9
      • 2.0.8
      • 2.0.7
      • 2.0.6
      • 2.0.5
      • 2.0.4
      • 2.0.3
      • 2.0.2
      • 2.0.1
      • 2.0
      • 2.0 RC5
      • 2.0 RC4
      • 2.0 RC3
      • 2.0 RC1
      • 1.1 Beta
      • 1.1 Alpha
    • v1.0
      • 1.0
      • Pre-GA
      • RC4
      • RC3
      • RC2
      • RC1
  • 术语表

Kubernetes 上的 TiDB 集群监控

基于 Kubernetes 环境部署的 TiDB 集群监控可以大体分为两个部分:对 TiDB 集群本身的监控、对 Kubernetes 集群及 TiDB Operator 的监控。本文将对两者进行简要说明。

TiDB 集群的监控

TiDB 通过 Prometheus 和 Grafana 监控 TiDB 集群。在通过 TiDB Operator 创建新的 TiDB 集群时,对于每个 TiDB 集群,会同时创建、配置一套独立的监控系统,与 TiDB 集群运行在同一 Namespace,包括 Prometheus 和 Grafana 两个组件。

监控数据默认没有持久化,如果由于某些原因监控容器重启,已有的监控数据会丢失。可以在 values.yaml 中设置 monitor.persistent 为 true 来持久化监控数据。开启此选项时应将 storageClass 设置为一个当前集群中已有的存储,并且此存储应当支持将数据持久化,否则仍然会存在数据丢失的风险。

在 TiDB 集群监控中有一些监控系统配置的细节可供参考。

查看监控面板

可以通过 kubectl port-forward 查看监控面板:

kubectl port-forward -n <namespace> svc/<release-name>-grafana 3000:3000 &>/tmp/portforward-grafana.log

然后在浏览器中打开 http://localhost:3000,默认用户名和密码都为 admin。

Grafana 服务默认通过 NodePort 暴露,如果 Kubernetes 集群支持负载均衡器,你可以在 values.yaml 中将 monitor.grafana.service.type 修改为 LoadBalancer,然后在执行 helm upgrade 后通过负载均衡器访问面板。

如果不需要使用 Grafana,可以在部署时在 values.yaml 中将 monitor.grafana.create 设置为 false 来节省资源。这一情况下需要使用其他已有或新部署的数据可视化工具直接访问监控数据来完成可视化。

访问监控数据

对于需要直接访问监控数据的情况,可以通过 kubectl port-forward 来访问 Prometheus:

kubectl port-forward -n <namespace> svc/<release-name>-prometheus 9090:9090 &>/tmp/portforward-prometheus.log

然后在浏览器中打开 http://localhost:9090,或通过客户端工具访问此地址即可。

Prometheus 服务默认通过 NodePort 暴露,如果 Kubernetes 集群支持负载均衡器,你可以在 values.yaml 中将 monitor.prometheus.service.type 修改为 LoadBalancer,然后在执行 helm upgrade 后通过负载均衡器访问监控数据。

Kubernetes 的监控

随集群部署的 TiDB 监控只关注 TiDB 本身各组件的运行情况,并不包括对容器资源、宿主机、Kubernetes 组件和 TiDB Operator 等的监控。对于这些组件或资源的监控,需要在整个 Kubernetes 集群维度部署监控系统来实现。

宿主机监控

对宿主机及其资源的监控与传统的服务器物理资源监控相同。

如果在你的现有基础设施中已经有针对物理服务器的监控系统,只需要通过常规方法将 Kubernetes 所在的宿主机添加到现有监控系统中即可;如果没有可用的监控系统,或者希望部署一套独立的监控系统用于监控 Kubernetes 所在的宿主机,也可以使用你熟悉的任意监控系统。

新部署的监控系统可以运行于独立的服务器、直接运行于 Kubernetes 所在的宿主机,或运行于 Kubernetes 集群内,不同部署方式除在安装配置与资源利用上存在少许差异,在使用上并没有重大区别。

常见的可用于监控服务器资源的开源监控系统有:

  • CollectD
  • Nagios
  • Prometheus & node_exporter
  • Zabbix

一些云服务商或专门的性能监控服务提供商也有各自的免费或收费的监控解决方案可以选择。

我们推荐通过 Prometheus Operator 在 Kubernetes 集群内部署基于 Node Exporter 和 Prometheus 的宿主机监控系统,这一方案同时可以兼容并用于 Kubernetes 自身组件的监控。

Kubernetes 组件监控

对 Kubernetes 组件的监控可以参考官方文档提供的方案,也可以使用其他兼容 Kubernetes 的监控系统来进行。

一些云服务商可能提供了自己的 Kubernetes 组件监控方案,一些专门的性能监控服务商也有各自的 Kubernetes 集成方案可以选择。

由于 TiDB Operator 实际上是运行于 Kubernetes 中的容器,选择任一可以覆盖对 Kubernetes 容器状态及资源进行监控的监控系统即可覆盖对 TiDB Operator 的监控,无需再额外部署监控组件。

我们推荐通过 Prometheus Operator 部署基于 Node Exporter 和 Prometheus 的宿主机监控系统,这一方案同时可以兼容并用于对宿主机资源的监控。

报警配置

TiDB 集群报警

在随 TiDB 集群部署 Prometheus 时,会自动导入一些默认的报警规则,可以通过浏览器访问 Prometheus 的 Alerts 页面查看当前系统中的所有报警规则和状态。

我们目前暂不支持报警规则的自定义配置,如果确实需要修改报警规则,可以手动下载 charts 进行修改。

默认的 Prometheus 和报警配置不能发送报警消息,如需发送报警消息,可以使用任意支持 Prometheus 报警的工具与其集成。推荐通过 AlertManager 管理与发送报警消息。

如果在你的现有基础设施中已经有可用的 AlertManager 服务,可以在 values.yaml 文件中修改 monitor.prometheus.alertmanagerURL 配置其地址供 Prometheus 使用;如果没有可用的 AlertManager 服务,或者希望部署一套独立的服务,可以参考官方的说明部署。

Kubernetes 报警

如果使用 Prometheus Operator 部署针对 Kubernetes 宿主机和服务的监控,会默认配置一些告警规则,并且会部署一个 AlertManager 服务,具体的设置方法请参阅 kube-prometheus 的说明。

如果使用其他的工具或服务对 Kubernetes 宿主机和服务进行监控,请查阅该工具或服务提供商的对应资料。

"Kubernetes 上的 TiDB 集群监控" 更新于 Sep 2 2019: dev, v3.0, v2.1: add a slash before each link (d40f07d)
修改本文 反馈文档问题

本页导航

产品

  • TiDB
  • TiSpark
  • TiDB 路线图

文档

  • 快速入门
  • 最佳实践
  • 常见问题解答
  • TiDB 周边工具
  • 版本发布说明

资源

  • 博客
  • GitHub
  • 知乎专栏
  • PingCAP University
  • 联合解决方案
  • Ask TUG

公司

  • 关于我们
  • 招贤纳士
  • 新闻报道

联系我们

  • Twitter
  • LinkedIn
  • Reddit
  • Google Group
  • Stack Overflow
  • 微信公众号
    Wechat qrCode

    微信扫一扫
    微信ID:pingcap2015

© 2019 北京平凯星辰科技发展有限公司

English