FLISOL CAMPINAS 2012
            André Déo
Gerência de Redes com Zabbix
Agenda
•   NMS (Network Management System)
•   O que é Zabbix?
•   Por que usar Zabbix?
•   História
•   Características
•   Funcionalidades
•   Exemplos Práticos
•   Zabbix 2.0: O que vem por aí?
•   Zabbix-BR
NMS (Network Management System)
O Sistema de Gerenciamento de Rede (Network Management System – NMS) é um
sistema responsável pelas aplicações que monitoram e controlam os Dispositivos
Gerenciados. Normalmente é instalado em um (ou mais de um) servidor de rede
dedicado a estas operações de gerenciamento, que recebe informações (pacotes
SNMP) de todos os dispositivos gerenciados daquela rede.
Por que utilizar um NMS?
• Monitorar problemas de forma automatizada

•   Receber aviso de problema antes da ligação do usuário (ou do diretor!)

•   Servidores inativos são muito caros

•   Planejamento de investimentos em recursos de hardware

•   Avaliação de qualidade de serviços

•    Um bom sistema de gerenciamento nos torna confiantes, nosso negócio está
    funcionando!
Zabbix
O que é?
Um software Livre (e de código fonte aberto – Open Source) com sistema de
monitoramento distribuído capaz de monitorar a disponibilidade e performance de
toda sua infra-estrutura de rede, além de aplicações;

Suporte a maioria dos sistemas operacionais: Linux, Solaris, HP-UX, AIX, FreeBSD,
OpenBSD, NetBSD, Mac OS, Windows, entre outros;

Monitora serviços simples (http, pop3, imap, ssh) sem o uso de agentes;
Porque escolher o Zabbix?
O que torna o Zabbix tão especial?

All-in-one (Tudo em um), única solução quando se trata de monitoramento!

Todos os dados históricos, tendências e configuração são armazenados em um banco
de dados.

Preparado para controle dos pequenos e grandes ambientes distribuídos.

Solução verdadeiramente Software Livre (GPLv2), não existe versões comerciais.
Porque escolher o Zabbix?
Toda a lógica está do lado do servidor, os agentes são usados apenas para coleta de
dados

Extremamente flexível! Triggers, escalations, new checks, screens e muito mais.

Projetado para lidar com as comunicações instáveis

Suporte total ao IPv6
História
Criado por Alexei Vladishev

Linha do tempo:
• 1998 : Escolhas disponíveis HP OpenView,
IBM, BMC: muito caros para comprar e manter

Que nome eu dou para este software?
ABCDE…Zabbix!

2001 : versão 1.0alpha1 em GPL

2004 : versão 1.0

2006 : versão 1.1                                   Alexei Vladishev
                                              Fundador e CEO da Zabbix SIA
                                                Desenvolvedor do Zabbix
História
• 2007 : versão 1.4

• 2008 : versão 1.6
Zabbix 1.6.4, 500 downloads por dia, 15.000 usuários no forum

A compania Zabbix company está crescendo, 20 parceiros Zabbix (Europa, Japão, EUA,
BRASIL)

Zabbix Hoje:
• Downloads desde 2001: Mais de 1.300.000

• Usuários no Fórum: Dezembro quase 54.000; Hoje são mais de 60.000!

• Usuários na lista Brasileira: Mais de 480
Características
• Versão atual: 1.8.12

•   Excelente Manual

•   Suporte do Fórum

•   Suporte Comercial (ZABBIX SIA - sales@zabbix.com)

•   Suporte Comercial no Brasil pela Unirede: http://www.zabbix.com.br
Características
• Envio de alertas para: e-mail, Jabber, SMS e scripts personalizados

•   Suporte nativo ao protocolo SNMP

•   Interface de gerenciamento Web, de fácil utilização

•   Integração com banco de dados (MySQL, Oracle, PostgreSQL ou SQLite)

•   Geração de gráficos em tempo real
Características
• Fácil instalação e customização

•   Agentes disponíveis para diversas plataformas:
•   Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, SCO-OpenServer, Mac OS, Windows
    2000/XP/2003/Vista;

•   Agentes para plataformas 32 bits e 64 bits

•   Integração com os Contadores de Performance do Windows
      Windows XP quase 7.000 itens !!
      Windows Server 2003 R2 mais de 23.000 itens !!
Características
             Exemplos de Configuração de Hardware:
Name                    Plataform             CPU/Memory             Database       Monitored Hosts




Small                   Ubuntu Linux          PII 350 MHZ            MySQL MyISAM   20
                                              256MB

Medium                  Ubuntu Linux 64 bit   ADM Athlon 3200+       MySQL InnoDB   500
                                              2 GB


Large                   Ubuntu Linux 64 bit   Intel Dual Core 6400   MySQL InnoDB   >1000
                                              4GB                    or
                                              RAID 10                PostgreeSQL

Very Large              RedHat Enterprise     Intel Xeon             MySQL InnoDB   >10000
                                              2xCPU                  or
                                              8GB                    PostgreeSQL
                                              Fast RAID10

             * Zabbix Manual Online http://www.zabbix.com/documentation
Características
Alguns tipos de itens que não dependem de agente (Simple Checks):
• icmpping – Verifica se o host está acessivel através do ping;
• http – Verifica se a porta http (80) está respondendo;
• pop – Verifica se a porta pop3 (110) está respondendo;
• ftp_perf – Tempo de resposta (em ms) do serviço de FTP;
Componentes
Server:
• Núcleo do Zabbix, lógica do sistema
• Processamento de Dados, Escalonamento

 Interface Web
• Acesso ao histórico de dados
• Configuração

Agente
• Servidor de coleta de dados, ações

 Proxy:
• Coleta remota de dados
Componentes
Detalhes Técnicos
Linguagem de Programação:
• Servidor e agentes: C
• Interface de administração: PHP
• Não houve reuso de código do Nagios, RRD, Cacti

Princípios fundamentais da Zabbix desenvolvimento:
• Mantenha as coisas simples (KISS), no entanto, tem que ser muito flexível
• Manter os requisitos de hardware baixos, mas não deve afetar a produção
Como Monitorar
Verificações de serviço:
• FTP, SSH, HTTP, SMTP, DNS ...

Agente Zabbix:
• Checagem Аtiva e Passiva
• Monitoramento de registros, logs de eventos
• Fácil de personalizar
• Execução de comando remoto
• Extremamente eficiente!

Outros:
• Plugins WMI, JMX, Nagios
Como Monitorar
SNMP v1, v2, v3:
• Dispositivos de rede
• Normalmente NET-SNMP para servidores
• Monitoramento de aplicações (Oracle, Weblogic, Websphere, PostgreSQL, MySQL,
  ...)
• Traps SNMP

 IPMI:
• Monitoramento de hardware
• Gerenciamento remoto (reboot, reset, desligamento)
Uso do Agente do Zabbix
Checagens Ativas:
• Altamente eficiente
• Buffer de dados coletados

Checagens Passivas:
• Requer polling do lado do Servidor Zabbix
• Desempenho adicional por causa dos pollings e da largura de banda de rede
Uso do Agente do Zabbix
Hummm ... Triggers!
Trigger é uma expressão lógica flexível usada para definir uma condição de problema.

• Status (value) de uma trigger representa o estado do sistema

• Alteração do valor da trigger gera eventos

• É uma das maneiras de lidar com flapping (Intefaces intermitentes, up, down, up,
  down)

• {<server>:<key>.<function>(<parameter>)}<operator><const>
Hummm ... Triggers!
• CPU load is too high: {host:cpuload.last(0)}>5
• A trigger será verdadeira toda vez que a leitura mais recente da carga do
  processador for maior que 5.

• CPU load is too high: {host:cpuload.min(300)}>2
• A trigger será verdadeira se a carga do processador for maior que 2 nos últimos
  cinco minutos.

• CPU load is too high: {host:cpuload.min(300)}>2 & {host:cpuuser.min(300)}>50
• A trigger será verdadeira se a carga do processador for maior que 2 nos últimos
  cinco minutos E a carga do processador com processos de usuário for maior que
  50 nos últimos cinco minutos.
Hummm ... Triggers!
• CPU load is too high: {host:cpuload.min(300)}>2 & {host2:backup.last(0)}=0
• A trigger será verdadeira se a carga do processador for maior que 2 nos últimos
  cinco minutos E a leitura mais recente do status do backup do host2 for 0 (Pode
  ser definido o que 0, 1, 2 ... N significam)

Nós decidimos como definir «CPU load is too high» não o Zabbix sozinho!
Dependências
Elas são usadas para:
• Evitar notificações
• Definir dependências entre diferentes problemas (relacionados a redes,
   aplicações, qualquer coisa). Sem dependências de host!

• Server está down  Switch1 está down  Switch2 está down

• Servidor Web está down  MySQL não está respondendo  Sem espaço livre no
  /tmp
Escalabilidade
Cenários diferentes:
• Notificações atrasadas
• Notificações repetidas
• Execução de comandos
• Aviso para outros usuários
• Recuperação de mensagens
• Diferentes ações para eventos conhecidos e não conhecidos
Exemplo: Reação para a falha de um Servidor Web
Aumente a etapa a cada 5 minutos
• Etapa 1-3: Enviar mensagem para os Unix Admins
• Etapa 3-5: Enviar mensagem para Chefe, se não ACK
• Passo 6: Reinicie o Apache, se não ACK
• Passo 7: Reiniciar o servidor se não ACK
• Passo 10: Enviar mensagem a todos os não ACK
Visualização: Dashboard
Recursos Prediletos:
• Mapas
• Gráficos
• Screens (Telas)

 Exibição dos itens principais:
• Problemas por grupos de hosts
• Estatísticas do Zabbix
• Lista dos últimos alertas
• Informações do Web Monitoring
• Auto Discovery
Visualização: Dashboard
Visualização: Gráficos
Acesso Imediato:
• Qualquer período de tempo
• Navegação de linha do tempo fácil
• Zoom a um clique do mouse
• Problemas são visualizados
• Marcação de tempo de down-time

Tipos de Gráficos:
• Standard (Pontos, Linhas, Cores)
• Empilhado (Stacked)
• Torta
Visualização: Gráficos
Visualização: Telas (Screen)
Diferentes Blocos:
• Gráficos
• Mapas
• Dados em texto plano
• Lista de problemas
• Lista dos últimos alertas

Slide Show:
• Conjunto de telas
• Exibidas uma após a outra
Visualização: Telas (Screen)
Web Monitoring
Objetivos:
• Acompanhamento da experiência do usuário
• Suporte a cenários complexos
• Monitoramento de desempenho
• Monitoramento de disponibilidade

Exemplo:
• Passo 1 – Acesso a home page
• Passo 2 – Login (POST, GET)
• Passo3 – Executar relatório
• Passo 4 - Logout
Web Monitoring
Serviços de TI
Objetivos:
• Monitoramento de nível de negócio
• Monitoramento SLA
• Nós nos preocupamos com os serviços
• Escalonamento de problemas
• Causa raíz do problema

Estrutura de árvore baseada em:
• Dependências
• Localização Física
• Tipo de serviço, etc
Serviços de TI
Gerenciamento de Usuários
Autenticação:
• Standard: Banco de dados do Zabbix
• LDAP (Active Directory)
• Apache (Kerberos, Unix, etc)

Permissões:
• Depende do tipo de usuário
• Nível de permissão por grupos

E ainda:
• Notificações apenas para grupos de usuários
Extendendo o Zabbix
Novas checagens no agente:
• UserParameter=mysql.qps,mysqladmin –uroot status|cut –f9 –d”:”
• UserParameter=sum[*],echo “$1+$2”|bc

Exemplos: mysql.qps = 456, sum[4,5] = 9

Novo método de notificação:
• Apenas uma questão de escrever um shell script (geração de voz, chamada Skype,
  qualquer coisa)

Novas checagens no servidor:
• Apenas uma questão de escrever um shell script
Monitoramento de Grandes Ambientes
Ambiente da Zabbix SIA:

• Vários milhares de servidores e dispositivos de rede

• Distribuídos em 2-100 Data Centers ou Filiais

• Monitoramento centralizado é necessário
Zabbix: Várias Abordagens


• Um Sevidor Zabbix faz tudo




                     • Um Sevidor Zabbix
                     • Um Proxy por Data Center ou Filial




                                                 • Um Sevidor Zabbix por Data Center
                                                 • Mais esforço para manter
                                                 • Pode ser usado Proxy
O que é um Proxy?
Proxy é um coletor de dados. É usado também para auto discovery.

Vantagens:
• Torna arquitetura mais fácil
• Não requer recursos significativos
• Diminui a carga do servidor
Proxy: Como Funciona?
Gerenciamento:
• Apenas coleta dados
• Gerenciamento completo via front-end Web
• A configuração é armazenada no Servidor Zabbix
• Todas as conexões são iniciadas pelo Proxy
• Coleta de milhares de valores por segundo
Proxy: Como Funciona?
Tratamento de perda de conexão:
• Os dados estão armazenados no banco de dados do Proxy
• Serão enviados quando a conexão for restabelecida
• Não envia notificações de problemas locais
Monitoramento Distribuído
Atributos Básicos:
• Estrutura em árvore
• O nó é um servidor Zabbix
• Os nós são plataformas independentes

Gerencia:
• Configuração de replicação em duas vias
• Nó pai controla nó filhos
Monitoramento Distribuído
Tratamento de Perda de Conexão
O que vai parar de trabalhar?
• Envio de dados para o nó pai
• Sincronização da configuração

Todo o resto vai continuar funcionando
Milhares de Dispositivos: Soluções
Problemas e soluções:
• Volume de dados enorme: usar partições de banco de dados para informações de
   históricos

• Integração com os sistemas existentes: Autenticação LDAP, XML import / export
  para a configuração, gerenciamento e inventário

• Manutenção: Templates, Atualizações em massa

• Atualizações: Todos os componentes do Zabbix da maioria das versões são
  compatíveis com a release 1.8.x
Escolha o melhor esquema
       Dependendo dos requisitos:
       • Administração Local
       • Toda as opções de monitoramento quando não houver conexão entre os data
         centers (filiais)




                                                        • Monitoramento Distribuído


                           • Adicione Proxies



• Comece a usar o Zabbix
• Adapte o Código Fonte
Exemplos Práticos
Caso 1 – Problema
• Como saber, antes do diretor, que a telefonia deixou de funcionar na residência?
Exemplos Práticos
Caso 1 – Solução
• Monitoramento de rádios via ping

• Aviso via email sempre que algum ponto deixar de responder
Exemplos Práticos
Caso 1 – Visão Gráfica
Exemplos Práticos
Caso 2 – Problema
• O ar-condiciando na sala dos servidores deixou de funcionar corretamente,
   podendo comprometer a integridade de diversos servidores/serviços.
Exemplos Práticos
Caso 2 – Solução
• Monitoramento de temperatura do servidor ZABBIX

• Aviso via email (guarita) se temperatura ultrapassar limite definido
Exemplos Práticos
Caso 2 – Visão Gráfica
Exemplos Práticos
Caso 3 – Problema
• Possuir informações históricas sobre a disponibilidade da conexão de internet dos
   clientes
Exemplos Práticos
Caso 3 – Solução
• Monitoramento de servidor(es) de clientes (com menor frequência)

• Histórico de disponibilidade (e outras informações para auxiliar o gerenciamento
  dos servidores)
Exemplos Práticos
Caso 3 – Visão Gráfica
O Futuro
Zabbix 2.0
Design Atualizado

Melhor usabilidade do Zabbix Front-end

Revisão de todas os Forms e Páginas
Zabbix 2.0
Melhor desempenho

O desempenho é melhorado a cada lançamento do Zabbix

Cache de memória para quase todos os dados de configuração

API Zabbix mais eficiente
Zabbix 2.0
Descoberta de baixo nível

Situação atual:
• Descoberta de Hosts apenas
• Difículdade de usar templates para hosts que possuem diferentes sistemas de
   arquivos, interfaces de rede, etc.

Zabbix 2.0:
• Descoberta automática de dispositivos de rede, sistemas de arquivos
   processos, etc.
• Descoberta de interfaces SNMP e contadores JMX
• Um template para hosts com recursos diferentes!
Zabbix 2.0
Múltiplas interfaces de rede

Situação atual:
• Um endereço IP por dispositivo monitorado
• Não é possível monitorar diferentes recursos em IPs diferentes

Zabbix 2.0:
• Dispositivo monitorado suportará múltiplos Ips
• Um IP: monitoramento por SNMP, noutro: Agente Zabbix
Zabbix 2.0
Monitoramento remoto JMX

Situação atual:
• Uso do ZapCat ou outras ferramentas de terceiros

Zabbix 2.0:
• Suporte nativo de monitoramento JMX seguro
• Descoberta de contadores JMX
• Monitoramento de infra-estrutura Java: JBoss, WebLogic, Websphere, Tomcat
• Monitoramento de Aplicações Java
Zabbix 2.0
Coleta automática de dados de inventário de hardware

Situação atual:
• Informações de Hardware devem ser atualizada manualmente

 Zabbix 2:
• Dados coletados automaticamente
• Processamento manual também
Zabbix 2.0
Comandos remotos
Comandos remotos baseados em Telnet e SSH

Atualmente scripts já podem ser usados, mas o Zabbix não possui suporte nativo

Irão simplificar ações automáticas em dispositivos de rede

Comandos remotos baseados em IPMI (shutdown remoto, reboots)

Para dispositivos que não possuem Agente Zabbix ou Agente SNMP
O que veremos em breve
Zabbix 2.X
Armazenamentos NãoSQL
Zabbix Suporta: MySQL, PostgreSQL, Oracle, DB2, SQLite

Problema:
Máximo de 15.000 valores por segundo

Não é possível escalar!

O desempenho cai significativamente quando o tamanho de dados históricos
aumentam
Zabbix 2.X
Solução:
Uso de amazenamento NãoSQL para dados históricos (Cassandra, Hadoop, HBase,
Hypertable, MongoDB, CouchDB, Neo4J). Terabytes de dados.

Teoricamente, o desempenho pode ser superior a 100.000 valores por segundo

Pode ser escalado horizontalmente. Mais servidores – mais performance!

API para os dados históricos, você poderá escolher qualquer engine!
Zabbix 2.X
Zabbix na nuvem

Integração com APIs de nuvens:
• Amazon EC2
• Rackspace Cloud
• VMWare

Monitoramento

• Gestão (adicionar ou remover recursos sob demanda)
• Carga de CPU alta  adicionar um servidor novo na nuvem
• Falta de armazenamento em disco  adicionar um novo storage em nuvem
Zabbix 2.X
Zabbix para ambientes virtuais:
• KVM
• XEN
• VMWare

Monitoramento

• Gestão (adicionar ou remover recursos sob demanda)
• Carga de CPU alta  adicionar novas VMs
Zabbix 2.X
Agendador Global de tarefas

“Nós já temos tudo para tornar isso possível” - Alexei Vladishev

Tipo de calendário global para todo ambiente monitorado

Pode ser usado para:
• Agendar backups e outras tarefas periódicas

• Iniciar / desligar servidores físicos e virtuais, recursos na nuvem

• Execução condicional de comandos, dependendo dos problemas existentes.
  Exemplo: Desligue os nós do cluster à noite, apenas se a carga da CPU estiver
  baixa.
A Comunidade no Brasil
Zabbix-BR
Fundada em junho de 2008 por André Déo
482 usuários

Site:
http://zabbixbrasil.org

Twitter:
http://twitter.com/zabbixbr

Wiki:
http://zabbixbrasil.org/wiki

Lista de discussão:
http://br.groups.yahoo.com/group/zabbix-brasil/
Referências
Site do Zabbix:
http://www.zabbix.com

Licença Zabbix:
http://www.zabbix.com/licence.php

Manual do Zabbix:
http://www.zabbix.com/documentation.php

Lista da Comunidade Brasileira:
http://br.groups.yahoo.com/group/zabbix-brasil
Referências
Apresentações:
• Alexei Vladishev, Fundador do Zabbix – Open Source Data Center Conference
   2009
http://www.netways.de/osdc/y2009/programm/v/open_source_enterprise_monitori
ng_with_zabbix/

• Daniel Baurmann - IV Semana das Ciências, Artes e Tecnologias (CIARTEC)
   promovida pelo Instituição Evangélica de Novo Hamburgo (IENH) 2009
http://danielbauermann.wordpress.com/2009/10/07/ciartec-2009/

• Alexei Vladishev, Fundador do Zabbix – Free Software that helps, FISL 12, 2011.
http://www.slideshare.net/zabbixbr/fisl12-2011
Contatos
E-mail:
• andredeo@gmail.com

Blog:
• http://andredeo.blogspot.com

Twitter:
• @deoandre

Zabbix FLISOL Campinas 28-04-2012

  • 1.
  • 2.
  • 3.
    Agenda • NMS (Network Management System) • O que é Zabbix? • Por que usar Zabbix? • História • Características • Funcionalidades • Exemplos Práticos • Zabbix 2.0: O que vem por aí? • Zabbix-BR
  • 4.
    NMS (Network ManagementSystem) O Sistema de Gerenciamento de Rede (Network Management System – NMS) é um sistema responsável pelas aplicações que monitoram e controlam os Dispositivos Gerenciados. Normalmente é instalado em um (ou mais de um) servidor de rede dedicado a estas operações de gerenciamento, que recebe informações (pacotes SNMP) de todos os dispositivos gerenciados daquela rede.
  • 5.
    Por que utilizarum NMS? • Monitorar problemas de forma automatizada • Receber aviso de problema antes da ligação do usuário (ou do diretor!) • Servidores inativos são muito caros • Planejamento de investimentos em recursos de hardware • Avaliação de qualidade de serviços • Um bom sistema de gerenciamento nos torna confiantes, nosso negócio está funcionando!
  • 6.
  • 7.
    O que é? Umsoftware Livre (e de código fonte aberto – Open Source) com sistema de monitoramento distribuído capaz de monitorar a disponibilidade e performance de toda sua infra-estrutura de rede, além de aplicações; Suporte a maioria dos sistemas operacionais: Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, NetBSD, Mac OS, Windows, entre outros; Monitora serviços simples (http, pop3, imap, ssh) sem o uso de agentes;
  • 8.
    Porque escolher oZabbix? O que torna o Zabbix tão especial? All-in-one (Tudo em um), única solução quando se trata de monitoramento! Todos os dados históricos, tendências e configuração são armazenados em um banco de dados. Preparado para controle dos pequenos e grandes ambientes distribuídos. Solução verdadeiramente Software Livre (GPLv2), não existe versões comerciais.
  • 9.
    Porque escolher oZabbix? Toda a lógica está do lado do servidor, os agentes são usados apenas para coleta de dados Extremamente flexível! Triggers, escalations, new checks, screens e muito mais. Projetado para lidar com as comunicações instáveis Suporte total ao IPv6
  • 10.
    História Criado por AlexeiVladishev Linha do tempo: • 1998 : Escolhas disponíveis HP OpenView, IBM, BMC: muito caros para comprar e manter Que nome eu dou para este software? ABCDE…Zabbix! 2001 : versão 1.0alpha1 em GPL 2004 : versão 1.0 2006 : versão 1.1 Alexei Vladishev Fundador e CEO da Zabbix SIA Desenvolvedor do Zabbix
  • 11.
    História • 2007 :versão 1.4 • 2008 : versão 1.6 Zabbix 1.6.4, 500 downloads por dia, 15.000 usuários no forum A compania Zabbix company está crescendo, 20 parceiros Zabbix (Europa, Japão, EUA, BRASIL) Zabbix Hoje: • Downloads desde 2001: Mais de 1.300.000 • Usuários no Fórum: Dezembro quase 54.000; Hoje são mais de 60.000! • Usuários na lista Brasileira: Mais de 480
  • 12.
    Características • Versão atual:1.8.12 • Excelente Manual • Suporte do Fórum • Suporte Comercial (ZABBIX SIA - sales@zabbix.com) • Suporte Comercial no Brasil pela Unirede: http://www.zabbix.com.br
  • 13.
    Características • Envio dealertas para: e-mail, Jabber, SMS e scripts personalizados • Suporte nativo ao protocolo SNMP • Interface de gerenciamento Web, de fácil utilização • Integração com banco de dados (MySQL, Oracle, PostgreSQL ou SQLite) • Geração de gráficos em tempo real
  • 14.
    Características • Fácil instalaçãoe customização • Agentes disponíveis para diversas plataformas: • Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, SCO-OpenServer, Mac OS, Windows 2000/XP/2003/Vista; • Agentes para plataformas 32 bits e 64 bits • Integração com os Contadores de Performance do Windows Windows XP quase 7.000 itens !! Windows Server 2003 R2 mais de 23.000 itens !!
  • 15.
    Características Exemplos de Configuração de Hardware: Name Plataform CPU/Memory Database Monitored Hosts Small Ubuntu Linux PII 350 MHZ MySQL MyISAM 20 256MB Medium Ubuntu Linux 64 bit ADM Athlon 3200+ MySQL InnoDB 500 2 GB Large Ubuntu Linux 64 bit Intel Dual Core 6400 MySQL InnoDB >1000 4GB or RAID 10 PostgreeSQL Very Large RedHat Enterprise Intel Xeon MySQL InnoDB >10000 2xCPU or 8GB PostgreeSQL Fast RAID10 * Zabbix Manual Online http://www.zabbix.com/documentation
  • 16.
    Características Alguns tipos deitens que não dependem de agente (Simple Checks): • icmpping – Verifica se o host está acessivel através do ping; • http – Verifica se a porta http (80) está respondendo; • pop – Verifica se a porta pop3 (110) está respondendo; • ftp_perf – Tempo de resposta (em ms) do serviço de FTP;
  • 17.
    Componentes Server: • Núcleo doZabbix, lógica do sistema • Processamento de Dados, Escalonamento Interface Web • Acesso ao histórico de dados • Configuração Agente • Servidor de coleta de dados, ações Proxy: • Coleta remota de dados
  • 18.
  • 19.
    Detalhes Técnicos Linguagem deProgramação: • Servidor e agentes: C • Interface de administração: PHP • Não houve reuso de código do Nagios, RRD, Cacti Princípios fundamentais da Zabbix desenvolvimento: • Mantenha as coisas simples (KISS), no entanto, tem que ser muito flexível • Manter os requisitos de hardware baixos, mas não deve afetar a produção
  • 20.
    Como Monitorar Verificações deserviço: • FTP, SSH, HTTP, SMTP, DNS ... Agente Zabbix: • Checagem Аtiva e Passiva • Monitoramento de registros, logs de eventos • Fácil de personalizar • Execução de comando remoto • Extremamente eficiente! Outros: • Plugins WMI, JMX, Nagios
  • 21.
    Como Monitorar SNMP v1,v2, v3: • Dispositivos de rede • Normalmente NET-SNMP para servidores • Monitoramento de aplicações (Oracle, Weblogic, Websphere, PostgreSQL, MySQL, ...) • Traps SNMP IPMI: • Monitoramento de hardware • Gerenciamento remoto (reboot, reset, desligamento)
  • 22.
    Uso do Agentedo Zabbix Checagens Ativas: • Altamente eficiente • Buffer de dados coletados Checagens Passivas: • Requer polling do lado do Servidor Zabbix • Desempenho adicional por causa dos pollings e da largura de banda de rede
  • 23.
    Uso do Agentedo Zabbix
  • 24.
    Hummm ... Triggers! Triggeré uma expressão lógica flexível usada para definir uma condição de problema. • Status (value) de uma trigger representa o estado do sistema • Alteração do valor da trigger gera eventos • É uma das maneiras de lidar com flapping (Intefaces intermitentes, up, down, up, down) • {<server>:<key>.<function>(<parameter>)}<operator><const>
  • 25.
    Hummm ... Triggers! •CPU load is too high: {host:cpuload.last(0)}>5 • A trigger será verdadeira toda vez que a leitura mais recente da carga do processador for maior que 5. • CPU load is too high: {host:cpuload.min(300)}>2 • A trigger será verdadeira se a carga do processador for maior que 2 nos últimos cinco minutos. • CPU load is too high: {host:cpuload.min(300)}>2 & {host:cpuuser.min(300)}>50 • A trigger será verdadeira se a carga do processador for maior que 2 nos últimos cinco minutos E a carga do processador com processos de usuário for maior que 50 nos últimos cinco minutos.
  • 26.
    Hummm ... Triggers! •CPU load is too high: {host:cpuload.min(300)}>2 & {host2:backup.last(0)}=0 • A trigger será verdadeira se a carga do processador for maior que 2 nos últimos cinco minutos E a leitura mais recente do status do backup do host2 for 0 (Pode ser definido o que 0, 1, 2 ... N significam) Nós decidimos como definir «CPU load is too high» não o Zabbix sozinho!
  • 27.
    Dependências Elas são usadaspara: • Evitar notificações • Definir dependências entre diferentes problemas (relacionados a redes, aplicações, qualquer coisa). Sem dependências de host! • Server está down  Switch1 está down  Switch2 está down • Servidor Web está down  MySQL não está respondendo  Sem espaço livre no /tmp
  • 28.
    Escalabilidade Cenários diferentes: • Notificaçõesatrasadas • Notificações repetidas • Execução de comandos • Aviso para outros usuários • Recuperação de mensagens • Diferentes ações para eventos conhecidos e não conhecidos
  • 29.
    Exemplo: Reação paraa falha de um Servidor Web Aumente a etapa a cada 5 minutos • Etapa 1-3: Enviar mensagem para os Unix Admins • Etapa 3-5: Enviar mensagem para Chefe, se não ACK • Passo 6: Reinicie o Apache, se não ACK • Passo 7: Reiniciar o servidor se não ACK • Passo 10: Enviar mensagem a todos os não ACK
  • 30.
    Visualização: Dashboard Recursos Prediletos: •Mapas • Gráficos • Screens (Telas) Exibição dos itens principais: • Problemas por grupos de hosts • Estatísticas do Zabbix • Lista dos últimos alertas • Informações do Web Monitoring • Auto Discovery
  • 31.
  • 32.
    Visualização: Gráficos Acesso Imediato: •Qualquer período de tempo • Navegação de linha do tempo fácil • Zoom a um clique do mouse • Problemas são visualizados • Marcação de tempo de down-time Tipos de Gráficos: • Standard (Pontos, Linhas, Cores) • Empilhado (Stacked) • Torta
  • 33.
  • 34.
    Visualização: Telas (Screen) DiferentesBlocos: • Gráficos • Mapas • Dados em texto plano • Lista de problemas • Lista dos últimos alertas Slide Show: • Conjunto de telas • Exibidas uma após a outra
  • 35.
  • 36.
    Web Monitoring Objetivos: • Acompanhamentoda experiência do usuário • Suporte a cenários complexos • Monitoramento de desempenho • Monitoramento de disponibilidade Exemplo: • Passo 1 – Acesso a home page • Passo 2 – Login (POST, GET) • Passo3 – Executar relatório • Passo 4 - Logout
  • 37.
  • 38.
    Serviços de TI Objetivos: •Monitoramento de nível de negócio • Monitoramento SLA • Nós nos preocupamos com os serviços • Escalonamento de problemas • Causa raíz do problema Estrutura de árvore baseada em: • Dependências • Localização Física • Tipo de serviço, etc
  • 39.
  • 40.
    Gerenciamento de Usuários Autenticação: •Standard: Banco de dados do Zabbix • LDAP (Active Directory) • Apache (Kerberos, Unix, etc) Permissões: • Depende do tipo de usuário • Nível de permissão por grupos E ainda: • Notificações apenas para grupos de usuários
  • 41.
    Extendendo o Zabbix Novaschecagens no agente: • UserParameter=mysql.qps,mysqladmin –uroot status|cut –f9 –d”:” • UserParameter=sum[*],echo “$1+$2”|bc Exemplos: mysql.qps = 456, sum[4,5] = 9 Novo método de notificação: • Apenas uma questão de escrever um shell script (geração de voz, chamada Skype, qualquer coisa) Novas checagens no servidor: • Apenas uma questão de escrever um shell script
  • 42.
    Monitoramento de GrandesAmbientes Ambiente da Zabbix SIA: • Vários milhares de servidores e dispositivos de rede • Distribuídos em 2-100 Data Centers ou Filiais • Monitoramento centralizado é necessário
  • 43.
    Zabbix: Várias Abordagens •Um Sevidor Zabbix faz tudo • Um Sevidor Zabbix • Um Proxy por Data Center ou Filial • Um Sevidor Zabbix por Data Center • Mais esforço para manter • Pode ser usado Proxy
  • 44.
    O que éum Proxy? Proxy é um coletor de dados. É usado também para auto discovery. Vantagens: • Torna arquitetura mais fácil • Não requer recursos significativos • Diminui a carga do servidor
  • 45.
    Proxy: Como Funciona? Gerenciamento: •Apenas coleta dados • Gerenciamento completo via front-end Web • A configuração é armazenada no Servidor Zabbix • Todas as conexões são iniciadas pelo Proxy • Coleta de milhares de valores por segundo
  • 46.
    Proxy: Como Funciona? Tratamentode perda de conexão: • Os dados estão armazenados no banco de dados do Proxy • Serão enviados quando a conexão for restabelecida • Não envia notificações de problemas locais
  • 47.
    Monitoramento Distribuído Atributos Básicos: •Estrutura em árvore • O nó é um servidor Zabbix • Os nós são plataformas independentes Gerencia: • Configuração de replicação em duas vias • Nó pai controla nó filhos
  • 48.
  • 49.
    Tratamento de Perdade Conexão O que vai parar de trabalhar? • Envio de dados para o nó pai • Sincronização da configuração Todo o resto vai continuar funcionando
  • 50.
    Milhares de Dispositivos:Soluções Problemas e soluções: • Volume de dados enorme: usar partições de banco de dados para informações de históricos • Integração com os sistemas existentes: Autenticação LDAP, XML import / export para a configuração, gerenciamento e inventário • Manutenção: Templates, Atualizações em massa • Atualizações: Todos os componentes do Zabbix da maioria das versões são compatíveis com a release 1.8.x
  • 51.
    Escolha o melhoresquema Dependendo dos requisitos: • Administração Local • Toda as opções de monitoramento quando não houver conexão entre os data centers (filiais) • Monitoramento Distribuído • Adicione Proxies • Comece a usar o Zabbix • Adapte o Código Fonte
  • 52.
    Exemplos Práticos Caso 1– Problema • Como saber, antes do diretor, que a telefonia deixou de funcionar na residência?
  • 53.
    Exemplos Práticos Caso 1– Solução • Monitoramento de rádios via ping • Aviso via email sempre que algum ponto deixar de responder
  • 54.
    Exemplos Práticos Caso 1– Visão Gráfica
  • 55.
    Exemplos Práticos Caso 2– Problema • O ar-condiciando na sala dos servidores deixou de funcionar corretamente, podendo comprometer a integridade de diversos servidores/serviços.
  • 56.
    Exemplos Práticos Caso 2– Solução • Monitoramento de temperatura do servidor ZABBIX • Aviso via email (guarita) se temperatura ultrapassar limite definido
  • 57.
    Exemplos Práticos Caso 2– Visão Gráfica
  • 58.
    Exemplos Práticos Caso 3– Problema • Possuir informações históricas sobre a disponibilidade da conexão de internet dos clientes
  • 59.
    Exemplos Práticos Caso 3– Solução • Monitoramento de servidor(es) de clientes (com menor frequência) • Histórico de disponibilidade (e outras informações para auxiliar o gerenciamento dos servidores)
  • 60.
    Exemplos Práticos Caso 3– Visão Gráfica
  • 61.
  • 62.
    Zabbix 2.0 Design Atualizado Melhorusabilidade do Zabbix Front-end Revisão de todas os Forms e Páginas
  • 63.
    Zabbix 2.0 Melhor desempenho Odesempenho é melhorado a cada lançamento do Zabbix Cache de memória para quase todos os dados de configuração API Zabbix mais eficiente
  • 64.
    Zabbix 2.0 Descoberta debaixo nível Situação atual: • Descoberta de Hosts apenas • Difículdade de usar templates para hosts que possuem diferentes sistemas de arquivos, interfaces de rede, etc. Zabbix 2.0: • Descoberta automática de dispositivos de rede, sistemas de arquivos processos, etc. • Descoberta de interfaces SNMP e contadores JMX • Um template para hosts com recursos diferentes!
  • 65.
    Zabbix 2.0 Múltiplas interfacesde rede Situação atual: • Um endereço IP por dispositivo monitorado • Não é possível monitorar diferentes recursos em IPs diferentes Zabbix 2.0: • Dispositivo monitorado suportará múltiplos Ips • Um IP: monitoramento por SNMP, noutro: Agente Zabbix
  • 66.
    Zabbix 2.0 Monitoramento remotoJMX Situação atual: • Uso do ZapCat ou outras ferramentas de terceiros Zabbix 2.0: • Suporte nativo de monitoramento JMX seguro • Descoberta de contadores JMX • Monitoramento de infra-estrutura Java: JBoss, WebLogic, Websphere, Tomcat • Monitoramento de Aplicações Java
  • 67.
    Zabbix 2.0 Coleta automáticade dados de inventário de hardware Situação atual: • Informações de Hardware devem ser atualizada manualmente Zabbix 2: • Dados coletados automaticamente • Processamento manual também
  • 68.
    Zabbix 2.0 Comandos remotos Comandosremotos baseados em Telnet e SSH Atualmente scripts já podem ser usados, mas o Zabbix não possui suporte nativo Irão simplificar ações automáticas em dispositivos de rede Comandos remotos baseados em IPMI (shutdown remoto, reboots) Para dispositivos que não possuem Agente Zabbix ou Agente SNMP
  • 69.
    O que veremosem breve
  • 70.
    Zabbix 2.X Armazenamentos NãoSQL ZabbixSuporta: MySQL, PostgreSQL, Oracle, DB2, SQLite Problema: Máximo de 15.000 valores por segundo Não é possível escalar! O desempenho cai significativamente quando o tamanho de dados históricos aumentam
  • 71.
    Zabbix 2.X Solução: Uso deamazenamento NãoSQL para dados históricos (Cassandra, Hadoop, HBase, Hypertable, MongoDB, CouchDB, Neo4J). Terabytes de dados. Teoricamente, o desempenho pode ser superior a 100.000 valores por segundo Pode ser escalado horizontalmente. Mais servidores – mais performance! API para os dados históricos, você poderá escolher qualquer engine!
  • 72.
    Zabbix 2.X Zabbix nanuvem Integração com APIs de nuvens: • Amazon EC2 • Rackspace Cloud • VMWare Monitoramento • Gestão (adicionar ou remover recursos sob demanda) • Carga de CPU alta  adicionar um servidor novo na nuvem • Falta de armazenamento em disco  adicionar um novo storage em nuvem
  • 73.
    Zabbix 2.X Zabbix paraambientes virtuais: • KVM • XEN • VMWare Monitoramento • Gestão (adicionar ou remover recursos sob demanda) • Carga de CPU alta  adicionar novas VMs
  • 74.
    Zabbix 2.X Agendador Globalde tarefas “Nós já temos tudo para tornar isso possível” - Alexei Vladishev Tipo de calendário global para todo ambiente monitorado Pode ser usado para: • Agendar backups e outras tarefas periódicas • Iniciar / desligar servidores físicos e virtuais, recursos na nuvem • Execução condicional de comandos, dependendo dos problemas existentes. Exemplo: Desligue os nós do cluster à noite, apenas se a carga da CPU estiver baixa.
  • 75.
  • 76.
    Zabbix-BR Fundada em junhode 2008 por André Déo 482 usuários Site: http://zabbixbrasil.org Twitter: http://twitter.com/zabbixbr Wiki: http://zabbixbrasil.org/wiki Lista de discussão: http://br.groups.yahoo.com/group/zabbix-brasil/
  • 77.
    Referências Site do Zabbix: http://www.zabbix.com LicençaZabbix: http://www.zabbix.com/licence.php Manual do Zabbix: http://www.zabbix.com/documentation.php Lista da Comunidade Brasileira: http://br.groups.yahoo.com/group/zabbix-brasil
  • 78.
    Referências Apresentações: • Alexei Vladishev,Fundador do Zabbix – Open Source Data Center Conference 2009 http://www.netways.de/osdc/y2009/programm/v/open_source_enterprise_monitori ng_with_zabbix/ • Daniel Baurmann - IV Semana das Ciências, Artes e Tecnologias (CIARTEC) promovida pelo Instituição Evangélica de Novo Hamburgo (IENH) 2009 http://danielbauermann.wordpress.com/2009/10/07/ciartec-2009/ • Alexei Vladishev, Fundador do Zabbix – Free Software that helps, FISL 12, 2011. http://www.slideshare.net/zabbixbr/fisl12-2011
  • 79.