630 likes | 910 Views
Gerência de Redes com Zabbix. Prof. André Déo – Policamp 2009. Agenda. NMS (Network Management System) Zabbix Exemplos. NMS (Network Management System).
E N D
Gerência de Redes com Zabbix Prof. André Déo – Policamp 2009
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
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 - sales@zabbix.com);
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: * 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
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
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: 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: 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
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
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
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
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) • 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