为什么我的 Rudder 服务器每 5 分钟重启一次?

为什么我的 Rudder 服务器每 5 分钟重启一次?

我的服务器运行良好,但每隔 5 分钟左右,我就会被踢出 HTML 会话,并且会出现“Rudder 正在加载,请等待”屏幕。过一段时间后,我就可以正常使用它了。

我该如何阻止这种行为发生?

答案1

Rudder 在服务器上有一个配置规则,规定“rudder 服务器必须启动并可访问。如果不是,请尝试重新启动它”。默认情况下,代理每 5 分钟检查一次规则。

http://localhost:8080/rudder/api/status通过访问 URL并期望以 200 OK 状态显示“OK”文本响应来检查规则。

因此,为了验证问题是否与该规则有关,您可以尝试在 Rudder 服务器上以 root 身份执行以下命令:

    $ /var/rudder/cfengine-community/bin/cf-agent -KI

检查输出中是否有类似这样的内容:

2014-10-07T10:06:03+0200     info: /default/root_component_check/methods/'any'/default/generic_alive_check/commands/'/usr/bin/curl -s http://localhost:8080/rudder/api/status |/bin/grep -q OK'[0]: Executing 'no timeout' ... '/usr/bin/curl -s http://localhost:8080/rudder/api/status |/bin/grep -q OK'
2014-10-07T10:06:03+0200    error: /default/root_component_check/methods/'any'/default/generic_alive_check/commands/'/usr/bin/curl -s http://localhost:8080/rudder/api/status |/bin/grep -q OK'[0]: Finished command related to promiser '/usr/bin/curl -s http://localhost:8080/rudder/api/status |/bin/grep -q OK' -- an error occurred, returned 1
2014-10-07T10:06:03+0200     info: /default/root_component_check/methods/'any'/default/generic_alive_check/commands/'/usr/bin/curl -s http://localhost:8080/rudder/api/status |/bin/grep -q OK'[0]: Completed execution of '/usr/bin/curl -s http://localhost:8080/rudder/api/status |/bin/grep -q OK'
R: @@server-roles@@result_error@@server-roles@@server-roles-directive@@0@@Check rudder status@@None@@2014-10-07 08:06:02+00:00##root@#The http://localhost:8080/rudder/api/status web application failed to respond for the second time. Restarting jetty NOW !

如果是,请在 Rudder 重新启动后手动执行以下命令:

curl -v -X GET http://localhost:8080/rudder/api/status

如果未能返回“HTTP/1.1 200 OK”和“OK”,则说明存在某些因素阻碍测试成功。最可能的情况是:

  • 您是否更改了配置文件中的“rudder.rest.allowNonAuthenticatedUser”值/opt/rudder/etc/rudder-web.properties? 如果不想改变其他东西,必须将其设为“true”。
  • 您是否有一些从本地主机到其自身的防火墙过滤连接?
  • 也许是因为 IPv6 本地主机无法正确解析。

对于最后一种情况:Java 尽力在 IPv4 上使用 IPv6,因此如果在 /etc/hosts 中有:

 ::1     localhost

这可能会导致问题。尝试将其更改为:

::1     ip6-localhost

并检查是否有如下一行:

127.0.0.1       localhost

相关内容