Monitoramento Opensource com Zabbix

Post on 26-May-2015

9.223 views 31 download

description

Apresentação sobre Zabbix para a 12.ª Semana de Sistemas de Informação (Fa7).

Transcript of Monitoramento Opensource com Zabbix

Monitoramento Opensource com ZabbixThiago Gomes12.ª Semana de Sistemas de Informação

NMS (Network Management System)

Um sistema de gerenciamento de rede (NMS) é uma combinação de hardware e software usados, para monitorar e administrar uma rede de computadores ou redes.

(Fonte: Wikipedia)

Modelo de Gerenciamento

COLETADE DADOS

COLETADE DADOS ANÁLISEANÁLISE AÇÃO OU

CONTROLE

AÇÃO OUCONTROLE

Porque utilizar um NMS?

• Monitoramento pró-ativo

• Trabalho mais produtivo pelo time de TI

• Downtimes → perda $$$

• Planejamento de investimentos

• Avaliação de qualidade de serviços (SLA)

• Automatizar tarefas de rotinas, verificar a disponibilidade de recursos

Algumas Opções

http://oss.oetiker.ch/mrtg/

- Gera páginas HTML comg ráficos de dados coletados a partir de SNMP ou scripts externos

Algumas Opções

http://oss.oetiker.ch/rrdtool/

- Evolução do MRTG

- Armazenamento em banco de dados

Algumas Opções

www.cacti.net

- Ótimos gráficos

Algumas Opções

www.nagios.org

- Gráficos

- Monitoramento

- Notificações

Algumas Opções

www.opennms.org

- Disponibilidade de

serviços

- Coleta informações

- Notificações

Algumas Opções

ZABBIX

História

• Criado por Alexei Vladishev em 1998• 2001 - Primeiro release (Zabbix 1.0 alpha1)• 2004 – Primeiro release “stable”• 2005 – Foi fundada a Zabbix SIA• 2006 – Lançada versão 1.1• 2007 – Lançada versão 1.4• 2008 – Lançada versão 1.6• 2011 – Lançada versão 1.8• 2012 – Lançada versão 2.0

Avanços

11 anos atrás

• 1-2 Downloads por dia• Sem website/fórum• Sem empresa• Sem suporte comercial• Comunidade muito pequena• Apenas 1 desenvolvedor

Avanços (Continuação)

2011

• 500-600 Downloads por dia• Comunidade ativa• Empresa por trás do Zabbix• Usuários em todo planeta• Parte de quase todas as distros• Time de desenvolvedores

Porque escolher o Zabbix?

• Tudo em um (Community = Enterprise)• Preparado para controle dos pequenos e

grandes ambientes distribuídos• Sem add-nos proprietários e sem edições

profissionais ou demo• Extremamente flexível! Triggers, escalations,

new checks, screens, etc.• Projetado para lidar com comunicações

instáveis

Alguns casos de sucesso

O que é o Zabbix?

• Licenciado em código aberto (GPLv2)

• Um dos sistemas de monitoramento mais populares e completo

• Compete com ferramentas comerciais da HP, IBM e outros

• Tem cerca de 40.000 usuários

• Escalabilidade para 100.000 dispositivos

• Pode monitorar praticamente todas as plataformas e dispositivos

Características

• Backend escrito em C++ e interface em PHP

• Suporte nativo a SNMP, IPMI e JMX*

• Suporte a SGBD (MySQL, PostgreSQL, SQLite, Oracle ou IBM DB2)

• Agentes (AIX, HP-UX, FreeBSD, Solaris, Gnu/Linux, Windows e outros)

• Monitoria sem agentes (simple check)

• Suporte a IPv6 e IPv4

• Escalável com a utilização de proxys

Fatores críticos de sucesso

• Não compará-lo a outro sistema de monitoramento

- Criação de um sistema do zero!

• Contribuição de usuários e comunidade

• Evolução, não revolução! Não há grandes saltos

• Dependência mínima de terceiros

• Desenvolvimento de uma solução de monitoramento confiável

Principais componentes

Servidor

- Núcleo do Zabbix

- Centraliza toda a lógica

- Processamento dos dados

Web Interface (frontend)

- Acessa o histórico

- Configurações

Agente

- Coleta de dados / Ações

Proxy

- Coleta de dados remota

Funcionamento básico

Servidor Zabbix

TEMPLATE

ITEM TRIGGER AÇÃO

HOST

Servidor Zabbix

HOST

- É a configuração do ativo a ser monitorado- Contém parâmetros como:– Endereço IP;– Nome da máquina;– Inventário;– Template associado;– Etc;

Servidor Zabbix

- É o que será monitorado- Itens pré-configurados;- Contém parâmetros como:– Chave de monitoramento;– Intervalo– Tipo de retorno (string, integer ou float)– Etc;

ITEM

Servidor Zabbix

- É o uma expressão lógica flexível usada para definir uma

condição de problema

- Geração de eventos

- Nível de severidade

- É uma maneira de usar flapping (interfaces intermitentes)

- Possibilidade de utilizar dependências

TRIGGER

Servidor Zabbix

- Exemplo:

Processor load is too high on {HOSTNAME}

{teste:system.cpu.load[percpu,avg1].last(0)}>5

TRIGGER

Servidor Zabbix

- São as ações com base no evento

AÇÃO

Servidor Zabbix

- Configuração padrão de itens, triggers

- Configuração automática em associação

- Agilidade na adição de novos hosts

TEMPLATE

Alta Disponibilidade

Como monitorar?

Checagem de serviços:

• FTP, SSH, HTTP, SMTP, DNS …

Agente Zabbix:

• Verificação ativa e passiva

• Monitoramento de logs, logs de eventos

• Fácil de estender

• Execução de comando remoto

• Extremamente eficiente!

Outros: WMI, JMX, Nagios plugins

SNMP v1, v2, v3:

• Dispositivos de rede

• NET-SNMP para servidores

• SNMP traps

Monitoramento de aplicações:

• Oracle, Weblogic, JBOSS, Websphere, PgSQL, TomCat.

IPMI:

• Monitoramento de Hardware

• Gerenciamento remoto (reboot, reset, halt)

Monitoração com agentes

Checagem passiva:

• Requer polling no lado do servidor

• O servidor inicia as conexões

• Possível limitação de rede

• Requer maior performance

Checagem ativa:

• Altamente eficiente

• Buffer de coleta de dados

Plataformas suportadas

Monitoramento JMX

• Zabbix 1.8.x

- Utilização de Zapcat ou ferramentas de terceiros• Zabbix 2.0

- Suporte nativo de JMX seguro

- AutoDescoberta de contadores JMX

- Monitoramento de infraestrutura Java:

- JBoss

- WebLogic

- WebSphere

- Tomcat

- Monitoração de aplicativos Java

Zabbix Proxy

Proxy é um coletor de dados

Vantagens:

•Facilidade de administração

•Gerenciamento através do frontend do Zabbix Server

•Distribui a carga do Zabbix Server

Zabbix Proxy: Funcionamento

Zabbix Proxy: Funcionamento

• Pode ser passivo ou ativo

• Continua a coleta de dados caso haja perda de

conexão com o Zabbix Server

• Dados armazenados em banco de dados

• Requer poucos recursos

• Não envia alertas

Monitoramento Distribuído

• Estrutura de árvore hierárquica

• Cada nó funciona como um Zabbix Server

• Acesso independente

• As informações são enviadas para o nó mestre ou outro nó

• Administração descentralizada

• Podemos combinar proxy’s e nós

• Suporte a 1.000 nós

Monitoramento Distribuído

Gráficos

• Qualquer período de tempo

• Navegação por timeline

• Exibe condições de alertas

Mapas

• Fácil edição

• Dados de referência

• Fácil edição

• Fundo de tela

• Ícones Dinâmicos

Screens

• Fácil edição

• Apenas o necessário

• Diferentes blocos

• Suporte para slideshow

Monitoramento Web

• Tempo de resposta

• Velocidade de download

• Código de resposta

• Disponibilidade de um

determinado conteúdo

• Capacidade para cenários

com login/logout

• Suporte a HTTP/HTTPS

Monitoração de temperatura

Integração com Arduino

Notificações

Zabbix API

• Suportado a partir da versão 1.7 (alpha)

• Baseado em JSON-RPC v2.0 sobre HTTP (POST)

• Chamadas via API são feitas para o frontend, e não para o

Zabbix Server

• http://www.zabbix.com/wiki/doc/api

Zabbix API & Zabcon

• Zabcon é um “Console Zabbix”

• Criado em 2009

• Escrito em Ruby

• Requer pelo menos a versão 1.8.6

• Usuários podem criar scripts customizados

• Instalação: “gem install zabcon”

Zabbix API & Zabcon+> get host

Host result set

+--------+----------+-----+-----------+

| hostid | host | dns | ip |

+--------+----------+-----+-----------+

| 10047 | test | | 127.0.0.1 |

| 10064 | Lua 2 | | 0.0.0.0 |

| 10067 | new test | | 127.0.0.1 |

+--------+----------+-----+-----------+

3 rows total

+>

Zabbix API & Zabcon

$ echo "get host show=hostid,host,dns,ip,status" | zabcon.rb

hostid,host,dns,ip,status

10047,test,,127.0.0.1,0

10064,Lua 2,,0.0.0.0,0

10067,new test,,127.0.0.1,0

Outras Funcionalidades

• Inventário

• Autodescoberta de itens

• Medição de níveis de SLA

• Gerenciamento de permissão por usuários

• Suporte para manutenção

• Relatórios

• Gerenciamento de fila

• Execução de comandos remotos

Zabbix Mobile

ZAX - Android

Mobbix - Android

Mozaby - iPhone

MoZBX – Android / iPhone

/ Windows Mobile

Conclusão

• Uma solução completa para monitoração da infraestrutura.

• Opensource, licenciado pela (GPLv2). Sem versões comerciais.

• Pronto para o monitoramento de pequenos e grandes ambientes

distribuídos.

• Baixo custo de implantação, uma vez que não há custo de

aquisição.

• Extremamente flexível! Você poderá adaptá-lo as suas

necessidades.

• Tem suporte da Zabbix SIA e o desenvolvimento é constante.

Conclusão

• 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-brasilhttp://zabbixbrasil.org

Perguntas?

Thiago Gomes

thiago.mgomes@gmail.com / @thigomes