Назад | Перейти на главную страницу

Альтернативные способы обнаружения зависших сервисов OpenStack / Linux?

Я заметил, что на некоторых из моих серверов Linux зависает служба Linux. Единственный способ узнать, что он завис, - это операции, которые зависят от службы, не работают, и когда я перезапускаю службу, она не останавливается, но запускается нормально.

Если я сделаю service <servicename> status он говорит, что работает, если я сделаю ps -ef | grep <servicename> он показывает только один процесс, работающий для этой службы, что является правильным.

Что еще я могу проверить, чтобы узнать, завис он или нет? Я пытаюсь быть активным в восстановлении этих сервисов, а также в определении того, почему они зависают.

Для справки, это в основном сервисы openstack-nova-compute и openstack-cinder-volume. Сервис тома cinder, который я могу обнаружить, когда rabbitMQ начинает расти, но то же самое не происходит с nova-compute.

Это очень сложно протестировать, потому что, как я уже сказал, я знаю только один способ - это если я попытаюсь что-то сделать на этом узле в OpenStack, и он выйдет из строя или зависнет, а затем я перезапущу службу. У меня есть скрипт для тестирования некоторых служб OpenStack, но с планировщиком nova может потребоваться некоторое время, чтобы разместить экземпляр на этом хосте, или хост может быть заполнен, поэтому он никогда не поместит другой экземпляр на этот хост.

Используйте решения для мониторинга, такие как Zabbix или Nagios, пишите скрипты / проверки для сервисов, включая мониторинг существования процесса, использования процессора процессов, использования памяти процессом, ответов API и т. Д.

Вы можете написать сценарий (задание cron?), Который проверяет временную метку журналов служб OpenStack, которые вы хотите отслеживать. Я думаю, что большинство сервисов проводят какой-то аудит и регистрируют его. Также любая операция должна генерировать журналы. Таким образом, если журналы не обновляются через некоторое время, вы можете попробовать перезапустить службу.

И, как вы упомянули, очень важно определить, почему они повешены.