Configuração ideal do gatilho “Processor load is too high” no Zabbix

2

Eu monitora aprox. 10 servidores Linux com 4 núcleos de CPU, cada um com o Zabbix.
Eu estava recebendo muitos alarmes falsos do gatilho "O carregamento do processador está muito alto" ultimamente.
A expressão do acionador "O carregamento do processador é muito alto" era:

{Template OS Linux:system.cpu.load[percpu,avg1].avg(5m)}>5 

que é o padrão.

Então eu levantei de 5 a 12 para obter menos alarmes, mas de alguma forma pensei que essa não é a melhor maneira de lidar com isso. Por isso, fiz algumas pesquisas e construí um novo gatilho.

{Template OS Linux:system.cpu.util[,user].max(5m)}>75

Eu perguntaria à comunidade:

  1. A nova expressão refletirá a sobrecarga da CPU real melhor que a original um?
  2. Você faria de alguma forma diferente / melhor / mais otimizado?
  3. Como você comporia uma expressão, que faria isso:
    O gatilho disparará se:

    • 5 min número médio de processos esperando na fila perCPU será mais de 3 AND
    • a utilização máxima da CPU durante os últimos 5 minutos será superior a 75%

Eu segui os exemplos em artigo e tentou com

({Template OS Linux:system.cpu.load[percpu,avg1].avg(5m)}>3
&
{Template OS Linux:system.cpu.util[,user].max(5m)}>75)

mas eu falhei.
Servidor Zabbix retornou erro:
Expressão de gatilho incorreta. Verifique a parte da expressão iniciando em "& {Template OS Linux: system.cpu.util [ usuário] .max (5m)} > 75)". Como eu não sou um especialista do Zabbix (ainda), os comentários serão muito bem informados. Obrigado.

    
por Reb 20.11.2014 / 11:49

2 respostas

4

Por que o alarme "Carregar o processador está muito alto" no seu caso? É um verdadeiro sintoma para mim - a CPU está saturada.

IMHO: use apenas

{Template OS Linux:system.cpu.load[percpu,avg1].avg(5m)}>5 

mas o limite depende do seu servidor - o que e como está sendo feito. Mas o valor de > 5 é suspeito para mim. Exemplo: O uso da CPU pode ser baixo, mas a carga da CPU alta - nesse caso, pode ser sintoma de operações de disco IO "lentas" (você precisará verificar o uso de iowait da CPU de métricas, o tamanho da fila de disco, ...). Sua nova expressão de gatilho combinada não detecta esse caso.

Eu recomendo artigo sobre utilização / saturação do Senior Performance Architect na Netflix: link

    
por 21.11.2014 / 09:34
3

Eu sugeriria algo assim:

{Template OS Linux:system.cpu.load[percpu,avg15].avg(15m)}>1.8

O objetivo é que você deseja um tempo de resposta mais lento em seus alarmes em vez de aumentar para um limite mais alto. Muitas vezes, uma explosão de atividade que desaparece após 5 ou 10 minutos não é um grande problema, pode ser perfeitamente normal, dependendo do que você está fazendo lá. No entanto, se a carga pesada persistir por um período significativo de tempo, é quando você deseja saber sobre isso. Ajuste o limite de 1,8 para cima ou para baixo, dependendo de como seria sua carga de trabalho típica.

Em termos de sua expressão aqui:

{Template OS Linux:system.cpu.util[,user].max(5m)}>75

Eu não recomendaria usar a função max () nesse contexto, porque ela será sensível até mesmo a uma explosão momentânea de alta atividade ... a menos que seja o que você realmente quer, mas não se queixe de receber muitos alertas.

Finalmente, sim, você pode usar expressões booleanas e há uma página de documentação para ajudá-lo. Confira isso:

link

    
por 21.08.2017 / 04:35