Monitorando ativos com Zabbix

             Rafael Gomes
     rafaelgomes@techfree.com.br


                                   Abril 2012
Quem sou eu...



Rafael Brito Gomes
- Soteropolitano, usuário de bicicleta e vegetariano
- Trabalho com GNU/Linux há mais de 6 anos
- Atuo hoje como consultor de tecnologia na Solutis Tecnologias
- Responsável técnico do Centro de Resposta a Incidente da Bahia
- Certificados :
 - Módulo Certified Security Officer (MCSO)
 - Zabbix Specialist Certified
 - Linux Professional Institute Certified (LPIC-1)
Motivações



O que me motiva a usar uma ferramenta de monitoramento?


- Agir proativamente
- Detectar e corrigir falhas antes que usuários percebam
- Indicar antecipadamente a necessidade de troca de equipamentos
- Analisar qualidade da prestação de serviço
- Solução de baixo custo
- Solução com interface amigável
- Solução escalável
Zabbix



- Criado em 1998, por Alexei Vladishev
- Licenciado em código aberto
- Backend escrito em C++ e Interface em PHP
- Suporte a SGDB (MySQL, PostgreSQL, SQLite, Oracle or IBM DB2)
- Agentes (AIX, HP-UX, FreeBSD, Gnu/Linux, Windows e outros)
- Monitoria sem agentes
- Suporte a IPV6 e IPV4
- Escalável com utilização de proxy e sistema distribuido
Premissa




 O Servidor do Zabbix é “burro”!!!
Como funciona




      Agente1   Agente2   Agente3
Como funciona


                                              Alarme
      E-mail                SMS
                                             Interface




         ping   0   Uso memória   33,5   Online   True




      Agente1             Agente2            Agente3
Premissa




   A inteligência está no agente
Servidor Zabbix




                  Agente




                  Maquina
Servidor Zabbix




                  Template


        Item       Trigger   Ação


                    Host
Servidor Zabbix


     Host



- É a configuração do ativo a ser monitorado
- Contém os seguintes parâmetros:
      •
          Endereço ip
      •
          Nome da máquina
      •
          Template associado
      •
          Grupo associado
      •
          Outros...
Servidor Zabbix


     Item



- É o que será monitorado
- Contém os seguintes parâmetros:
      •
          Chave de monitoramento
      •
          Frequência da monitoria
      •
          Tipo do retorno (string, integer ou float)
      •
          Método de armazenagem (Normal, Delta e Delta/s)
      •
          Outros...
Servidor Zabbix


      Item



- Chave de monitoramento é a solicitação da informação ao agente
- Formato da chave de monitoramento:




- São permitidos os seguintes caracteres 0-9a-zA-Z_-.
Ex. Que horas são? 09:40!
Servidor Zabbix


     Item



- Exemplos reais de chaves de monitoramento:
      – agent.ping
      – system.cpu.load[<cpu>,<mode>]
      – vfs.fs.size[fs,<mode>]
      – proc.num[<name>,<user>,<state>,<cmdline>]
Servidor Zabbix


        Trigger



    - Condição de alerta com base no que foi monitorado (Item)
    - Pode assumir o status de Ok, Problem e Unknown
    - A condição é criada com base em uma expressão matemática:
             - valor_de_retorno = 0
             - valor_de_retorno > 2
    - Retorno verdadeiro = Problema
•
    - Sem retorno = Unknown
Servidor Zabbix


     Trigger



- Segue abaixo o modelo para a expressão real:
          - {<server>:<key>.<function>(<argument>)}<operator><const>
- Alguns exemplos de função:
          - avg[time] – Média de tempo
          - last[time] – Ultimo valor
          - max[time] - Valor máximo
- Ex real: {server1:agent.ping.avg(3)}>0
Servidor Zabbix


    Trigger



- Possibilidade de criar dependências entre triggers distintas
- Caso a trigger que possuir dependentes cair, a dependente não
   será monitorada até o retorno da dependência
Dependência


                 Trigger1




      Servidor       Dependência
       Zabbix




                 Trigger2
Dependência




        Trigger1                 Trigger2
                   Dependência
Dependência




                          X
       XTrigger1
                   Dependência
                                 Trigger2
Dependência




                          X
        Trigger1                 Trigger2
                   Dependência
Dependência




        Trigger1                 Trigger2
                   Dependência
Servidor Zabbix


    Action



- São as ações executadas com bases nos eventos
- Os eventos podem ser
        - Triggers acionadas
        - Ativos descobertos automaticamente
        - Eventos gerados pelos clientes (Active agent)
Servidor Zabbix


    Action



- As ações podem ser diversas, mas geralmente são:
        - Envio de e-mail para grupo responsável
        - Envio de SMS para grupo responsável
        - Chat no Jabber para grupo responsável
        - Intervenção no ativo (Ex. reboot remoto)
Conselho




      SEMPRE utilize template
Servidor Zabbix


   Template



- Configuração padrão de itens, triggers e ações
- Configuração automática ao associar o host a um template
- Agilidade na adição de novos hosts
Premissa




   TUDO que possa ser obtido via
   console/scripts ou afins é possível
         monitorar no Zabbix
Monitorando tudo


- Possibilidade de configurar QUALQUER checagem no agente
- Modelo da sintaxe:
        - UserParameter=key,command
- Exemplos:
        - UserParameter=check.forward,cat /proc/sys/net/ipv4/ip_forward
        - UserParameter=mysql.ping,mysqladmin -uroot ping|grep alive|wc –l
Ambiente real
Fontes



- http://www.zabbix.com/documentation/1.8/manual
- http://techfree.com.br
Solutis Tecnologias
  071 3021-2900

Monitoramento de ativos com zabbix

  • 2.
    Monitorando ativos comZabbix Rafael Gomes rafaelgomes@techfree.com.br Abril 2012
  • 3.
    Quem sou eu... RafaelBrito Gomes - Soteropolitano, usuário de bicicleta e vegetariano - Trabalho com GNU/Linux há mais de 6 anos - Atuo hoje como consultor de tecnologia na Solutis Tecnologias - Responsável técnico do Centro de Resposta a Incidente da Bahia - Certificados : - Módulo Certified Security Officer (MCSO) - Zabbix Specialist Certified - Linux Professional Institute Certified (LPIC-1)
  • 4.
    Motivações O que memotiva a usar uma ferramenta de monitoramento? - Agir proativamente - Detectar e corrigir falhas antes que usuários percebam - Indicar antecipadamente a necessidade de troca de equipamentos - Analisar qualidade da prestação de serviço - Solução de baixo custo - Solução com interface amigável - Solução escalável
  • 5.
    Zabbix - Criado em1998, por Alexei Vladishev - Licenciado em código aberto - Backend escrito em C++ e Interface em PHP - Suporte a SGDB (MySQL, PostgreSQL, SQLite, Oracle or IBM DB2) - Agentes (AIX, HP-UX, FreeBSD, Gnu/Linux, Windows e outros) - Monitoria sem agentes - Suporte a IPV6 e IPV4 - Escalável com utilização de proxy e sistema distribuido
  • 6.
    Premissa O Servidordo Zabbix é “burro”!!!
  • 7.
    Como funciona Agente1 Agente2 Agente3
  • 8.
    Como funciona Alarme E-mail SMS Interface ping 0 Uso memória 33,5 Online True Agente1 Agente2 Agente3
  • 9.
    Premissa A inteligência está no agente
  • 10.
    Servidor Zabbix Agente Maquina
  • 11.
    Servidor Zabbix Template Item Trigger Ação Host
  • 12.
    Servidor Zabbix Host - É a configuração do ativo a ser monitorado - Contém os seguintes parâmetros: • Endereço ip • Nome da máquina • Template associado • Grupo associado • Outros...
  • 13.
    Servidor Zabbix Item - É o que será monitorado - Contém os seguintes parâmetros: • Chave de monitoramento • Frequência da monitoria • Tipo do retorno (string, integer ou float) • Método de armazenagem (Normal, Delta e Delta/s) • Outros...
  • 14.
    Servidor Zabbix Item - Chave de monitoramento é a solicitação da informação ao agente - Formato da chave de monitoramento: - São permitidos os seguintes caracteres 0-9a-zA-Z_-. Ex. Que horas são? 09:40!
  • 15.
    Servidor Zabbix Item - Exemplos reais de chaves de monitoramento: – agent.ping – system.cpu.load[<cpu>,<mode>] – vfs.fs.size[fs,<mode>] – proc.num[<name>,<user>,<state>,<cmdline>]
  • 16.
    Servidor Zabbix Trigger - Condição de alerta com base no que foi monitorado (Item) - Pode assumir o status de Ok, Problem e Unknown - A condição é criada com base em uma expressão matemática: - valor_de_retorno = 0 - valor_de_retorno > 2 - Retorno verdadeiro = Problema • - Sem retorno = Unknown
  • 17.
    Servidor Zabbix Trigger - Segue abaixo o modelo para a expressão real: - {<server>:<key>.<function>(<argument>)}<operator><const> - Alguns exemplos de função: - avg[time] – Média de tempo - last[time] – Ultimo valor - max[time] - Valor máximo - Ex real: {server1:agent.ping.avg(3)}>0
  • 18.
    Servidor Zabbix Trigger - Possibilidade de criar dependências entre triggers distintas - Caso a trigger que possuir dependentes cair, a dependente não será monitorada até o retorno da dependência
  • 19.
    Dependência Trigger1 Servidor Dependência Zabbix Trigger2
  • 20.
    Dependência Trigger1 Trigger2 Dependência
  • 21.
    Dependência X XTrigger1 Dependência Trigger2
  • 22.
    Dependência X Trigger1 Trigger2 Dependência
  • 23.
    Dependência Trigger1 Trigger2 Dependência
  • 24.
    Servidor Zabbix Action - São as ações executadas com bases nos eventos - Os eventos podem ser - Triggers acionadas - Ativos descobertos automaticamente - Eventos gerados pelos clientes (Active agent)
  • 25.
    Servidor Zabbix Action - As ações podem ser diversas, mas geralmente são: - Envio de e-mail para grupo responsável - Envio de SMS para grupo responsável - Chat no Jabber para grupo responsável - Intervenção no ativo (Ex. reboot remoto)
  • 26.
    Conselho SEMPRE utilize template
  • 27.
    Servidor Zabbix Template - Configuração padrão de itens, triggers e ações - Configuração automática ao associar o host a um template - Agilidade na adição de novos hosts
  • 28.
    Premissa TUDO que possa ser obtido via console/scripts ou afins é possível monitorar no Zabbix
  • 29.
    Monitorando tudo - Possibilidadede configurar QUALQUER checagem no agente - Modelo da sintaxe: - UserParameter=key,command - Exemplos: - UserParameter=check.forward,cat /proc/sys/net/ipv4/ip_forward - UserParameter=mysql.ping,mysqladmin -uroot ping|grep alive|wc –l
  • 30.
  • 32.
  • 33.
    Solutis Tecnologias 071 3021-2900