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ísticas
Exemplos 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 2005
http://www.linuxchix.org.br/files/evento/2005/palestras/zabbix.pdf
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/
Top Related