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 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.
5. 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!
7. 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;
8. 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.
9. 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
10. 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
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 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
14. 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 !!
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 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;
17. 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
19. 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
20. 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
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 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
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 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
28. 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
29. 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
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
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
34. 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
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
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
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
42. 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
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?
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
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
49. 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
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 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
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
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
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)
63. 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
64. 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!
65. 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
66. 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
67. 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
68. 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
70. 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
71. 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!
72. 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
73. 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
74. 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.
76. 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/
77. 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
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