TiDB在更新版本的时候初始化Prometheus的配置文件失败

一、背景是更换版本了之后,按照正常扩容节点也会报错。

    我们安装的TiDB版本是v4.0.0,因为环境还在试用阶段,所以会经常增删节点。原因是我们违背官方说明,强行用机械盘上了,跑不过单机的mysql,所以加了很多tikv节点,一共8个。每次都很顺利,而且在grafana也会调整展示增删的节点。这次因为性能和PD面板功能的原因,我升级到了v4.0.7版本,

tiup cluster upgrade lgdb v4.0.7

 

升级的时候也没有报错。但是我在扩容PD的时候就报错了,

tiup cluster scale-out lgdb scale-out-pd.yaml

因为处理问题的时候比较紧急,这博文是事后写的,所以无法截图保留。扩容的配置文件。

cat scale-out-lg-pd.yaml
pd_servers:
  - host: 10.3.22.128

我以为有报错是不成功的,又执行了一下扩容命令,报的是端口冲突的错误,然后我觉得可能扩容成功的了。就查看了一下集群状态。

tiup cluster display lgdb

发现节点有了,只是在grafana那里没有展示。后来我又扩展了tikv,也是报同样类似的错误:init config failed,下图是我Google的历史记录,不过完全没有参考。TiDB在更新版本的时候初始化Prometheus的配置文件失败

 

二、重现错误。

    尽管该集群是使用,我也不能耽搁其他同事的使用,我就又搭了一个环境来复现这种错误。

tiup cluster deploy tidb v4.0.0 ./topology.yaml --user tidb --skip-create-user

仍然是v4.0.0版本,然后升级到v4.0.7版本。然后改名,

tiup cluster rename tidb njdb

终于也报 init config failed 了,同时也有结论了,果然是版本引起无法初始化Prometheus的配置文件。然后我可以在测试的TiDB集群上调试,寻找最合理的及决方案。

三、问题的解决。

    首先避免不了一通百度、Google,完全没有相关描述,倒是有人遇到同样的问题,但是没人回答,后来我回答了。首先在Prometheus节点上的日志,也只是说 init config failed ,并没有说明原因。就到看节点的配置文件。什么重启节点,重启集群,修改中控机的配置文件……全部都试过了,还是没用。也想到了回退版本,幸好没有用到。最后在看官方文档,无意中发现tiup客户端需要更新。然后我就更新了tiup客户端。

tiup update cluster

然后执行重载配置,

tiup cluster reload njdb

终于成功了。

上一篇:语音信号处理——经验模式分解(EMD)及希尔伯特-黄变换(HHT)简介及matlab实现


下一篇:基于HHT和RBF神经网络的故障检测——第二篇论文读后感