gerência de redes com zabbix prof. andré déo – policamp 2009
TRANSCRIPT
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 - [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ísticasExemplos 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
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)
• 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 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 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)
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 2005http://www.linuxchix.org.br/files/evento/2005/palestras/zabbix.pdf
Alexei Vladishev, Fundador do Zabbix – Open Source Data Center Conference 2009http://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) 2009http://danielbauermann.wordpress.com/2009/10/07/ciartec-2009/