Alerta sobre falha simultânea de vários serviços de monit

1

Estamos usando o Monit para verificar nossos servidores da web. Quando a verificação falha (ou obtém êxito), o conteúdo correspondente em uma página de status é atualizado por meio de um script de shell como este:

check host web-a-https with address web-a.company.local
  if failed
    port 443
    protocol https
    request /ping.php
    content = "OK"
    with ssl options {verify: enable}
  then exec "/usr/local/sbin/statuspage/[COMPONENT]-partial"
    ELSE IF recovered THEN EXEC "/usr/local/sbin/statuspage/[COMPONENT]-up"

Agora, temos uma situação em que queremos definir o status de conteúdo como "Interrupção principal" se web-a-https e web-b-https BOTH estiverem inativos.

Eu imaginei que isso seria possível com dependências e tentei isso:

check program demo-group with path /bin/true
  depends on web-a-https, web-b-https
  if status == 0 then exec '/usr/local/sbin/statuspage/[COMPONENT]-up'
  if status == 1 then exec '/usr/local/sbin/statuspage/[COMPONENT]-down'

Eu percebi que o serviço só seria monitorado se as duas dependências estivessem ativas e o teste (o que é sempre verdadeiro) fosse aprovado. Isso não funciona de forma alguma porque os eventos inativos da web-a-https, web-b-https não parecem ser propagados para o "nível superior".

Eu tentei configurar um comando start / stop para o serviço de grupo, mas isso também não funciona.

Existe uma maneira de fazer isso em monit, ou eu tenho que construir alguma cola de shell script para fazer isso acontecer?

    
por Phillipp 16.12.2015 / 22:00

0 respostas