我已经配置了一个简单的heartbeat 6.1监视器:
heartbeat.monitors:
- type: http
schedule: '@every 10s'
urls:
- 'http://service/status'
mode: all
check:
response:
status: 200
哪个有效。监视器配置还支持通过设置键
check.response.body
来检查响应的内容 ...
mode: all
check:
response:
status: 200
body: UP
该服务返回
UP
(使用curl检查),但是由于以下错误,心跳检测到该服务已关闭:服务和心跳都作为docker容器运行,并共享一个公共(public)网络(显然,否则第一个配置将无法工作)。
错误的原因可能是什么?是服务问题(即过早关闭连接)还是心跳问题?我有另一个服务正在运行(一个简单的node.js表达应用程序),该服务没有表现出这种行为(因此将指出服务问题)。如何排除故障?
编辑
在虚拟docker网络上运行tcpdump / wireshark显示,该服务每十秒使用
UP
正确响应请求(如心跳配置中所配置)。因此,显然所有请求都成功。为什么 flex 心跳仍然对闭合连接感到抱怨? 最佳答案
我有同样的问题,但使用https检查。似乎是心跳中的错误,将在心跳6.5.0版中修复。
这是github上问题的链接:https://github.com/elastic/beats/issues/8588
拉取请求:https://github.com/elastic/beats/pull/8660
关于docker - 弹性心跳响应检查TCP错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47952070/