Como desativar os alertas de início / parada da instância do Monit?

10

O Monit envia um alerta toda vez que o daemon monit é parado ou iniciado. Esta é uma informação desagradável e não útil.

De acordo com os documentos, defino:

set alert [email protected] but not on { instance }

... que deve enviar alertas para esse e-mail, a menos que estejam na categoria "instância", definida como inicia / para.

No entanto, ainda recebo alertas gerados. Isso é super chato. Claramente devo estar faltando alguma coisa.

Estamos executando o Monit 5.2.4

Winfield
fonte
Isso está coberto por esta pergunta?
precisa saber é

Respostas:

7

A Monit pode, de acordo com a documentação, gerar vários alertas:

Event:     | Failure state:              | Success state:
---------------------------------------------------------------------
action     | "Action done"               | "Action done"
checksum   | "Checksum failed"           | "Checksum succeeded"
bytein     | "Download bytes exceeded"   | "Download bytes ok"
byteout    | "Upload bytes exceeded"     | "Upload bytes ok"
connection | "Connection failed"         | "Connection succeeded"
content    | "Content failed",           | "Content succeeded"
data       | "Data access error"         | "Data access succeeded"
exec       | "Execution failed"          | "Execution succeeded"
fsflags    | "Filesystem flags failed"   | "Filesystem flags succeeded"
gid        | "GID failed"                | "GID succeeded"
icmp       | "Ping failed"               | "Ping succeeded"
instance   | "Monit instance changed"    | "Monit instance changed not"
invalid    | "Invalid type"              | "Type succeeded"
link       | "Link down"                 | "Link up"
nonexist   | "Does not exist"            | "Exists"
packetin   | "Download packets exceeded" | "Download packets ok"
packetout  | "Upload packets exceeded"   | "Upload packets ok"
permission | "Permission failed"         | "Permission succeeded"
pid        | "PID failed"                | "PID succeeded"
ppid       | "PPID failed"               | "PPID succeeded"
resource   | "Resource limit matched"    | "Resource limit succeeded"
saturation | "Saturation exceeded"       | "Saturation ok"
size       | "Size failed"               | "Size succeeded"
speed      | "Speed failed"              | "Speed ok"
status     | "Status failed"             | "Status succeeded"
timeout    | "Timeout"                   | "Timeout recovery"
timestamp  | "Timestamp failed"          | "Timestamp succeeded"
uid        | "UID failed"                | "UID succeeded"
uptime     | "Uptime failed"             | "Uptime succeeded"

Conseguimos resolver isso do nosso lado definindo (endereços alterados para proteger os inocentes):

SET ALERT [email protected] ON { invalid, nonexist, timeout, resource, size, timestamp}
SET ALERT [email protected] ON {action, permission, pid, ppid, instance, status}

Isso encaminha com êxito as mensagens para os endereços de que gostamos. Você pode configurá-los globalmente ou localmente, mas nossos alertas são globais.

Os subtítulos em TESTES DE SERVIÇO em: http://mmonit.com/monit/documentation/monit.html correspondem razoavelmente bem aos tipos acima.

Para cada processo ou recurso agendado do seu servidor, você deve poder apresentar o que é importante para você em inglês puro e corresponder esse desejo a um dos testes mencionados em TESTES DE SERVIÇO. Por exemplo, se estou executando o Apache, sei que me importo com:

  • O PID do arquivo PID ainda está em execução? (inexistente)
  • O PID mudou sem o meu conhecimento? (pid)
  • O serviço está respondendo em tempo hábil a uma reinicialização? (tempo esgotado)

Para um daemon personalizado que pesquisa, eu posso me preocupar se o arquivo de log está sendo atualizado com mensagens de status regularmente (registro de data e hora).

brokenbeatnik
fonte
1
Como você diz com o que se importa? Não consegui encontrar boa documentação sobre o que essas ações realmente significam. Por exemplo, "tempo de atividade" parece bastante útil, mas você não o encontra em sua lista.
precisa saber é o seguinte
Vou editar minha resposta para comentar.
brokenbeatnik
6

Estou usando o Monit versão 5.2.5 e usando o seguinte parou os alertas do monit

set alert [email protected] not {instance}

Thermionix
fonte
1

Simplesmente diga para parar após um certo número de tentativas no período N, de acordo com esses exemplos .

Ben Lutgens
fonte
Essa não é a notificação de um determinado processo ou serviço assistido que está sendo interrompido ou iniciado (o que é notícia), mas do próprio daemon monit sendo interrompido / iniciado, que é sempre intencional e não é notícia.
Winfield
1
Ooooh, e se você remover a linha "definir alerta" em global e colocar alertas explícitos em suas sub-rotinas de serviço?
precisa saber é o seguinte
isso funciona melhor .. basta definir os emails de alerta nas verificações .. remover o global.
Mike
1

Não foi possível corrigir isso no monit e tive que criar uma camada de processamento no email do monit para filtrar essas notificações de instância do monit antes da entrega, interceptando-as.

Estamos usando o dever de pager para acumular e despachar avisos do monit e de vários outros sistemas, portanto, neste caso, adicionei uma regra de filtragem no serviço Monit usando um regex baseado em assunto para filtrar os e-mails de aviso de instância do monit.

Winfield
fonte