Estou começando a migrar do Sysfence para o Monit em uma caixa Linux do RHEL e gostaria de saber se é possível criar o seguinte equivalente sysfence em Monit.
Configuração do Sysfence (parcial)
Por exemplo, nosso arquivo sysfence.conf declara o seguinte para verificar as condições de carga média.
rule "high load" {
la1 >= 5.0 and
{
{ la5 > 3.0 }
or
{ la15 > 2.0 }
}
}
run '/bin/high-load.sh'
step 300
Monit configuration (uma tentativa de simular as condições da média de carga do Sysfence)
Para o arquivo monitrc, criei a seguinte instrução que passou na verificação de sintaxe de configuração, mas o alerta fornece apenas o valor interceptado da média de carregamento de 15min em vez de todas as condições. Uma diferença notável é que usando "ou" no lugar do segundo "e" produz um erro de sintaxe na inicialização de monit, então AFAIK "ou" lógica não é permitida.
check system our.server.tld
if loadavg (1min) > 1 and loadavg (5min) > 0.5 and loadavg (15min) > 0.25 then alert
Para o caso de teste, estou usando valores de disparo muito menores para alcançar os limites mais rapidamente em uma caixa de teste com muito pouco uso no momento. Quando uma das condições foi atendida (15min loadavg) nesse caso, recebi o seguinte alerta sem mencionar a média de carga de 1min e 5min, embora as outras condições não tenham sido atendidas, portanto, parece que as condições "e" são ignoradas .
Os valores médios reais da carga foram: média da carga: 0,34, 0,47, 0,53 . Estou testando em um servidor com muito pouco tráfego e executei o comando find para aumentar a carga do sistema. Além disso, parece que apenas uma casa decimal é permitida, portanto, o valor de 0,25 para a verificação de 15min foi aparentemente arredondado para baixo.
E-mail de alerta enviado da Monit
Resource limit matched Service our.server.tld
Date: Thu, 01 Nov 2012 11:34:58
Action: alert
Host: our.server.tld
Description: loadavg(15min) of 0.5 matches resource limit [loadavg(15min)>0.2]
Your faithful employee,
Monit