Eu tenho uma configuração semelhante, com o Sensu Server, API e Uchiwa em uma camada de cluster, um cluster de nós RabbitMQ e uma configuração mestre / escravo do Redis.
Meu entendimento é que todas as mensagens do cliente vão para a fila para processamento. Se a fila não estiver disponível, o processo do servidor não poderá alcançar a fila para ver que o processo do cliente não pode alcançar a fila.
A maneira como eu resolvi isso (o que faz sentido para as propriedades da minha empresa e do ambiente) é ter vários clusters Sensu, um para cada ambiente, e cada cluster assiste aos principais pontos de disponibilidade do outro cluster Redis, normalmente atingindo os componentes do cluster oposto. Endpoints do balanceador de carga.
Outra maneira de resolver isso é instalando uma pequena instância do RabbitMQ na sua instância do Sensu Server que o processo do Server conhece e o Sensu Client do Sensu Server se comunica. (Isso dependeria do Sensu Server poder assistir a várias filas.)
Eu tenho ficado feliz com a configuração que temos, pois nos fornece uma garantia razoável de que nosso sistema de monitoramento está, pelo menos, tão disponível quanto as coisas que está assistindo. Se você tem a capacidade de criar vários clusters, eu absolutamente encorajaria isso. (Eu recomendo isso, independentemente do produto de monitoramento usado.) Se não, mas você tem tempo de engenharia, sugiro investigar se o RabbitMQ local adicional é possível.