迁移tidb监控异常

tidb版本为v3.0.3

参照 【SOP 系列 02】 Prometheus 等监控组件迁移 文档迁移Prometheus、pushgateway、grafana和alertmanager组件

涉及修改的inventory.ini配置文件如下:

[monitoring_servers]

prometheus ansible_host=ip1 prometheus_port=9590 pushgateway_port=9591

[grafana_servers]

grafana ansible_host=ip2 grafana_port=3500 grafana_collector_port=8997

[monitored_servers]

ip1 node_exporter_port=9100 blackbox_exporter_port=9115

ip2 node_exporter_port=9100 blackbox_exporter_port=9115

[alertmanager_servers]

alertmanager ansible_host=ip2 alertmanager_port=9593 alertmanager_cluster_port=9597

以下步骤均执行正常,无任何报错

ansible-playbook bootstrap.yml -l ip1

ansible-playbook deploy.yml -l ip1 -t prometheus

ansible-playbook deploy.yml -l ip1 -t pushgateway

ansible-playbook deploy.yml -l ip2 -t grafana

ansible-playbook deploy.yml -l ip2 -t altermanager

ansible-playbook deploy.yml -l ip2 -t node_exporter,blackbox_exporter

ansible-playbook deploy.yml -l ip1 -t node_exporter,blackbox_exporter

ansible-playbook start.yml -l ip1 -t prometheus

ansible-playbook start.yml -l ip1 -t pushgateway

ansible-playbook start.yml -l ip2 -t grafana

ansible-playbook start.yml -l ip2 -t altermanager

ansible-playbook start.yml -l ip1 -t node_exporter,blackbox_exporter

ansible-playbook start.yml -l ip2 -t node_exporter,blackbox_exporter

最后一个步骤,如下,出现如图报错

ansible-playbook rolling_update_monitor.yml

经排查ip1和ip2上有部分组件的文件并未包含所需要的完整的Prometheus、pushgateway、grafana和alertmanager组件相关文件,下面2个图为ip1和ip2对应的目录结构图。ssh互信是正常的,2个ip对应机器新建成功了部分目录和同步成功了部分文件。

帮确认下是什么原因? 该怎么排查,谢谢

您好:
这个报错是说/etc/systemd/system目录下不存在这个文件,请检查确认下,多谢

没有找到这个文件,Prometheus相关的配置和启动命令等文件,并没有推送到新的机器上。

奇怪的是在 deploy.yml 和 start.yml 阶段并没有报任何错误信息出来。

原Prometheus和grafana监控,使用的是默认的端口,在部署dm集群后,被dm的Prometheus和grafana监控给覆盖掉了,现在是要准备把tidb的Prometheus和grafana监控迁移到新机器上去。

大佬帮看看该怎么定位原因呢

那说明没有部署成功呀,的确认一下为啥没有部署成功,可以重新 deploy 一下 prometheus 试试,deploy 以后验证一下 ip1 的节点是否有对应的 prometheus 服务。

ansible-playbook deploy.yml -l ip1 -t prometheus

ansible-playbook deploy.yml -l ip1 -t pushgateway

这2个命令deploy先后试过几次了,没有报错信息出来,请问要怎么排查是什么原因deploy失败呢 ?

现象是按照这个操作不部署,没有报错也没有部署成功吧 ? 如果是这样的,那么建议确认一下参数配置是否正确,另外 ansible 执行报错会记录具体的操作过程,你要确认一下 deploy 操作是否执行成功。

除了修改inventory.ini配置文件中的monitoring_servers、monitored_servers、grafana_servers、alertmanager_servers配置组外,还需要修改其他配置文件吗?

比如Prometheus和pushgateway的配置

[monitoring_servers]

prometheus ansible_host=192.168.17.158 prometheus_port=9590 pushgateway_port=9591

在执行 ansible-playbook deploy.yml -l 192.168.17.158 -t prometheus 时看到如下信息

PLAY [deploying pushgateway] *********

skipping: no hosts matched

PLAY [deploying prometheus] ***********

skipping: no hosts matched

这是提示跳过部署pushgateway和prometheus目录和相关文件了吗? 还需要修改什么配置文件呢

如下图 192.168.17.158机器为新的Prometheus和pushgateway目标部署地址

现象:配置文件inventory.ini里已改为192.168.17.158了,但deploy阶段没有生效

谢谢

看起来像是没有识别到参数,可以按照 SOP 文档中修改下试试


1 个赞

果然是大佬 ,把tag名从配置文件里拿掉,直接配置ip就可以通过了 。

使用同样的步骤在迁移dm的监控时出现了以下错误

请问6783端口是dm的alertmanager组件在什么地方使用和配置的呢? 可能是目标机器上已经存在了一套dm监控,再增加一套dm监控时出现了端口重复使用的问题 该端口有类似alertmanager_port、prometheus_port这种自定义变量吗 ? 谢谢

goroutine 1 [running]: github.com/prometheus/alertmanager/vendor/github.com/weaveworks/mesh.(*Router).listenTCP(0xc4201320e0) /go/src/github.com/prometheus/alertmanager/vendor/github.com/weaveworks/mesh/router.go:108 +0x17f github.com/prometheus/alertmanager/vendor/github.com/weaveworks/mesh.(*Router).Start(0xc4201320e0) /go/src/github.com/prometheus/alertmanager/vendor/github.com/weaveworks/mesh/router.go:87 +0x2b main.main() /go/src/github.com/prometheus/alertmanager/cmd/alertmanager/main.go:217 +0x36f0 level=info ts=2020-04-01T07:19:31.614289321Z caller=main.go:136 msg=“Starting Alertmanager” version="(version=0.14.0, branch=HEAD, revision=30af4d051b37ce817ea7e35b56c57a0e2ec9dbb0)" level=info ts=2020-04-01T07:19:31.614369186Z caller=main.go:137 build_context="(go=go1.9.2, user=root@37b6a49ebba9, date=20180213-08:16:42)" panic: listen tcp4 0.0.0.0:6783: bind: address already in use

可以配置的,就像配置 tidb 集群一样,可以参考这个自定义变量写入到 inventory 文件中即可,都在 dm-ansible/group_vars 目录下。

https://github.com/pingcap/dm/blob/v1.0.2/dm/dm-ansible/group_vars/alertmanager_servers.yml#L3

查了下应该是 https://github.com/weaveworks/weave/issues/3460 weave组件进行分配的端口?请问dm里有定义weave相关的端口变量吗 ?

在inventory.ini里配置alertmanager_port端口为6783以外的任何端口,都会出现这个错误

谢谢

另开一个帖子,跟进下吧,最初开帖的问题已经解决了的。多谢。

好的 多谢

辛苦。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。