No meu ambiente, gerenciamos vários serviços executados em dispositivos drbd (tradicional, contêineres lxc, contêineres docker, bancos de dados, ...). Usamos a pilha opensvc ( link ) que é gratuita e opensource e fornece recursos de failover automáticos. Abaixo está um serviço de teste com drbd, e um aplicativo de redis (desativado no exemplo)
Primeiro, no nível do cluster, podemos ver na saída svcmon
que:
- 2 nós cluster opensvc (nó-1-1 e nó-1-2)
- o serviço servdrbd está ativo (em maiúscula, verde O) no nó-1-1 e em espera (em minúsculas, o verde) no nó-1-2
- node-1-1 é o nó mestre preferido para este serviço (acento circunflexo próximo a O maiúsculo)
No nível de serviço svcmgr -s servdrbd print status
, podemos ver:
- no nó primário (à esquerda): podemos ver que todos os recursos estão ativos (ou em espera; isso significa que eles devem permanecer ativos quando o serviço estiver sendo executado no outro nó). E sobre o dispositivo drbd, é relatado como Primário
- no nó secundário (à direita): podemos ver que apenas os recursos standby estão ativos e o dispositivo drbd está no estado Secundário .
Para simular um problema, desconectei o dispositivo drbd no nó secundário e produzi os seguintes avisos
É importante ver que o status de disponibilidade do serviço ainda está up , mas o status geral do serviço está degradado para warn , o que significa "ok, a produção ainda está funcionando bem , mas algo dá errado, dê uma olhada "
Assim que você estiver ciente de que todos os comandos opensvc podem ser usados com o seletor de saída do json ( nodemgr daemon status --format json
ou svcmgr -s servdrbd print status --format json
), é fácil conectá-lo a um script NRPE e monitorar apenas os estados do serviço. E como você viu, qualquer problema no primário ou secundário é preso.
O nodemgr daemon status
é melhor porque é a mesma saída em todos os nós do cluster e todas as informações de serviços do opensvc são exibidas em uma única chamada de comando.
Se você estiver interessado em um arquivo de configuração de serviço para essa configuração, eu o publiquei em pastebin aqui