Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prometheus 当一个节点';谁的特工倒下了?_Prometheus_Consul - Fatal编程技术网

Prometheus 当一个节点';谁的特工倒下了?

Prometheus 当一个节点';谁的特工倒下了?,prometheus,consul,Prometheus,Consul,我使用的是Prometheus中的service discovery,使用的是Concur,它在大部分情况下运行良好。我在我的节点上运行导出器,在这些节点上运行领事代理,并且我已经通过代理在领事集群中注册了导出器服务(使用对代理的REST调用)。普罗米修斯正确地找到了注册出口商,并删除了指标。此外,普罗米修斯在注册服务(出口商)关闭时正确地发出警报。但是…问题是,当一个节点丢失了一个concur代理(要么只是代理进程,要么整个节点都宕机)时,concur集群就根本看不到该节点了!然后,普罗米修斯

我使用的是Prometheus中的service discovery,使用的是Concur,它在大部分情况下运行良好。我在我的节点上运行导出器,在这些节点上运行领事代理,并且我已经通过代理在领事集群中注册了导出器服务(使用对代理的REST调用)。普罗米修斯正确地找到了注册出口商,并删除了指标。此外,普罗米修斯在注册服务(出口商)关闭时正确地发出警报。但是…问题是,当一个节点丢失了一个concur代理(要么只是代理进程,要么整个节点都宕机)时,concur集群就根本看不到该节点了!然后,普罗米修斯甚至不知道节点的情况,因此,他甚至不尝试获取节点的数据。所以,我没有收到警报。换句话说,当一个代理在一个节点上宕机时,它就消失了,我甚至不知道它。我尝试过“leave_on_terminate”:在代理的agent.json配置中为false,但这没有什么区别

是的,我知道我也可以使用DNS服务记录进行服务发现,这将使Prometheus中的节点保持可见,即使当Consor代理宕机时也是如此,但在代理启动后的其余时间里,我都会重复使用度量。我想坚持只使用concur范例进行服务发现,而不是在其中混合使用DNS服务记录方法。我还希望避免单独监控代理(即通过blackbox exporter)


有什么想法吗?请帮忙。谢谢

我们在这一头解决了这个问题。现在一切正常


解决方案摘要:当代理容器中的agent.json配置中有“leave_on_terminate”:false时,当代理容器在节点上发生故障时,concur集群显示为红色(最初的问题),普罗米修斯只是默默地停止在该节点上刮取度量值——并且不会发出警报(与原始问题具有相同效果的新问题)。我们最终也在节点上使用了领事导出器,在节点的领事代理上发布指标。这样,普罗米修斯在关闭领事代理时仍然没有发出警报,但领事导出器指标显示它已关闭。因此,我们在rules.yml配置的领事部分添加了普罗米修斯规则,以便在Concur exporter度量显示Concur代理已关闭。这是端到端的工作。

Hmm,很有意思。结果表明,只有实例上的agent.json配置文件具有“leave\u on\u terminate”:其中的错误行,但容器的agent.json没有。是的,我没有提到领事代理已被Dockerized。我不认为这是一个重要的细节。我一直认为容器正在装入卷,因此应该接受更改。但是docker inspect提醒我,我只是在使用该本地卷作为临时位置创建配置,然后将其复制到Docker映像中(通过Ansible tasks)。因此,不管怎样,现在请“离开\u打开\u终止”:false位于容器的agent.json中,它正在工作。停止代理容器现在会导致节点/服务在Consor集群中显示为红色。但是…Prometheus看不到它的原始问题仍然存在。Prometheus没有提醒它无法为有问题的节点获取度量。因此我仍在研究这个问题。