使用Ckman部署ClickHouse集群介紹

使用Ckman部署ClickHouse集群介紹

1. Ckman簡介

ClickHouse Manager是一個為ClickHouse數據庫量身定制的管理工具,它是由擎創科技數據庫團隊主導研發的一款用來管理和監控ClickHouse集群的可視化運維工具。目前該工具已在github上開源,開源地址為:github.com/housepower/ckman。它通過提供一個直觀的圖形用戶界面(GUI),極大地簡化了數據庫的管理和操作。這款工具支持多種功能,包括但不限于SQL查詢編輯器、數據可視化、實時監控、性能分析、備份與恢復等。

用戶可以通過ClickHouse Manager輕松執行復雜的SQL查詢,同時工具內置的編輯器支持語法高亮和自動補全,提高了編寫查詢的效率。數據可視化功能使用戶能夠通過圖表直觀地理解數據趨勢和模式。實時監控則允許用戶跟蹤數據庫的性能指標,及時發現并解決潛在問題。

此外,ClickHouse Manager還提供了強大的性能分析工具,幫助用戶識別查詢瓶頸和優化數據庫配置。備份與恢復功能確保了數據的安全性,即使在系統故障時也能快速恢復數據。總的來說,ClickHouse Manager是一個功能全面、操作簡便的數據庫管理工具,適合各種規模的ClickHouse用戶使用。

2. 為什么要有ckman

摘取官方文檔介紹如下:

我們不妨思考一下這樣的場景:如果要部署一個ClickHouse集群,需要怎么做?

首先,我們需要在所有ClickHouse節點上安裝ClickHouserpm包,然后,需要修改配置文件,包括但不限于config.xmlusers.xmlmetrika.xml。注意,是所有節點上都要修改,修改完成后需要依次啟動各個節點。

當集群規模不大,這些操作手動去完成可能不覺得有什么,但是如果集群規模比較大,單個集群的節點達到了上百臺甚至上千臺,這時候要手工去每臺機器上去操作,顯然變得不太現實。

如果需要往集群增加一個節點呢?

我們需要在已有的節點上的metrika.xml配置文件中加上該節點,然后在新增節點上安裝rpm包,修改metrika.xml,啟動ClickHouse服務,最后還要同步其他節點上的schema表結構,至此才能完成。

刪除節點亦如是。

如果要升級集群呢?我們不僅需要在每個節點上重新安裝升級rpm包,還需要考慮一些其他的問題:需不需要停服務?如果升級失敗了怎么辦?

總之,ClickHouse的集群運維,如果靠人工去做,不僅繁瑣,容易出現各種問題,當集群規模變大后,也變得不切實際。

這時候,ckman的出現,就可以完美解決上述的問題。ckman將這些運維操作都集成在管理界面中,用戶只需要在web界面上通過簡單的信息配置,點擊鼠標,就可以完成所有的配置工作,而無需關注其他細節,也減少了出錯的可能。

3. 主要功能

  1. 集群管理

    • 安裝和卸載ClickHouse集群。
    • 添加和刪除集群節點。
    • 自動化配置和部署。
  2. 監控

    • 集群狀態監控。
    • 節點健康檢查。
    • 性能指標監控。
  3. 運維工具

    • 數據備份和恢復。
    • 數據庫和表管理。
    • SQL查詢執行和日志查看。
  4. 用戶管理

    • 創建和管理用戶。
    • 設置用戶權限和角色。
  5. 配置管理

    • 統一管理ClickHouse配置文件。
    • 動態更新配置。

4. 優勢

  • 簡化管理:CKMan提供了簡化的ClickHouse集群管理功能,減少了手動配置和運維的復雜度。
  • 監控和報警:集成了監控和報警功能,幫助運維人員及時發現和解決問題。
  • 用戶友好:圖形化界面和命令行工具兼備,滿足不同用戶的需求。

架構設計

5. 安裝ckman

5-1. 下載ckman

ckman官方github項目下載地址:https://github.com/housepower/ckman/releases ,可以根據需求自行下載需要的版本即可,對于部署clickhouse沒有嚴格要求必須使用某個版本ckman。

下載示例:

wget https://github.com/housepower/ckman/releases/download/v3.0.8/ckman-3.0.8.x86_64.rpm

5-2. 安裝ckman

[root@ops01 clickhouse]# wget https://github.com/housepower/ckman/releases/download/v3.0.8/ckman-3.0.8.x86_64.rpm
[root@ops01 clickhouse]# rpm -ivh ckman-3.0.8.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...1:ckman-0:3.0.8-1                  ################################# [100%]# 安裝完畢后,相關的路徑
[root@ops01 clickhouse]# whereis ckman
ckman: /usr/sbin/ckman /etc/ckman /usr/local/bin/ckman# 配置相關路徑
[root@ops01 clickhouse]# ll /etc/ckman/
total 12
drwxr-xr-x 2 ckman ckman 4096 Jul  2 16:23 conf
drwxr-xr-x 2 ckman ckman 4096 Jul  2 16:17 dbscript
drwxr-xr-x 2 ckman ckman 4096 Jul  2 16:17 package# 可執行文件
[root@ops01 clickhouse]# ls -l /usr/local/bin/|grep ckman
-rwxr-xr-x 1 root root 118916632 May 27 16:11 ckman
-rwxr-xr-x 1 root root  23208233 May 27 16:11 ckmanpasswd# 日志存儲路徑
[root@ops01 clickhouse]# ll /var/log/ckman/
total 72
-rw-r----- 1 ckman ckman  8866 Jul  2 17:00 ckman.err.log
-rw-r----- 1 ckman ckman 55478 Jul  2 17:00 ckman.log

5-3. ckman服務啟停

# 啟動服務:systemctl start ckman
[root@ops01 clickhouse]# systemctl start ckman[root@ops01 clickhouse]# ps -ef | grep ckman | grep -v grep
ckman     3939     1  0 16:20 ?        00:00:00 /usr/local/bin/ckman -c=/etc/ckman/conf/ckman.hjson -p=/run/ckman/ckman.pid -l=/var/log/ckman/ckman.log -d[root@ops01 clickhouse]# tail -15 /var/log/ckman/ckman.log "Cron": {"Enabled": true,"sync_logic_schema": "0 * * * * ?","watch_cluster_status": "0 */3 * * * ?","sync_dist_schema": "30 */10 * * * ?"}
}
2024-07-02T16:20:39.119+0800	WARN	local/local.go:460	file [/etc/ckman/conf/clusters.json] is not exist
2024-07-02T16:20:39.119+0800	INFO	runner/runner.go:32	runner service starting...
2024-07-02T16:20:39.119+0800	INFO	ckman/main.go:138	start http server 192.170.0.150:8808 success[root@ops01 clickhouse]# netstat -tnlpu|grep 8808
tcp6       0      0 :::8808                 :::*                    LISTEN      3939/ckman   

服務狀態查看 : systemctl status ckman

停止服務 : systemctl stop ckman

重啟服務 : systemctl restart ckman

6. ckman安裝部署clickhouse

6-1. 準備工作

  • 機器準備

本次部署采用了5臺服務器進行集群部署,建議至少3臺。

  • 配置集群免密
# 驗證集群操作是否免密
[root@ops01 ~]# for i in ops01 ops02 ops03 ops04 ops04;do ssh $i "hostname && date" ;done
ops01
Tue Jul  2 18:39:33 CST 2024
ops02
Tue Jul  2 18:39:33 CST 2024
ops03
Tue Jul  2 18:39:33 CST 2024
ops04
Tue Jul  2 18:39:33 CST 2024
ops04
Tue Jul  2 18:39:33 CST 2024

ckman機器到各服務器時間無需密碼訪問

ssh-keygen -t rsa;

ssh-copy-id 192.168.1.1

  • 部署zookeeper服務

zookeeper服務搭建部署可參考文章:https://blog.csdn.net/wt334502157/article/details/115213645

  • 創建安裝包存放目錄并拷貝rpm安裝包

安裝包官方下載地址:https://packages.clickhouse.com/rpm/stable/

根據自己的需求進行搜索下載即可,注意底部有next下一頁

本次采用了23.9.1版本

wget https://packages.clickhouse.com/rpm/stable/clickhouse-client-23.9.1.1854.x86_64.rpm
wget https://packages.clickhouse.com/rpm/stable/clickhouse-common-static-23.9.1.1854.x86_64.rpm
wget https://packages.clickhouse.com/rpm/stable/clickhouse-server-23.9.1.1854.x86_64.rpm
wget https://packages.clickhouse.com/rpm/stable/clickhouse-common-static-dbg-23.9.1.1854.x86_64.rpm

創建目錄,把安裝包放入指定目錄內,路徑是ckman探尋的目錄地址,并非隨意指定

[root@ops01 package]# mkdir -p /etc/ckman/package/clickhouse
[root@ops01 package]# chmod a+w /etc/ckman/package/clickhouse
[root@ops01 package]# cd /etc/ckman/package/clickhouse
[root@ops01 clickhouse]# cp /opt/software/clickhouse/clickhouse-*rpm .
[root@ops01 clickhouse]# ls
clickhouse-client-23.9.1.1854.x86_64.rpm         clickhouse-common-static-dbg-23.9.1.1854.x86_64.rpm
clickhouse-common-static-23.9.1.1854.x86_64.rpm  clickhouse-server-23.9.1.1854.x86_64.rpm
  • 所有服務器創建數據存放目錄
[root@ops01 ~]# for i in ops01 ops02 ops03 ops04 ops04;do ssh $i "mkdir -p /data/clickhouse/data" ;done

也可逐個服務器登錄創建 mkdir -p /data/clickhouse/data

6-2. 頁面部署clickhouse集群

ckman功能雖然較多,但一般常用ckman部署clickhouse集群,內嵌的Prometheus監控或者nacos配置等等,可根據需求。生產情況經常會額外單獨的監控體系來監控服務器和服務。這里不展開介紹監控等服務的集成。

頁面訪問方式:IP+8808端口

http://192.170.0.150:8808

ckman默認的登錄用戶為ckman,密碼為Ckman123456!

  • 集群配置
  1. 集群基本信息配置

<注意>:左上角可以切換成中文界面;截圖中的名稱均可根據需求自定義

物理集群名: 集群的名字,注意不要和ckman已有的名字重合

安裝包類型: 安裝包類型,用來區分平臺和架構,不需要自己填寫,上傳安裝包后可通過下拉框選擇;只要把rpm包cp到/etc/ckman/package/clickhouse路徑下,即可自動識別出。在部署集群之前,需要先上傳安裝包。部署的集群版本是基于上傳安裝包的版本的。

如果選擇的平臺和架構不正確,如在arm的機器上部署x86的安裝包,則不會成功。

ClickHouse版本: ck的版本,不需要自己填寫,通過下拉列表選擇,下拉列表中會列出ckman服務器中所有的安裝包版本。

邏輯集群名:邏輯集群名字,可以指定,也可以不指定
TCP Port: clickhouse的TCP端口,默認是9000,當然也可以自己指定
ClickHouse Node List: clickhouse節點列表,支持簡寫

  1. 集群分片、副本配置

注意不是在一個分片中添加多個副本IP,是點擊集群節點配置,添加多個分片

  • 如果開啟了副本,默認是1個shard2個副本,如果節點是奇數,則最后一個 shard1個副本。
  • 如果要增加節點的副本數,可通過增加節點完成,創建集群時最多只能指定2個副本
  • 如果沒有開啟副本,則有幾個節點就有幾個shard
  • 注意:集群是否支持副本在部署集群時就已經決定了,后續不可更改
  1. zookeeper相關信息配置

ckman并沒有提供zookeeper集群搭建的功能,因此在部署集群之前,需要將zookeeper集群搭建好

  1. 部署連接以及存儲相關配置

<注意>:數據存儲路徑中,結尾一定要/結尾

默認用戶密碼可自己更改

在clickhouse使用時,會有一個default用戶,這里定義了默認密碼,后續即可通過密碼訪問

示例:clickhouse-client --host=192.170.0.150 --port=9000 --user=default --password=bigdata

此處設置的密碼即為client連接的password

系統賬號名和系統賬號密碼,即搭建集群的用戶信息,因為需要分發安裝包并安裝,還需要集群批量操作,認證基于此處配置。

配置以上信息后,點擊創建,等待集群部署完畢,即clickhouse部署完成

  • 集群登錄驗證
[app@ops01 ~]$ clickhouse-client --host=192.170.0.150 --port=9000 --user=default --password=bigdata
ClickHouse client version 23.9.1.1854 (official build).
Connecting to 192.170.0.150:9000 as user default.
Connected to ClickHouse server version 23.9.1 revision 54466.ops01 :) show databases;SHOW DATABASESQuery id: d3fd4619-366b-4b54-911a-1bf2b373b116┌─name───────────────┐
│ INFORMATION_SCHEMA │
│ default            │
│ information_schema │
│ system             │
└────────────────────┘4 rows in set. Elapsed: 0.002 sec. ops01 :) use default;USE defaultQuery id: 346e029f-c462-4732-9b04-4a713e420a36Ok.0 rows in set. Elapsed: 0.001 sec. ops01 :) show tables;SHOW TABLESQuery id: 1c4e235f-10dd-46fc-b8cb-2888c89c0ff5┌─name──────────┐
│ example_wangt │
└───────────────┘1 row in set. Elapsed: 0.004 sec. ops01 :) select * from example_wangt;SELECT *
FROM example_wangtQuery id: 6daf3b4c-111b-4756-8acc-e65504622f05┌─id─┬─name────┬─age─┐
│  1 │ Alice   │  30 │
│  2 │ Bob     │  25 │
│  3 │ Charlie │  28 │
│  4 │ David   │  35 │
│  5 │ Eva     │  22 │
│  6 │ Frank   │  40 │
│  7 │ Grace   │  27 │
│  8 │ Hannah  │  33 │
│  9 │ Ivy     │  29 │
│ 10 │ Jack    │  31 │
└────┴─────────┴─────┘10 rows in set. Elapsed: 0.004 sec. 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41412.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41412.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41412.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Leetcode 3213. Construct String with Minimum Cost

Leetcode 3213. Construct String with Minimum Cost 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3213. Construct String with Minimum Cost 1. 解題思路 這一題的話思路上還是比較直接的&#xff0c;就是一個trie樹加一個動態規劃&#xff0c;通過trie樹來快速尋找每一個…

k8s-第七節-ConfigMap Secret

ConfigMap & Secret ConfigMap 數據庫連接地址&#xff0c;這種可能根據部署環境變化的或者其他容器配置選項的包括容器更新或者擴容時可以統一配置 Kubernetes 為我們提供了 ConfigMap&#xff0c;可以方便的配置一些變量。 https://kubernetes.io/zh/docs/concepts/c…

Angluar 實現pdf頁面預覽以及編輯

之前用過一個pdf預覽的lib&#xff0c;并且還支持在線編輯&#xff0c;和直接下載編輯之后的pdf和直接打印&#xff0c;還不錯&#xff0c;記錄下 PdfShowcase 首先安裝依賴 npm install ngx-extended-pdf-viewer 然后引入 import { NgxExtendedPdfViewerModule } from &q…

硅紀元視角 | 中國電信“星辰大模型·軟件工廠”,兩分鐘完成應用開發,效率飛躍!

在數字化浪潮的推動下&#xff0c;人工智能&#xff08;AI&#xff09;正成為塑造未來的關鍵力量。硅紀元視角欄目緊跟AI科技的最新發展&#xff0c;捕捉行業動態&#xff1b;提供深入的新聞解讀&#xff0c;助您洞悉技術背后的邏輯&#xff1b;匯聚行業專家的見解&#xff0c;…

【數據結構】鏈表帶環問題分析及順序表鏈表對比分析

【C語言】鏈表帶環問題分析及順序表鏈表對比分析 &#x1f525;個人主頁&#xff1a;大白的編程日記 &#x1f525;專欄&#xff1a;C語言學習之路 文章目錄 【C語言】鏈表帶環問題分析及順序表鏈表對比分析前言一.順序表和鏈表對比1.1順序表和鏈表的區別1.2緩存利用率&#…

Leetcode 3211. Generate Binary Strings Without Adjacent Zeros

Leetcode 3211. Generate Binary Strings Without Adjacent Zeros 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3211. Generate Binary Strings Without Adjacent Zeros 1. 解題思路 這一題比較簡單&#xff0c;用一個遞歸算法即可實現。 2. 代碼實現 給出python代碼實現…

Linux基礎: 二. Linux的目錄和文件

文章目錄 二. Linux的目錄和文件1.1 目錄概要1.2 目錄詳細說明 二. Linux的目錄和文件 1.1 目錄概要 command&#xff1a;ls / Linux的文件系統像一棵樹一樣&#xff0c;樹干是根目錄&#xff08;/&#xff09;&#xff0c;樹枝是子目錄&#xff0c;樹葉是文件&#xff1b; …

亞信安全發布2024年6月威脅態勢,高危漏洞猛增60%

近日&#xff0c;亞信安全正式發布《2024年6月威脅態勢報告》&#xff08;以下簡稱“報告”&#xff09;&#xff0c;報告顯示&#xff0c;6月份新增信息安全漏洞 1794個&#xff0c;高危漏洞激增60%&#xff0c;涉及0day漏洞占67.67%&#xff1b;監測發現當前較活躍的勒索病毒…

C++多線程學習筆記

創建線程(thread) #include<iostream> #include<thread> using namespace std;// 函數fun&#xff0c;接收一個整型參數并在無限循環中打印遞增的值 void fun(int a) {while(1) {cout << a << "\n"; // 打印自增后的athis_thread::sleep_fo…

應用案例 | 基于物聯網工控屏的工業離心機設備監控系統

案例概況 客戶&#xff1a;博魯班特&#xff08;BROADBENT&#xff09; 應用產品&#xff1a;宏集物聯網工控屏 應用場景&#xff1a;離心機設備監控系統 一、前言 在現代工業生產中&#xff0c;離心機作為關鍵的分離設備&#xff0c;在生產過程中扮演著至關重要的角色。隨…

谷粒商城學習筆記-17-快速開發-逆向工程搭建使用

文章目錄 一&#xff0c;克隆人人開源的逆向工程代碼二&#xff0c;把逆向工程集成到谷粒商城的后臺工程三&#xff0c;以商品服務為例&#xff0c;使用逆向工程生成代碼1&#xff0c;修改逆向工程的配置2&#xff0c;以Debug模式啟動逆向工程3&#xff0c;使用逆向工程生成代碼…

名企面試必問30題(二十四)—— 說說你空窗期做了什么?

回答示例一 在空窗期這段時間&#xff0c;我主要進行了兩方面的活動。 一方面&#xff0c;我持續提升自己的專業技能。我系統地學習了最新的軟件測試理論和方法&#xff0c;深入研究了自動化測試工具和框架&#xff0c;例如 Selenium、Appium 等&#xff0c;并通過在線課程和實…

ISA95-Part4-業務流程的解析與設計思路

MES/MOM系統實現ISA-95標準的業務流程通常遵循以下思路,并包含一系列內容。 一、功能模塊: 1. 需求分析與規劃: - 確定業務流程需求,包括訂單管理、生產調度、庫存控制等,并規劃如何將這些流程與MES/MOM系統集成。 2. 系統集成架構設計: - 設計一個系統集成架構,確保M…

基于B/S模式和Java技術的生鮮交易系統

你好呀&#xff0c;我是計算機學姐碼農小野&#xff01;如果有相關需求&#xff0c;可以私信聯系我。 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;B/S模式、Java技術 工具&#xff1a;Visual Studio、MySQL數據庫開發工具 系統展示 首頁 用戶注冊…

【Java】詳解String類中的各種方法

創建字符串 常見的創建字符串的三種方式&#xff1a; // 方式一 String str "hello world"; // 方式二 String str2 new String("hello world"); // 方式三 char[] array {a, b, c}; String str3 new String(array); "hello" 這樣的字符串字…

Halcon 產品周圍缺口檢測

*讀取一張圖像read_image (Image, 原圖.jpg)*獲取圖像大小get_image_size(Image, Width, Height)*關閉已經打開的窗口dev_close_window ()*打開新窗口dev_open_window(0, 0, Width, Height, black, WindowHandle) //打開指定大小的窗口*對圖像進行閾值操作threshold (Image, R…

RedHat運維-Linux網絡管理基礎2-NetworkManager與其它

1. 查看NetworkManager接管網卡狀態的命令是_______________________________&#xff1b; 2. 查看NetworkManager接管網卡狀態的命令是_______________________________&#xff1b; 3. 查看NetworkManager接管網卡狀態的命令是_______________________________&#xff1b; 4…

【鏈表】【雙指針】1、合并兩個有序鏈表+2、分隔鏈表+3、刪除鏈表的倒數第N個結點+4、鏈表的中間結點+5、合并兩個鏈表

3道中等2道簡單 數組和字符串打算告一段落&#xff0c;正好最近做的幾乎都是雙指針&#xff0c;所以今天做鏈表&#xff01; 1、合并兩個有序鏈表&#xff08;難度&#xff1a;簡單&#xff09; 該題對應力扣網址 AC代碼 思路簡單 /*** Definition for singly-linked list.…

萬和day01代碼分析

將了數據庫的多表之間的操作&#xff0c;實際應用到JDBC中去。 一共五張表&#xff0c; info存儲的是具體的信息&#xff0c;edu job role 和info都是多對一的關系。 采用的是Java FX&#xff0c;界面采用xml去編寫。 項目理解一 在JavaFX中&#xff0c;ObservableList 是一個…

SCI一區TOP|準隨機分形搜索算法(QRFS)原理及實現【免費獲取Matlab代碼】

目錄 1.背景2.算法原理2.1算法思想2.2算法過程 3.結果展示4.參考文獻5.代碼獲取 1.背景 2024年&#xff0c;LA Beltran受到分形幾何、低差異序列啟發&#xff0c;提出了準隨機分形搜索算法&#xff08;Quasi-random Fractal Search, QRFS&#xff09;。 2.算法原理 2.1算法思…