问题导读:
1、什么是ckman?
2、ckman架构是怎样的?
3、怎样安装ckman?
下一篇:
ClickHouse可视化管理工具ckman【下篇】
https://www.aboutyun.com/forum.php?mod=viewthread&tid=31020
ckman介绍
ClickHouse作为OLAP场景特别优秀的数据库解决方案,写入速度快,查询性能强,尤其是聚合查询能力特别出色,已在腾讯、哔哩哔哩、快手等公司得到有效实践。与此同时,ClickHouse在集群部署时配置复杂,流程繁琐也困扰着广大使用者。在此背景之下,ckman应运而生。
ckman(ClickHouse Manager)是由擎创信息科技公司自主研发的一款管理ClickHouse的工具。它主要用来管理ClickHouse集群、节点以及数据监控等,致力于服务ClickHouse分布式的操作以及管理。同时提供简单的数据查询窗口。
通过网页端的可视化界面,ckman可以非常便捷的完成集群的导入、部署、节点的增删以及性能指标的监控等功能,可以大大简化集群部署的操作流程,从而起到事半功倍的效果。
如今,这款工具已经在github上开源啦!有想要体验的同学可以移步 https://github.com/housepower/ckman ,欢迎star和issue。
ckman架构
ckman支持多中心部署,使用nacos进行配置同步,可以对多个集群进行管理,在集群的每个节点下,如果配置node_exporter,则可以对对应的节点进行指标监控。node_exporter的数据传给prometheus,然后在前端展示。
ckman编译
Linux & MacOS下编译
编译环境配置
1. 安装Node.js
由于ckman将前端代码静态嵌入到了server中,因此需要安装Node.js以编译前端代码:
MacOS上安装Node.js:
复制代码
Linux下安装Node.js:
复制代码
安装完成后,在frontend目录下执行:
- cd frontend
- sudo rm -rf node_modules package-lock.json && npm install
复制代码
2. 安装pkger
- go get github.com/markbates/pkger/cmd/pkger
复制代码
3. 安装swag
- go get -u github.com/swaggo/swag/cmd/swag
复制代码
4. 安装 nfpm2.2.4:
nfpm是一款用来打包rpm的工具,如果不打算做成rpm包,可以不安装。
由于nfpm新版本配置文件和旧版本差别很大,建议安装指定的2.2.4版本。
- wget -q https://github.com/goreleaser/nfpm/releases/download/v2.2.4/nfpm_2.2.4_Linux_x86_64.tar.gz
- tar -xzvf nfpm_2.2.4_Linux_x86_64.tar.gz
- cp nfpm /usr/local/bin
复制代码
编译命令
Linux和MacOS下编译命令都是一样的:
- make package VERSION=x.x.x
复制代码
以上命令会编译成打包成一个tar.gz安装包,该安装包解压即可用。
VERSION是指定的版本号,如果不指定,则默认生成一个版本号为trunk的版本。
rpm编译
复制代码
deb编译
复制代码
Docker编译
鉴于编译环境的诸多依赖,配置起来可能比较麻烦,因此也提供了docker编译的方式,直接运行下面的命令即可:
- make docker-build VERSION=x.x.x
复制代码
如果想利用docker编译rpm版本,可以先进入docker环境,再编译:
- make docker-sh
- make rpm VERSION=x.x.x
复制代码
ckman安装部署
ckman部署分为rpm包安装和tar.gz包安装。其实只是提供的安装包不一样,实际安装还是一样的。
rpm安装
安装
rpm安装直接使用命令安装即可:
- rpm -ivh ckman-1.2.5.x86_64.rpm
复制代码
安装完成后,在/etc/ckman目录下,会生成工作目录(日志和配置文件等都在该目录下)。
启动
rpm方式安装的ckman有两种启动方式:
方式一:
- /usr/local/bin/ckman -c=/etc/ckman/conf/ckman.yaml -p=/run/ckman/ckman.pid -l=/var/log/ckman/ckman.log -d
复制代码
方式二:
复制代码
tar.gz包安装
安装
可以在任意目录进行安装。安装方式为直接解压安装包即可。
- tar -xzvf ckman-1.5.0-201216-6b03a3a.Linux.x86_64.tar.gz
复制代码
启动
进入ckman的工作目录,执行:
复制代码
启动之后,在浏览器输入 http://localhost:8808 跳出如下界面,说明启动成功:
docker启动
从v1.2.7版本开始,ckman支持从docker镜像启动。启动命令如下所示:
- docker run -itd -p 8808:8808 --restart unless-stopped --name ckman quay.io/housepower/ckman:latest
复制代码
但是需要注意的是,搭建promethues和nacos并不属于ckman程序自身的范畴,因此,从容器启动ckman默认是关闭nacos的,且前台Overview监控不会正常显示。
如果想自己配置nacos和prometheus,可以进入容器自行配置。
ckman配置文件
ckman的配置文件在ckman 的工作目录下的conf/ckman.yml。
一级选项 | 二级选项 | 默认值 | 说明 | server | id | 1 | ckman集群id,同一个集群的ckman的id号配置必须不同 | | port | 8808 | ckman默认的http端口 | | https | false | 是否支持https,默认为不支持 | | pprof | true | 是否支持pprof监控,默认支持 | | session_timeout | 3600 | 会话超时(token失效)时间,默认为1个小时 | | publick_key | | 接入擎创统一门户用来解析token的公钥 | | swagger_enable | false | 是否开启swagger文档,默认不开启 | log | level | INFO | 日志级别,默认为INFO | | max_count | 5 | 滚动日志数量 | | max_size | 10 | 单个日志大小,默认为10M | | max_age | 10 | 日志有效生命周期,默认为10天 | prometheus | hosts | 127.0.0.1:9090 | 普罗米修斯监控的ip和端口 | | timeout | 10 | 普罗米修斯的超时时间 | nacos | enabled | true | 是否开启nacos,默认为true | | hosts | 127.0.0.1 | nacos服务的ip | | port | 8848 | nacos服务的端口 | | user_name | nacos | 登录nacos的用户名 | | password | 0192023A7BBD73250516F069DF18B500 | 登录nacos的密码 | | namespace | | 指定nacos的namespace,默认为DEFAULT | | group | DEFAULT_GROUP | 向nacos注册的服务所处的组 | | data_id | ckman | 向nacos注册的服务名称、数据项名称 |
安装部署node_exporter和prometheus
参考文档:http://www.eryajf.net/2468.html
node_exporter和prometheus不一定要部署在同一台主机,在prometheus的配置文件中指定监控的node_exporter即可。
- static_configs:
- - targets: ['localhost:9100']
复制代码
node_exporter一般是用来监控系统性能指标的,因此一般是配置在各个节点上。
prometheus和ckman不一定要配置在同一台主机,在ckman配置文件中指定prometheus的地址和端口即可。
- prometheus:
- hosts:
- - 192.168.21.73:9090
复制代码
下一篇:
ClickHouse可视化管理工具ckman【下篇】
https://www.aboutyun.com/forum.php?mod=viewthread&tid=31020
最新经典文章,欢迎关注公众号
---------------------
|