ClickHouse 作為用于聯機分析(OLAP)的列式數據庫管理系統(DBMS), 最核心的特點是極致壓縮率和極速查詢性能。同時,ClickHouse 支持 SQL 查詢,在基于大寬表的聚合分析查詢場景下展現出優異的性能。因此,獲得了廣泛的應用。本文旨在分享阿里云可觀測監控 Prometheus 版對開源 ClickHouse 的監控實踐。
在執行數據查詢時,列式存儲可以減少數據掃描范圍和數據傳輸大小,提高數據查詢的效率。
可按照用戶粒度設置數據庫或表的操作權限,保障數據安全性。
(資料圖)
提供數據備份導出與導入恢復機制,滿足生產環境要求。
提供集群模式,自動管理多個數據庫節點。
在物理構成上,ClickHouse 集群是由多個 ClickHouse Server 實例組成的分布式數據庫。這些 ClickHouse Server 根據規格的不同可以包含 1 個或多個副本(Replica)、1 個或多個分片(Shard)。在邏輯構成上,一個ClickHouse 集群可以包含多個數據庫(Database)對象。
在超大規模海量數據處理場景下,單臺服務器的存儲、計算資源會成為瓶頸。為了進一步提高效率,ClickHouse 將海量數據分散存儲到多臺服務器上,每臺服務器只存儲和處理海量數據的一部分,在這種架構下,每臺服務器被稱為一個分片(Shard)。
為了在異常情況下保證數據的安全性和服務的高可用性,ClickHouse 提供副本機制,將單臺服務器的數據冗余存儲在2臺或多臺服務器上。
數據庫是云數據庫 ClickHouse 集群中的最高級別對象,內部包含表(Table)、列(Column)、視圖(View)、函數、數據類型等。
表是數據的組織形式,由多行、多列構成。
我們從 Metrics 采集、監控大盤、告警規則等三個方面定義 ClickHouse Metrics 監控的參考模型,以便實現監控閉環。
select * from system.metrics
;select * from system.events
--> 64個指標;select * from system.asynchronous_metrics
--> 500個指標;system.query_log
。該部分指標主要來源于 Node-Exporter , 提供集群/ ECS 節點 CPU、內存、磁盤、inode 等監控指標。
ClikckHouse 內置 Metrics、events 和 asynchronous_metrics 三張系統表用于存放其監控指標,通過預先安裝 clickhouse-exporter 將這三張系統表中的數據轉化、發送給阿里云可觀測監控 Prometheus 版。
??注意: 以上列出的為關鍵指標,更多詳細指標詳見: 應用實時監控服務ARMS控制臺
-Prometheus監控
-Prometheus實例列表
-選擇實例
-集成中心
-ClickHouse
我們默認提供了arms-clickhouse-ecs
和arms-clickhouse-k8s
兩個大盤,分別針對 ClickHouse 安裝在ACK 集群/ ECS 中兩個場景,這兩個大盤中圖標均來自于上述 Metrics 指標。
??注意: 主機節點監控需提前安裝 Node-Exporter,以下大盤圖示數值僅為展示作用,不具備參考價值,實際數值依 ClickHouse 環境而定
(1)主機節點指標
(2)ClickHouse Server指標
(3)MergeTree 指標
(4)消息隊列指標
參考前面對各項主要指標介紹,針對 ClickHouse 可以重點配置以下告警項,這些告警項已內置到arms-clickhouse
告警規則中,可依據自身業務情況及經驗調整告警閾值:
top -H -p xxx
查看系統的 CPU 占用率,找出占用 CPU 比較高的進程。如果發現 ClickHouse 進程占用了大量 CPU 資源,那么就需要進一步排查。SHOW PROCESSLIST query WHERE query NOT LIKE "%SYSTEM%" ORDER BY elapsed DESC LIMIT 10
這個查詢可以列出最耗時的查詢,找到可能引起 CPU 占用過高的查詢語句。
SELECT * FROM system.metrics WHERE metric LIKE "%memory%";
這個查詢會列出 ClickHouse 的各個內存指標,包括總內存、已用內存、緩存內存等。可以根據這些指標來判斷內存占用是否過高。
free -m
查看系統的內存使用情況。df -h
來查看系統的磁盤使用情況,查看是否有磁盤空間不足的情況。SELECT database, table, sum(bytes) AS total_size FROM system.parts WHERE active GROUP BY database, table ORDER BY total_size DESC
這個查詢會列出 ClickHouse 的各個表的占用磁盤空間情況,可以根據這個查詢來判斷磁盤占用是否過高。
根據 ClickHouse 安裝方式:
Prometheus for 容器服務
;Prometheus for ECS
。在Prometheus for 容器服務
實例中,ClickHouse 已經默認在集成中心中展示,用戶可以在應用實時監控服務ARMS控制臺
-Prometheus監控
-Prometheus實例列表
-選擇Prometheus for 容器服務實例
-集成中心
中找到入口,點擊 ClickHouse 圖標,可以看到常見的指標列表和大盤縮略圖。點擊+安裝
可以接入 ClickHouse 監控,配置如下圖:
點擊確定后, clickhouse-exporter-填入的名稱
的 Exporter 會被安裝到 arms-prom 命名空間下,并自動完成采集 job 的配置。
可以在應用實時監控服務ARMS控制臺
-Prometheus監控
-Prometheus實例列表
-選擇Prometheus for 容器服務實例
-集成中心
-已安裝
-ClikckHouse
中快速瀏覽相關的 Target/指標/大盤/告警/服務發現/ Exporter 等信息。
安裝 ClickHouse 相同 VPC 的Prometheus for ECS
實例,由于Prometheus for ECS
實例中 ClickHouse 的主機節點監控來自于Node-Exportor
,所以先安裝 Node-Exportor
。用戶可以在
應用實時監控服務ARMS控制臺
-Prometheus監控
-Prometheus實例列表
-選擇Prometheus for ECS實例
-集成中心
中找到入口,點擊Node-Exporter
圖標,點擊+安裝
可以接入 Node-Exporter 監控,然后選擇對應 ECS 實例安裝即可。
用戶可以在應用實時監控服務ARMS控制臺
-Prometheus監控
-Prometheus實例列表
-選擇Prometheus for ECS實例
-集成中心
中找到入口,點擊 ClickHouse 圖標,點擊+安裝
可以接入 ClickHouse 監控,配置與上述Prometheus for 容器服務
相同。
??注意: 下面是Prometheus for 容器
實例的排查方法,Prometheus for ECS
實例請聯系Prometheus值班-美娜
ClickHouse-Exporter 本身的主要工作是指標映射,需要填入正確 ClickHouse 抓取 URL及登陸用戶名、密碼。如果出現指標采集不到的問題,可以參考如下的排查思路。
Unhealthy
狀態,請排查clickhouse-exporter
Pod 運行狀態;如果 Target 狀態正常,繼續下一步。go_
相關查看clickhouse-exporter
Pod 日志,確認日志中是否有報錯信息。clickhouse-exporter
Pod 日志,確定 Exporter 抓取目標 URL 是否正常。如需要查看 ClickHouse 相關大盤,可以從應用實時監控服務ARMS控制臺
-Prometheus監控
-Prometheus實例列表
-實例詳情頁
-集成中心
-已安裝
-ClikckHouse
中點選大盤
,列出兩類大盤arms-clickhouse-ecs
和arms-clickhouse-k8s
,根據環境選擇對應的大盤模板。
以下是arms-clickhouse-k8s
Variables 參數說明:
以下是arms-clickhouse-ecs
Variables參數說明:
在集成中心安裝 ClickHouse 監控時,已經默認增加了arms-clickhouse告警分組
的相關規則,但未啟用,您只需要簡單修改參數并確認啟用即可。
可以從應用實時監控服務ARMS控制臺
-Prometheus監控
-Prometheus實例列表
-實例詳情頁
-集成中心
-已安裝
-ClikckHouse
中選擇告警
-創建告警規則
進入規則新增頁面,在其中告警分組選擇arms-clickhouse告警分組
并根據環境選擇您需要啟用的告警指標
,確認參數閾值并保存,即可完成告警規則的創建。
Prometheus 作為目前主流可觀測開源項目之一,已被眾多企業所廣泛應用,但還會遇到不少困難與挑戰:
針對以上問題,阿里云可觀測監控 Prometheus 版進行了以下優化:
阿里云可觀測監控 Prometheus 版與阿里云容器服務無縫集成,提供了開源 ClickHouse 的指標采集、用戶大盤、告警規則等項目的一鍵集成,用戶免運維,開箱即用,目前 ClickHouse 指標采集功能仍在不斷演進中,歡迎大家試用和提出改進意見。
關鍵詞:
版權與免責聲明:
1 本網注明“來源:×××”(非商業周刊網)的作品,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,本網不承擔此類稿件侵權行為的連帶責任。
2 在本網的新聞頁面或BBS上進行跟帖或發表言論者,文責自負。
3 相關信息并未經過本網站證實,不對您構成任何投資建議,據此操作,風險自擔。
4 如涉及作品內容、版權等其它問題,請在30日內同本網聯系。