Ad Widget

Collapse

Problemas em trigger

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • paulokrieger
    Junior Member
    • Oct 2018
    • 5

    #1

    Problemas em trigger

    Oi,

    Um cliente aqui pediu pra ser alertado se um item X der como resultado 14 por mais 5 minutos 3 vezes em uma hora. Já tentei com count, avg, etc, se alguém tiver alguma ideia agradeço.

    O tempo de coleta do item eh 10s. Ou seja se em 30 coletas der o valor 14, 3x na hora a trigger dispara.

    Obrigado
  • eduwutzl
    Senior Member
    Zabbix Certified Specialist
    • Jul 2010
    • 314

    #2
    Veja se resolve assim

    Code:
    host:item.max(5m)=14
    talvez assim também resolva

    Code:
    host:item.count(5m,0)>3
    Veja a lista de exemplos da documentação, vai clarear seus pensamentos https://www.zabbix.com/documentation...ers/expressionGrande abraço

    Eduardo Wutzl da Silva
    SRE Engenharia de Monitoração e Observabilidade

    Comment

    • paulokrieger
      Junior Member
      • Oct 2018
      • 5

      #3
      Originally posted by eduwutzl
      Veja se resolve assim

      Code:
      host:item.max(5m)=14
      talvez assim também resolva

      Code:
      host:item.count(5m,0)>3
      Veja a lista de exemplos da documentação, vai clarear seus pensamentos https://www.zabbix.com/documentation...ers/expressionGrande abraço
      No caso do primeiro código, quando o resultado vem 14 por > de 5min ele já está disparando. Preciso que ele dê 3 dessas de 5min em uma hora para ser alertado.
      Já olhei os exemplos e clareou sim, mas ainda não consegui chegar na expressão correta. Mesmo assim, valeu pela ajuda. Se tiver alguma outra ideia, ficarei agradecido

      Vlw

      Comment

      • cros
        Member
        • Jul 2017
        • 87

        #4
        paulokrieger, precisa ser seguido essas 3x que ultrapassar o valor 14 ?
        por exemplo, eu faço teste de ping a cada x tempo, mas vamos focar nas coletas, eu coloquei que se 3 coletas seguidas derem acima de sei la 100ms de latencia, a trigger dispara, mas da para fazer assim por exemplo:

        ping para latencia usando as 3 ultimas coletas seguidas mais recentes.

        {Nome_template:icmppingsec[,10,3000,32,4000].last(#1)}>100 and {Nome_template:icmppingsec[,10,3000,32,4000].last(#2)}>100 and {Nome_template:icmppingsec[,10,3000,32,4000].last(#3)}>100

        ping para disponibilidade usando media de 15 minutos, no caso sao coletas d 5 minutos, entao seram media de 3 coletas
        {Nome_template:icmpping[,10,3000,32,4000].avg(15m)}=0

        outra coisa, se vc criar uma trigger muito complexa, muito grande, que envolva muitas coletas e se vc nao tiver um hardware de alta performance ou sua aplicaçao e bd mal tunados, seu serviço zabbix_server ira cair q nem o neymar na seleçao kkkkk

        teste as triggers e veja o q lhe cai melhor, eu acho q a de latencia seria uma boa p vc usar.

        Comment

        • 1berto
          Senior Member
          • Sep 2018
          • 182

          #5
          Não sei se entendi bem o que você quis dizer...
          "14 por mais 5 minutos 3 vezes em uma hora"
          Seria 14 por mais de 5 minutos 3 vezes em uma hora?
          Essa regra está um bocado complexa, por exemplo... Imaginando que você leia o item a cada minuto.
          Se ele ficar oscilando, pela sua definição o trigger nunca dispararia.
          Para atender você teria que fazer um trigger com várias expressões 'fatiando' o horizonte de tempo:
          chave.count(0m,14,eq,5m) + chave.count(5m,14,eq,10m) + chave.count(10m,14,eq,15m) + ... + chave.count(55m,14,eq,60m) >= 3
          Cada componente desta equaçao conta o número de vezes que o valor lido é igual (eq) a 14 em uma faixa de tempo (0 a 5 minutos, 5 a 10, etc) diferente
          Soma estes valores e se for igual ou maior que 3 dispara o trigger.
          Repare que para o 3 funcionar há uma relação com a frequência de leitura do item, se o item for lido a cada minuto, se em um único minuto ele atingir 14, será retornado 1, ou seja se em quaisquer três minutos na última hora ele atingir o 14, o trigger dispara.
          Se para uma frequência de 1 minutos você quiser que Todas as leituras tenham que ser 14 então o número final teria que ser 15.
          Etc.
          Para a sua definição fazer sentido 'mais de 5 minutos' você terá que ler com uma frequencia maior que 5 minutos.
          Outra coisa, seria só 14 realmente? Se der 15, 16, não alarma?
          Não conheço seu negócio, mas está com cara que o seu cliente não tem uma ideia clara do alarme que deseja.



          Comment

          • paulokrieger
            Junior Member
            • Oct 2018
            • 5

            #6
            Originally posted by 1berto
            Não sei se entendi bem o que você quis dizer...
            "14 por mais 5 minutos 3 vezes em uma hora"
            Seria 14 por mais de 5 minutos 3 vezes em uma hora?
            Essa regra está um bocado complexa, por exemplo... Imaginando que você leia o item a cada minuto.
            Se ele ficar oscilando, pela sua definição o trigger nunca dispararia.
            Para atender você teria que fazer um trigger com várias expressões 'fatiando' o horizonte de tempo:
            chave.count(0m,14,eq,5m) + chave.count(5m,14,eq,10m) + chave.count(10m,14,eq,15m) + ... + chave.count(55m,14,eq,60m) >= 3
            Cada componente desta equaçao conta o número de vezes que o valor lido é igual (eq) a 14 em uma faixa de tempo (0 a 5 minutos, 5 a 10, etc) diferente
            Soma estes valores e se for igual ou maior que 3 dispara o trigger.
            Repare que para o 3 funcionar há uma relação com a frequência de leitura do item, se o item for lido a cada minuto, se em um único minuto ele atingir 14, será retornado 1, ou seja se em quaisquer três minutos na última hora ele atingir o 14, o trigger dispara.
            Se para uma frequência de 1 minutos você quiser que Todas as leituras tenham que ser 14 então o número final teria que ser 15.
            Etc.
            Para a sua definição fazer sentido 'mais de 5 minutos' você terá que ler com uma frequencia maior que 5 minutos.
            Outra coisa, seria só 14 realmente? Se der 15, 16, não alarma?
            Não conheço seu negócio, mas está com cara que o seu cliente não tem uma ideia clara do alarme que deseja.


            Bom dia,
            Estou fazendo um monitoramento de máquinas de chão de fábrica, essas máquinas me enviam valores de 10s em 10s, como RPM, status e etc.
            O status 0 significa que a máquina está sendo executada, se for status 14 significa que a máquina está com um tipo de defeito. O cliente quer que seja alertado se esse status 14 acontecer por mais de 5min, 3 vezes em um intervalo de 1h.
            Espero que tenham compreendido. Obrigado pelas ajudas!

            Comment

            • cros
              Member
              • Jul 2017
              • 87

              #7
              mano, coletas de 10 segundos, é muito agressivo, mas se vc tem poucos itens sendo monitorado, eu mudaria p 30 segundos pq o historico ficara enorme, eu deixaria por uma semana esse historico de 10 segundos de atualizacao d coletas, mas acho q essa trigger abaixo te ajudaria, porem vc precisa colocar o nome certo do seu template ou nome do host se vc fez manualmente e o nome do item q vc ta monitorando, analisa essa expressao, inclua e manda haver.

              {Nome_template:nome_do_item.last(#1)}>14 and {Nome_template:nome_do_item.last(#2)}>14 and {Nome_template:nome_do_item.last(#3)}>14

              Comment

              • paulokrieger
                Junior Member
                • Oct 2018
                • 5

                #8
                Originally posted by cros
                mano, coletas de 10 segundos, é muito agressivo, mas se vc tem poucos itens sendo monitorado, eu mudaria p 30 segundos pq o historico ficara enorme, eu deixaria por uma semana esse historico de 10 segundos de atualizacao d coletas, mas acho q essa trigger abaixo te ajudaria, porem vc precisa colocar o nome certo do seu template ou nome do host se vc fez manualmente e o nome do item q vc ta monitorando, analisa essa expressao, inclua e manda haver.

                {Nome_template:nome_do_item.last(#1)}>14 and {Nome_template:nome_do_item.last(#2)}>14 and {Nome_template:nome_do_item.last(#3)}>14
                São poucos itens, histórico pra 7d somente.
                Vou testar aqui e te aviso, valeu pela ajuda

                Comment

                • 1berto
                  Senior Member
                  • Sep 2018
                  • 182

                  #9
                  "..14 acontecer por mais de 5min..."
                  Quer dizer que seriam 30 leituras do valor 14 (6 vezes por minuto vezes 5 minutos) dentro de um intervalo de 5 minutos (ou seja todas as leituras nesses 5 minutos apontam o erro?
                  ACHO que se for isso a fórmula você pode tentar algo como:
                  ({chave.count(0m,14,eq,5m)}=30) + ({chave.count(5m,14,eq,10m)}=30) + ({chave.count(10m,14,eq,15m)}=30) + ({chave.count(15m,14,eq,20m)}=30) + ({chave.count(20m,14,eq,25m)}=30) + ({chave.count(25m,14,eq,30m)}=30) +({chave.count(30m,14,eq,35m)}=30) +({chave.count(35m,14,eq,40m)}=30) +({chave.count(40m,14,eq,45m)}=30) +({chave.count(45m,14,eq,50m)}=30) +({chave.count(50m,14,eq,55m)}=30) +({chave.count(55m,14,eq,60m)}=30) >= 3
                  Quanto a sintaxe ele aceitou, mas não tenho certeza se o True é 0 ou 1, então talvez você tenha que ajustar (no meu exemplo estou assumindo que o True é 1, assim três verdades disparam o triger)

                  Note que estou levando em conta a regra que você definiu, leituras a cada 10 segundos e para todas as leituras serem 14 por 5 minutos, assim se em cada fatia dessas de 5m ocorrerem 29 erros o alarme não vai disparar.

                  Uma dica é transformar esse números em macros, assim se tiver que mudá-los você muda apenas nas macros, uma única vez.

                  Você pode tentar também colocar estas funções como itens calculados (por exemplo 12 itens calculados, um para cada intervalo de 5 minutos), assim a fórmula do trigger poderia ficar mais simples...
                  Last edited by 1berto; 07-08-2019, 19:05.

                  Comment


                  • cros
                    cros commented
                    Editing a comment
                    humberto, vc por acaso estava em porto alegre em abril na conference do alexei ?
                    se sim eu acho q te vi la. kkkk
                • paulokrieger
                  Junior Member
                  • Oct 2018
                  • 5

                  #10
                  Originally posted by 1berto
                  "..14 acontecer por mais de 5min..."
                  Quer dizer que seriam 30 leituras do valor 14 (6 vezes por minuto vezes 5 minutos) dentro de um intervalo de 5 minutos (ou seja todas as leituras nesses 5 minutos apontam o erro?
                  Exato, num tempo de uma hora, bem chatinho mesmo

                  Comment

                  • 1berto
                    Senior Member
                    • Sep 2018
                    • 182

                    #11
                    cros estava

                    Comment


                    • cros
                      cros commented
                      Editing a comment
                      Ok .........
                      Last edited by cros; 09-08-2019, 17:01.
                  • eduwutzl
                    Senior Member
                    Zabbix Certified Specialist
                    • Jul 2010
                    • 314

                    #12
                    Senhores, por gentileza conversem em PVT para não sujar o tópico!

                    Obrigado

                    Eduardo Wutzl da Silva
                    SRE Engenharia de Monitoração e Observabilidade

                    Comment

                    Working...