zabbix flisol campinas 28-04-2012
DESCRIPTION
Palestra sobre Zabbix ministrada no FLISOL Campinas 2012.TRANSCRIPT
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
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 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!
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;
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.
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
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
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
Características
• Versão atual: 1.8.12
• Excelente Manual
• Suporte do Fórum
• Suporte Comercial (ZABBIX SIA - [email protected])
• Suporte Comercial no Brasil pela Unirede: http://www.zabbix.com.br
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
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 !!
Características
Exemplos de Configuração de Hardware: Name Plataform CPU/Memory Database Monitored Hosts
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
* Zabbix Manual Online http://www.zabbix.com/documentation
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 • 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
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)
• {<server>:<key>.<function>(<parameter>)}<operator><const>
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.
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!
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
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 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 (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
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 • 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 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
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
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: 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
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 do 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 frequência)
• Histórico de disponibilidade (e outras informações para auxiliar o gerenciamento
dos servidores)
Zabbix 2.0
Design Atualizado Melhor usabilidade do Zabbix Front-end Revisão de todas os Forms e Páginas
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
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!
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
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
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
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
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
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!
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
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
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.
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/
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
Apresentações: • 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/ • Alexei Vladishev, Fundador do Zabbix – Free Software that helps, FISL 12, 2011. http://www.slideshare.net/zabbixbr/fisl12-2011
Contatos
E-mail: • [email protected] Blog: • http://andredeo.blogspot.com Twitter: • @deoandre