O documento discute o sistema de gerenciamento de rede Zabbix, incluindo sua história, características, componentes e como pode ser usado para monitorar redes, servidores e aplicações de forma distribuída.
3. 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.
4. 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 -> perda $$$ Planejamento de investimentos em recursos de hardware Avaliação de qualidade de serviços Inventário de hardware
6. 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 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 parceiro Zabbix (Europa, Japão, EUA, BRASIL )
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. Características 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; Fácil instalação e customização;
9. Características 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;
10. Características Versão atual: 1.8.1 Versão em desenvolvimento: 1.7.4 Software Open Source distribuído pela Licença GPL v2; Excelente Manual (Em Inglês) – Possui licenciamento próprio – Não GPL; Suporte do Fórum (Em Inglês); Suporte Comercial (ZABBIX SIA - [email_address] );
11. Características Suporte Comercial no Brasil pela Unirede: http://www.zabbix.com.br Suporte da comunidade brasileira Site: http://www.zabbixbrasil.org Lista: http://br.groups.yahoo.com/group/zabbix-brasil/ Envio de alertas para: E-mail; Jabber; SMS; Scripts personalizados.
12. Características Exemplos de Configuração de Hardware: * Zabbix Manual v. 1.6 – Páginas 33-34 Name Plataform CPU/Memory Database Monitored Small Ubuntu Linux PII 350 MHZ 256MB MySQL MyISAM 20 Medium Ubuntu Linux 64 bit ADM Athlon 3200+ 2 GB MySQL InnoDB 500 Large Ubuntu Linux 64 bit Intel Dual Core 6400 4GB RAID 10 MySQL InnoDB or PostgreeSQL >1000 Very Large RedHat Enterprise Intel Xeon 2xCPU 8GB Fast RAID10 MySQL InnoDB or PostgreeSQL >10000
13. 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;
14. 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
16. Detalhes Técnicos Linguagem de Programação: Servidor e agentes: C Interface de administração: PHP 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
17. 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
18. Porque escolher o Zabbix? Solução verdadeiramente Software Livre (GPLv2), não existe versões comerciais. 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
19. 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
20. 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)
21. 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
23. 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)
24. Hummm ... Triggers! CPU load is too high: {host:cpuload.last(0)}>5 CPU load is too high: {host:cpuload.min(300)}>2 CPU load is too high: {host:cpuload.min(300)}>2 & {host:cpuuser.min(300)}>50 CPU load is too high: {host:cpuload.min(300)}>2 & {host2:backup.last(0)}=0 Nós decidimos como definir «CPU load is too high» não o Zabbix sozinho!
25. Dependências Eles são usados 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
26. 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
27. Exemplo (reação para a falha de checagem 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
28. 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
30. 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
32. Visualização: Telas (Screens) 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
36. 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
38. 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 Localização Física Nível de permissão por grupos E ainda: Notificações apenas para grupos de usuários
39. Extendendo o Zabbix Novas checagens no agente: UserParameter= mysql.qps ,mysqladmin –uroot status|cut –f9 –d”:” UserParameter= sum[*] ,echo “$1+$2”|bc Examples: 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
40. 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
41. 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
42. 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
43. 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
44. 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
46. 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
47. 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: Modelos, Atualizações em massa Atualizações: Todos os componentes do Zabbix da maioria das versões são compatíveis com a release 1.6.x
48. 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) Comece a usar o Zabbix Adapte o Código Fonte Adicione Proxies Monitoramento Distribuído
49. Exemplos Práticos Caso 1 – problema Como saber, antes do diretor, que a telefonia deixou de funcionar na residência?
50. Exemplos Práticos Caso 1 – solução Monitoramento de rádios via ping Aviso via email sempre que algum ponto deixar de responder
52. 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.
53. Exemplos Práticos Caso 2 – solução Monitoramento de temperatura servidor ZABBIX Aviso via email (guarita) se temperatura ultrapassar limite definido
55. Exemplos Práticos Caso 3 – problema Possuir informações históricas sobre a disponibilidade da conexão de internet dos clientes
56. Exemplos Práticos Caso 3 – solução Monitoramento de servidor(es) de clientes (com menor freqüência) Histórico de disponibilidade (e outras informações para auxiliar o gerenciamento dos servidores)
58. 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
60. Referências: Apresentações: João Ricardo Pecanha Mendes - 3º Encontro Nacional LinuxChix-BR 2005 http://www.linuxchix.org.br/files/evento/2005/palestras/zabbix.pdf Alexei Vladishev, Fundador do Zabbix – Open Source Data Center Conference 2009 http://www.netways.de/osdc/y2009/programm/v/open_source_enterprise_monitoring_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/
61. Contatos André Déo: [email_address] http://andredeo.blogspot.com