tidb 5.1 执行tiup cluster reload tidb-test -R prometheus后原来的配置文件被覆盖

【 TiDB 使用环境】生产环境 【 TiDB 版本】5.1 【遇到的问题】尝试修改告警规则文件node.rules.yml,然后尝试tiup cluster reload tidb-test -R prometheus重新加载下配置文件,但是执行完后我的node.rules.yml配置文件被重置了,我的新修改的内容也没有了; 问题2:为啥执行tiup cluster reload tidb-test -R prometheus会从新生成tikv pd 等的配置文件呢? ![%E5%9B%BE%E7%89%87|690x472](upload://tDIGR846NwRajCzbwBEGtClaflK.png) 【复现路径】做过哪些操作出现的问题`
【问题现象及影响】

【附件】

请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。

tiup cluster edit-config XXX集群名称,编辑试试

1.你是修改的/tidb-deploy/prometheus-9090/conf/node.rules.yml这里吧,可以尝试修改/tidb-deploy/prometheus-9090/bin/prometheus/node.rules.yml然后reload,这样应该不会被覆盖。
2.-R 是指定要重启的角色。 -R prometheus应该只是指定prometheus重启,还是要刷新所有节点配置。

1 个赞

不需要reload ,只要restart 就会生效,reload 的确会覆盖

1 个赞

感谢,看样子是再执行reload的时候 会用/tidb-deploy/prometheus-9090/bin/prometheus/node.rules.yml这个目录下的rules文件去重新覆盖/tidb-deploy/prometheus-9090/conf/node.rules.yml下的对应文件, 我还有个问题为啥我-R prometheus, 还会从新regenerate config tikv tidb pd等的配置文件呢?看了下对应的配置文件确实从新生成了

不管带不带-R参数,reload本身就会刷新所有节点配置,包括tikv tidb pd等。-R只是指定了要重启的节点,不带-R就重启所有节点。

嗯嗯 了解了,多谢,那您觉得他这样设计是不是有风险呀,从新生成了下tikv tidb pd组件的配置文件,那岂不是有风险呀

我觉得正常吧, tiup cluster reload是配合 tiup cluster edit-config使用的,用 tiup cluster edit-config修改参数后得重新加载配置才会生效。所以执行reload直接下发所有最新的配置让所有修改的参数生效。比如只修改prometheus的配置加-R只重启prometheus就好,也不影响其他组件。

1 个赞

嗯嗯 ,多谢,好像配置了rule_dir: /tidb-deploy/prometheus-9090/conf后,修改promethus的规则后,使用tiup reload后相关文件就不会被覆盖了,但是主配置文件prometheus.yml依旧会被覆盖,所以总结一下就是如果想修改promethus的相关配置,就不要使用tiup reload了 ,直接systemctl restart prometheus-9090.service就可以了,如果非要使用tiup reload那么就去修改/tidb-deploy/prometheus-9090/bin/prometheus/node.rules.yml这个路径的文件,但是如果想修改主配置文件prometheus.yml,建议systemctl restart prometheus-9090.service,不要使用tiup reload了 ,(主配置文件prometheus.yml在/tidb-deploy/prometheus-9090/bin/prometheus/和 /tidb-deploy/prometheus-9090/conf路径下文件内容不一样,我再研究下具体是怎么覆盖的)

是的,尽量少影响主集群