Я настроил Sensu с API и сервером, работающими на одном экземпляре, и RabbitMQ, работающим на отдельном экземпляре. Это хорошо работает для нас; однако, если сервер или api теряют связь с RabbitMQ, сервер Sensu не отправляет никаких уведомлений. Я ожидал, что сервер отправит No keep-alive sent from client in over 120 seconds
уведомления для каждого клиента в этом сценарии. В нынешней ситуации с нашей настройкой, если RabbitMQ выходит из строя (или не удается подключиться к нему), весь мониторинг автоматически завершится ошибкой.
Как можно настроить Sensu для отправки уведомлений, когда сервер или API обрабатывает потерю связи с транспортом (RabbitMQ)? В целом, каковы лучшие практики для мониторинга программного обеспечения для мониторинга?
У меня аналогичная настройка с Sensu Server, API и Uchiwa на одном уровне кластера, кластером узлов RabbitMQ и настройкой Redis в качестве главного / подчиненного.
Насколько я понимаю, все клиентские сообщения помещаются в очередь на обработку. Если очередь недоступна, серверный процесс не может достичь очереди, чтобы увидеть, что его клиентский процесс не может достичь очереди.
Способ, которым я решил это (что имеет смысл для свойств моей компании и среды), заключается в наличии нескольких кластеров Sensu, по одному для каждой среды, и каждый кластер отслеживает ключевые точки доступности другого кластера Redis, обычно путем нажатия конечные точки балансировщика нагрузки противоположных компонентов кластера.
Другой способ решить эту проблему - установить крошечный экземпляр RabbitMQ на вашем экземпляре сервера Sensu, о котором знает процесс сервера и с которым взаимодействует клиент Sensu сервера Sensu. (Это будет зависеть от возможности сервера Sensu просматривать несколько очередей.)
Я доволен настройкой, которая у нас есть, поскольку она дает нам разумную уверенность в том, что наша система мониторинга, по крайней мере, так же доступна, как и то, что она наблюдает. Если у вас есть возможность раскручивать несколько кластеров, я бы настоятельно рекомендовал это. (Я рекомендую это независимо от используемого продукта для мониторинга.) Если нет, но у вас есть время на разработку, я бы посоветовал выяснить, возможен ли дополнительный локальный RabbitMQ.