1、前言
任何 数据库的引入,监控都是很重要的部分。本篇文章分享下StarRocks的数据库的存活监控相关的实现
2、思考
StarRocks的监控分为: 存活监控 、性能监控 。因为之前的TiDB的经验,建设分为:
-
存活监控:
- 存活检查工具 方便日常的状态检查
- 存活监控 任务式采集,报警
-
性能监控:
- 根据一定的运维经验,获取重要的监控指标,分为:服务器相关、实例相关的
-
汇总监控:
- 因为正常部署是一套集群1套监控,要统一地点看所有集群的重点监控的话,就要汇总到1套 Grafana 上
3、存活检查工具实现
3.1、节点信息获取
【FE信息查看】:
- SHOW FRONTENDS;
列名 | 值 | 说明 |
---|---|---|
Name | 10.1.1.1_666_1628925096585 | 表示该 FE 节点在 bdbje 中的名称 |
IP | 10.1.1.1 | |
EditLogPort | 6661 | |
HttpPort | 6662 | web端口 |
QueryPort | 6663 | 对外查询端口 |
RpcPort | 6664 | |
Role | FOLLOWER | 角色 |
IsMaster | FALSE | 是否是master |
ClusterId | 1731263968 | |
Join | TRUE | Join 为 true 表示该节点曾经加入过集群。但不代表当前还在集群内(可能已失联) |
Alive | TRUE | Alive 表示节点是否存活。 |
ReplayedJournalId | 44074 | 表示该节点当前已经回放的最大元数据日志id |
LastHeartbeat | 2021/8/15 19:18 | 是最近一次心跳 |
IsHelper | TRUE | 表示该节点是否是 bdbje 中的 helper 节点 |
ErrMsg | 用于显示心跳失败时的错误信息 |
【BE信息查看】:
- SHOW BACKENDS;
列名 | 值 | 说明 |
---|---|---|
BackendId | 10002 | |
Cluster | default_cluster | |
IP | 10.2.2.2 | |
HeartbeatPort | 7776 | |
BePort | 7777 | |
HttpPort | 7778 | |
BrpcPort | 7779 | |
LastStartTime | 2021-08-14 15:11:56 | LastStartTime 表示最近一次 BE 启动时间 |
LastHeartbeat | 2021-08-15 19:27:43 | 表示最近一次心跳 |
Alive | TRUE | 示节点是否存活 |
SystemDecommissioned | FALSE | 为 true 表示节点正在安全下线中 |
ClusterDecommissioned | FALSE | 为 true 表示节点正在从当前cluster中下线 |
TabletNum | 2266 | 表示该节点上分片数量 |
DataUsedCapacity | 11.548KB | 表示实际用户数据所占用的空间 |
AvailCapacity | 2.907TB | 表示磁盘的可使用空间 |
TotalCapacity | 2.909TB | 表示总磁盘空间 |
UsedPct | 0.0005 | 示磁盘已使用量百分比 |
MaxDiskUsedPct | 0.0005 | |
ErrMsg | 用于显示心跳失败时的错误信息 | |
Version | 1.17.1-914c0d2 | |
Status | {“lastSuccessReportTabletsTime”:“2021-08-1519:27:03”} | 于以 JSON 格式显示BE的一些状态信息,目前包括最后一次BE汇报其tablet的时间信息 |
【Prometheus接口】:
Prometheus+Grafana 是官方推荐的监控架构
参考文档:http://doris.apache.org/master/zh-CN/administrator-guide/operation/monitor-alert.html#prometheus 5
可以从监控项:up 里面获取FE、BE节点的存活情况
例如:
up{ group =“be”, instance =“10.1.1.1:666”, job =“dorisdb_prometheus_666-1”} 1
up{ group =“fe”, instance =“10.1.1.2:777”, job =“dorisdb_prometheus_666-1”} 1
3.2、检查工具实现
4、监控整体实现
存活监控的实现:
- prometheus的监控项up里面获取节点存活信息,上报到DBA统一监控zabbix,利用zabbix发送报警等。
性能监控的实现:
- prometheus接口获取重点信息,服务器级别,实例级别,上报到zabbix,利用zabbix实现性能报警等。
目前性能监控我们还在开发中,存活监控已经实现且已经能发送报警了。统一的汇总Grafana也在开发中
- 存活监控 实现完成
- 检查元信息与Zabbix 的差异host并添加/删除 实现完成
此处为监控的全部架构设计图:
社区链接:https://forum.starrocks.com/t/topic/379