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