ckman常见问题排障总结
该topic主要汇总大家在使用ckman的过程中可能遇到的一些问题以及解决方案。 由于在ckman的使用过程中,很多时候碰到的问题是有共性的,如果碰到一次就解决一次,耗时耗力是一方面,更增加了学习成本,因此,本贴相当于一个知识库的整理,将一些比较典型的问题解决方案汇总在此处,方便大家查找。 发帖格式如下:
[ckman版本]
ckman的发行版本,如果是自己编译的二次开发版本,也请说明。
[问题描述]
文字描述,最好带截图或文本错误信息
[解决方案]
提供行之有效的解决方案, 并提供出现该问题的原因以及解决该问题的思路。
注意:本帖汇总的都是已经有明确解决方案的问题,如果是未解决的问题,请另开issue。 欢迎大家踊跃跟帖,分享自己遇到的问题及解决思路,从而帮助社区更多的使用者。
[ckman版本]
v2.2.3
[问题描述]
创建集群时在最后一步报超时:check clickhouse timeout error

[解决方案]
该问题一般出现在检查状态这一步,说明clickhouse已经部署安装完成,但是当ckman试图去连接clickhouse的时候,并没有连接上。
出现该问题一般由两种原因,第一种是由于配置错误,导致clickhouse-server起不来。
排查思路:
登录clickhouse所在节点,执行 systemctl status clickhouse-server, 如果显示状态不正常,则说明服务未正确启动,则需要从clickhouse-server的日志进行排查。主要查看/var/log/clickhouse-server.err.log文件,一般都是由于配置不正确造成。
还有另一种可能,systemctl status clickhouse-server显示各节点状态是正常的,但ckman却显示超时,该问题是2.2.3版本一个BUG,原因是clickhouse安装启动后,会每隔5秒去尝试连接一次,如果连接不上,就再隔5秒去尝试连接,知道达到最大timeout超时时间为止。但是ckman设置的超时时间也是5秒,则程序逻辑有一定概率先进去timeout的分支,导致根本没有去尝试连接,因此出现超时错误。该BUG已在v2.2.4按本修复。
[ckman版本]
v2.2.3
[问题描述]
创建集群时在最后一步报乱码错误:Error 1366:Incorrect string value

[解决方案]
该问题一般出现在持久化策略为mysql的时候,当mysql 的数据库为非UTF-8编码时,就会出现该错误。 将数据库编码改成UTF-8编码即可。
[ckman版本]
v2.2.3
[问题描述]
部署集群时参数校验错误: Process exited with status 1

[解决方案]
这是标准的shell执行返回错误,说明是ckman远程到clickhouse各节点执行某个命令时报错。
如果是参数校验时弹出该错误,一般是指定的数据存储目录没有权限导致。如果已经到了正式部署阶段(弹出了进度框),则 可能是其他原因。
对于这类问题排查,首先要搞清楚是执行哪个命令报错。可以将ckman的日志级别改成DEBUG,然后重新部署,ckman日志会打印出执行的命令,我们只需要将该命令拿到对应节点上去执行,看报什么错,就能针对性地解决问题。
在v2.2.4版本针对这类错误返回,更加详细化,从返回信息就能判断出到底是什么错误。
[ckman版本]
v2.2.3
[问题描述]
ckman启动报错:

[解决方案]
这类错误有很多变体,比如还有:
主要原因是使用mysql作为持久化策略时,用户名密码校验失败,原因主要有两类:
第一类是上面图一的错误,直接就没有读到host和password,这种一般是ckman配置文件持久化策略没有配置好,persistent_policy没有改或persistent_config没有取消注释。
上面图二的错误主要是mysql的密码没有加密导致。mysql密码加密方式为 ckman --encrypt xxxxx,将输出的密文填写进password中即可。
[ckman版本]
v2.2.3
[问题描述]
ckman启动报错:

[解决方案]
问题同上,nacos密码未加密导致,加密方式和mysql相同。
[ckman版本]
v2.2.3
[问题描述]
表管理页面获取zookeeper状态出错:

[解决方案]
该问题一般出在zookeeper。
zookeeper从3.5.0开始支持使用http的方式访问mntr四字命令的监控数据,默认端口为8080。
如果zookeeper的版本不够新,比如低于3.5.0,或者8080端口被其他程序占用,都有可能出现这种结果。
最简单的验证方法是:直接在浏览器输入: http://{zookeeper_ip}:8080/commands/mntr,如果正常返回有结果,则说明zookeeper是正常的,否则就是zookeeper自身的问题。
该问题只影响zookeeper的指标监控,不影响ckman的正常使用。
[ckman版本]
v2.2.5
[问题描述]
用户管理普通用户不填写配额和限额策略报错:

[解决方案]
在配额和限额处填写default即可。

[ckman版本]
v2.2.5
[问题描述]
mysql作为持久化策略时,创建集群时如果指定逻辑集群会报错:record not found。

[解决方案]
改用local持久化策略,或者不指定逻辑集群 ,等待下个版本release会修复。
多数据目录怎么办?