zabbix flisol campinas 28-04-2012

79
FLISOL CAMPINAS 2012 André Déo

Upload: andredeo

Post on 27-Jun-2015

9.765 views

Category:

Technology


6 download

DESCRIPTION

Palestra sobre Zabbix ministrada no FLISOL Campinas 2012.

TRANSCRIPT

FLISOL CAMPINAS 2012 André Déo

Gerência de Redes com Zabbix

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!

Zabbix

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

Componentes

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

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)

• {<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: 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 (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

Visualização: Telas (Screen)

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 • 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

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: 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 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 do 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 frequência)

• Histórico de disponibilidade (e outras informações para auxiliar o gerenciamento

dos servidores)

Exemplos Práticos

Caso 3 – Visão Gráfica

O Futuro

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

O que veremos em breve

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.

A Comunidade no 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