Gerência de Redes com Zabbix
André Déo
Agenda• NMS (Network Management System)
• Zabbix
• Exemplos
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 → perda $$$
• Planejamento de investimentos em recursos de hardware
• Avaliação de qualidade de serviços
• Inventário de hardware
Zabbix
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)
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;
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;
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;
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 protected]);
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.
Características
Exemplos de Configuração de Hardware: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 4GBRAID 10
MySQL InnoDBorPostgreeSQL
>1000
Very Large RedHat Enterprise Intel Xeon 2xCPU8GBFast RAID10
MySQL InnoDBorPostgreeSQL
>10000
* Zabbix Manual v. 1.6 – Páginas 33-34
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
• 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
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
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
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)
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!
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
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 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
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 (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
Visualização: Telas (Screens)
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• Localização Física• 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• 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
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: 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
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
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 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 freqüência)
• Histórico de disponibilidade (e outras informações para auxiliar o gerenciamento dos servidores)
Exemplos Práticos
• Caso 3 – visão gráfica
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:
• Artigos:
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=3951
http://www.dicas-l.com.br/dicas-l/20070728.php
http://www.slacklife.com.br/article.php?sid=1498
http://gentoo-wiki.com/HOWTO_Zabbix
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/
Contatos André Déo:• [email protected]
• http://andredeo.blogspot.com
Top Related