使用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.mzph.cn/web/41412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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缓存利用率&#…

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;监测发现当前较活跃的勒索病毒…

应用案例 | 基于物联网工控屏的工业离心机设备监控系统

案例概况 客户&#xff1a;博鲁班特&#xff08;BROADBENT&#xff09; 应用产品&#xff1a;宏集物联网工控屏 应用场景&#xff1a;离心机设备监控系统 一、前言 在现代工业生产中&#xff0c;离心机作为关键的分离设备&#xff0c;在生产过程中扮演着至关重要的角色。随…

谷粒商城学习笔记-17-快速开发-逆向工程搭建使用

文章目录 一&#xff0c;克隆人人开源的逆向工程代码二&#xff0c;把逆向工程集成到谷粒商城的后台工程三&#xff0c;以商品服务为例&#xff0c;使用逆向工程生成代码1&#xff0c;修改逆向工程的配置2&#xff0c;以Debug模式启动逆向工程3&#xff0c;使用逆向工程生成代码…

基于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…

【链表】【双指针】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算法思…

【网络安全】实验三(基于Windows部署CA)

一、配置环境 打开两台虚拟机&#xff0c;并参照下图&#xff0c;搭建网络拓扑环境&#xff0c;要求两台虚拟的IP地址要按照图中的标识进行设置&#xff0c;并根据搭建完成情况&#xff0c;勾选对应选项。注&#xff1a;此处的学号本人学号的最后两位数字&#xff0c;1学号100…

Linux 搭建 Kafka 环境 - 详细教程

目录 一. Kafka介绍 1. 应用场景 2. 版本对比 二. Kafka安装 1. 前置环境 &#xff08;1&#xff09;安装JDK 2. 软件安装 &#xff08;3&#xff09;环境变量配置 &#xff08;3&#xff09;服务启动 三. Console测试 基础命令 &#xff08;1&#xff09;列出Kafk…

上网监控软件有哪些?3款实力出众的上网监控软件

为什么需要上网监控软件&#xff1f; 据说&#xff0c;99%的员工上班都会摸鱼&#xff0c;1%的员工上班会窃取公司信息。 所以&#xff0c;因此&#xff0c;监控员工的上网行为是很有必要滴。 总结下来&#xff0c;上网监控软件的作用是&#xff1a; 1.提高生产力&#xff1…

前端位置布局汇总

HTML中脱离文档流的元素有&#xff1a; position: absolute - 元素相对于最近的已定位&#xff08;非 static&#xff09;祖先元素定位。 position: fixed - 元素相对于浏览器窗口定位。 float: left 或 float: right - 元素向左或向右浮动&#xff0c;周围的内容会环绕它。 …

shark云原生-日志体系-filebeat高级配置(适用于生产)-更新中

文章目录 1. filebeat.inputs 静态日志收集器2. filebeat.autodiscover 自动发现2.1. autodiscover 和 inputs2.2. 如何配置生效2.3. Providers 提供者2.4. Providers kubernetes2.5. 配置 templates2.5.1. kubernetes 自动发现事件中的变量字段2.5.2 配置 templates 2.6. 基于…

IDEA发疯导致maven下载回来的jar不完整zip END header not found

IDEA发疯导致maven下载回来的jar不完整zip END header not found 具体报错 java: 读取D:\mavenRepository\com\alibaba\druid-spring-boot-starter\1.2.23\druid-spring-boot-starter-1.2.23.jar时出错; zip END header not foundjava: java.lang.RuntimeException: java.io.…

2024 JuniorCryptCTF reppc 部分wp

Random cipher 文本编辑器打开附件 比较简单。脚本 Mutated Caesar 文本编辑器打开附件 比较简单。脚本 Pizza 附件拖入dnSpy 比较简单。脚本 l33t Leet&#xff0c;又称黑客语&#xff0c;是指一种发源于欧美地区的BBS、线上游戏和黑客社群所使用的文字书写方式&#xff0c;通…