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並添加/刪除 實現完成
此處為監控的全部架構設計圖: