【TiDB 4.0 PCTA 学习笔记】3.1.1 TiDB Cluster Monitoring(本地化部署的 TiDB 集群监控)@2班+庞潇

课程名称:课程版本(101/201/301)+ 课程名称

学习时长:

1小时

课程收获:

深刻理解了promethus的架构,并且熟练掌握了promethus的yaml文件配置,alertmanage的YAML文件配置,了解了关键rule规则,以及grafana关键监控指标项。

课程内容:

tidb的监控系统组成

TiDB 使用开源时序数据库prometheus作为监控和性能指标信息存储方案,使用grafana作为可视化组件进行展示。

(1)什么是prometheus?

Prometheus 是一个开源的服务监控系统和时间序列数据库。我们可以简单的理解,我们从TIDB,TIKV,PD,TIFLASH等组件收集的监控信息均存放在了prometheus中。

详细可查看:https://prometheus.io/docs/introduction/overview/

(2)prometheus如何获取监控信息?


Promethus有两种获取数据的方式:

Push / Pull

  • Pull 是 Prometheus 标准的获取指标方式,Prometheus Server 通过定期访问应用程序提供的 HTTP 接口获取指标数据。
  • Push 是基于 Prometheus Pushgateway 服务提供的另一种获取指标方式,指标数据由应用程序主动定期推送给 Pushgateway,然后 Prometheus 再定期从 Pushgateway 获取。这种方式主要适用于应用程序不方便开端口或应用程序生命周期比较短的场景。

需注意:课程里面提到的PUSHGATEWAY组件已经从tidb2.1.3取消掉了,原因为了降低各组件的负载,所以之后都通用采用PULL方式。

Promethus除了直接向PD,TIKV,TIDB等组件PULL监控信息外,为了获取主机和网络的监控信息,监控模块里还有node_exporter,blockbox_pxporter两个组件分别用于收集主机和网络信息。promethus也会定期从它们pull监控信息。

pull间隔不同组件设置不一样,通常为6~60s,可在如下界面查看: http://172.168.1.44:9090/config

2
修改方法为:<安装路径>/deploy/prometheus-9090/conf/prometheus.yml

修改完成后重启promethus生效。

(3)prometheus的alert_manager组件

该组件用于将定义的告警规则发送到指定的平台。详细的规则定义可查看文档:

https://docs.pingcap.com/zh/tidb/stable/alert-rules

如何对所有定义的规则进行查看?

可通过如下页面进行查看

http://172.168.1.44:9090/alerts

我们如何对这些规则进行修改?

4

在<安装路径>/deploy/prometheus/conf下,有很多*.rules.yml文件,分别对应不同模块的告警规则,如pd.rules.yml为pd的模块的告警规则。比如我们想将PD_cluster_offline_tikv_nums设置为2分钟未收到TIKV心跳则发送告警。

5

保存,并重启普罗米修斯后,就可以发现它已生效。

tiup cluster restart tidb-test -N 172.168.1.44:9090

7

如何将告警规则发送到指定平台呢?

通过tiup cluster edit-config <集群名>

可以查看到alertmanager_servers的路径。

8

打开alertmanager路径下的alertmanager.yml文件。

修改为想发送的邮箱地址,保存并重启alertmanager后生效。

(4)prometheus的grafana组件

grafana为prometheus可视化组件,用于展示收集到的各项监控指标,本章节主要根据课程内容对关键监控指标进行介绍。详细的指标项介绍可查看文档。地址为ip:3000

https://docs.pingcap.com/zh/tidb/stable/grafana-overview-dashboard

https://docs.pingcap.com/zh/tidb/stable/grafana-tidb-dashboard

https://docs.pingcap.com/zh/tidb/stable/grafana-pd-dashboard

https://docs.pingcap.com/zh/tidb/stable/grafana-tikv-dashboard

https://docs.pingcap.com/zh/tidb/stable/monitor-tiflash

学习过程中遇到的问题或延伸思考:

  • 问题 1:怎么指定将告警发送到我的邮箱?如何配置采样间隔?
    通过查看promethus.yaml和alertermanager.yaml已了解配置方法。详细可查看本次学习笔记。

学习过程中参考的其他资料

https://docs.pingcap.com/zh/tidb/stable/alert-rules
https://docs.pingcap.com/zh/tidb/stable/grafana-tidb-dashboard

https://docs.pingcap.com/zh/tidb/stable/grafana-pd-dashboard

https://docs.pingcap.com/zh/tidb/stable/grafana-tikv-dashboard

https://docs.pingcap.com/zh/tidb/stable/monitor-tiflash

1 个赞

同学你好,感谢参与 TiDB 4.0 课程的学习!

本篇笔记逻辑清晰、内容丰富,被评选为优质笔记,将额外获得 20 积分,并在 「TiDB 培训」分类下获得“置顶”权益,积分兑换规则将于近期开放,敬请关注!

期待您继续产出优质内容!

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。