Почему мой сервер руля перезагружается каждые 5 минут?
Мой сервер Rudder работает отлично, но каждые 5 минут или около того я выхожу из своей сессии HTML, и появляется экран ""Rudder загружается, пожалуйста, подождите ". Через некоторое время я могу использовать его снова нормально.
Как мне остановить это поведение?
1 ответ
На сервере Rudder есть правило конфигурации, которое гласит: "Сервер руля должен быть включен и доступен. Если нет, попробуйте перезапустить его". и по умолчанию агент проверяет правила каждые 5 минут.
Правило проверяется путем доступа к URL http://localhost:8080/rudder/api/status
и ожидание текстового ответа "ОК" со статусом 200 ОК.
Итак, чтобы проверить, что проблема связана с этим правилом, вы можете попробовать выполнить следующую команду от имени пользователя root на сервере Rudder:
$ /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 !
Если это так, после перезапуска руля выполните следующую команду вручную:
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? Необходимо, чтобы оно было "истинным", если вы не хотите менять другие вещи.
- Есть ли у вас брандмауэр, фильтрующий соединение с локального хоста на себя?
- возможно, это что-то о том, что IPv6 localhost не разрешается правильно.
В последнем случае: Java очень старается использовать IPv6 поверх IPv4, поэтому, если у вас есть файл /etc/hosts:
::1 localhost
Это может привести к проблеме. Попробуйте изменить это на:
::1 ip6-localhost
И убедитесь, что у вас есть строка, похожая на:
127.0.0.1 localhost