Tag: 健康监测

用于Mac容器的Docker托pipenetworking – Consul运行状况检查连接被拒绝

我在我的服务中有一个HTTP健康检查,显示在localhost:35000/health 。 目前它总是返回200 OK 。 运行状况检查的configuration是通过HTTP API而不是通过服务configuration来编程的,但本质上是: set id: service-id set name: health check set notes: consul does a GET to '/health' every 30 seconds set http: http://127.0.0.1:35000/health set interval: 30s 当我直接在我的主机上以开发模式( consul agent -dev -ui )运行领事时,健康检查通过没有任何问题。 但是,当我在docker集装箱运行领事时,运行状况检查失败: 2017/07/08 09:33:28 [WARN] agent: http request failed 'http://127.0.0.1:35000/health': Get http://127.0.0.1:35000/health: dial tcp 127.0.0.1:35000: getsockopt: connection refused 据我所知,docker集装箱启用了与领主版本相同的状态: […]

基于健康检查重新启动不健康的docker工具容器

我使用的是Docker version 17.09.0-ce我发现容器被标记为不健康的检查失败。 有没有select让容器重新启动,而不是保持容器不健康。

弹性心跳响应检查TCP错误

我configuration了一个简单的心跳6.1监视器: heartbeat.monitors: – type: http schedule: '@every 10s' urls: – 'http://service/status' mode: all check: response: status: 200 哪个工作。 监视器configuration还支持通过设置密钥check.response.body检查响应的内容 … mode: all check: response: status: 200 body: UP 服务返回UP (使用curl检查),但由于以下错误,心跳检测到服务正在closures: 读取tcp xyza:port-> bcde:80:使用封闭的networking连接 服务和心跳都作为docker容器运行,并共享一个共同的networking(显然,否则第一个configuration将无法正常工作)。 什么可能是错误的原因? 这是服务问题(即过早closures连接)还是心跳问题? 我有另一个服务正在运行(一个简单的node.js快速应用程序),它没有performance出这种行为(以便指出一个服务问题)。 如何解决问题? 编辑 在虚拟dockernetworking上运行tcpdump / wireshark显示该服务正确响应请求,每隔10秒(在心跳configuration中configuration)。 所以显然所有的请求都是成功的。 为什么弹性心跳仍然抱怨closures连接?

如何在不使用ELB的情况下实现EC2实例的自定义运行状况检查?

场景: 我在自动缩放组后面运行一个EC2实例,但是我没有使用ELB。 在EC2实例内部,一个带有Web服务器的docker容器正在运行。 我想添加一个简单的健康检查,即Web服务器仍然响应,所以如果docker容器closures,自动伸缩组可以replace实例。 从我所看到的,只有ELB支持自定义健康检查。 因为我不需要ELB,所以我想知道在cron作业中运行EC2实例内的健康检查是否合理。 如果Web服务器没有响应(本地),则可以像这样设置健康状态: export INSTANCE=$(curl http://169.254.169.254/latest/meta-data/instance-id) export AWS_DEFAULT_REGION=$(curl http://169.254.169.254/latest/dynamic/instance-identity/document|grep region|awk -F\" '{print $4}') aws autoscaling set-instance-health –instance-id $INSTANCE –health-status Unhealthy 我认为,它应该有效,但是看起来有些复杂。 有没有更好的方法来实现自定义健康检查(不使用ELB)?

Docker(1.12)容器的健康检查命令(不在Dockerfile!中)

docker版本1.12 ,我从这里得到了一个Dockerfile FROM nginx:latest RUN touch /marker ADD ./check_running.sh /check_running.sh RUN chmod +x /check_running.sh HEALTHCHECK –interval=5s –timeout=3s CMD ./check_running.sh 我能够使用check_running.sh shell脚本来进行更新和运行状况检查。 在这里, check_running.sh脚本被复制到image ,所以启动的容器具有它。 现在,我的问题是有没有办法从外面的健康检查容器和脚本也位于外面。 我除了一个运行状况检查命令来获得容器的性能(取决于我们在脚本中写的内容),如果容器运行不好,它应该回滚到之前的版本( 监视容器的进程的types,如果它不好,应该回滚到前面 ) 谢谢