Você está na página 1de 67

FACULDADE DE TECNOLOGIA “PROF. WALDOMIRO MAY”

INTEGRAÇÃO DAS FERRAMENTAS NAGIOS E CACTI COMO SOLUÇÃO DE MONITORAMENTO DE RECURSOS COMPUTACIONAIS EM REDES

Rômulo Alceu Rodrigues

Trabalho de Conclusão de Curso a ser apresentado à Faculdade de Tecnologia Prof. Waldomiro May como parte dos requisitos para a obtenção do Certificado de Conclusão de Curso da Graduação em Tecnologia em Informática com ênfase em redes de computadores.

CRUZEIRO/SP

2010

FACULDADE DE TECNOLOGIA “PROF. WALDOMIRO MAY”

INTEGRAÇÃO DAS FERRAMENTAS NAGIOS E CACTI COMO SOLUÇÃO DE MONITORAMENTO DE RECURSOS COMPUTACIONAIS EM REDES

Romulo Alceu Rodrigues

Trabalho de Conclusão de Curso a ser apresentado à Faculdade de Tecnologia Prof. Waldomiro May como parte dos requisitos para a obtenção do Certificado de Conclusão de Curso da Graduação em Tecnologia em Informática com ênfase em redes de computadores. Área de Concentração: Tecnologia em Informática Ênfase: Redes de Computadores Linha de Estudo: Monitoramento de recursos em redes de computadores. Orientador: Prof. Dr. José Carlor Lombardi

CRUZEIRO/SP

2010

FACULDADE DE TECNOLOGIA PROF. WALDOMIRO MAY FATEC CRUZEIRO - SP

RODRIGUES, Romulo Alceu

Integração das ferramentas Nagios e Cacti como solução de monitoramento de recursos computacionais em redes.

67 p.

Monografia (TCC) - Faculdade de Tecnologia Profº Waldomiro May, FATEC Cruzeiro, 2009.

Orientação: Prof Dr. José Carlos Lombardi

(1) Monitoramento de redes, (2) Gerencia de Pró-ativa de redes

ROMULO ALCEU RODRIGUES

INTEGRAÇÃO DAS FERRAMENTAS NAGIOS E CACTI COMO SOLUÇÃO DE MONITORAMENTO DE RECURSOS COMPUTACIONAIS EM REDES

Monografia apresentada à Faculdade de Tecnologia Prof. Waldomiro May para conclusão da graduação no Curso Superior de Tecnologia em Informática, com ênfase em Redes de Computadores.

Área de Concentração: Tecnologia em Informática Ênfase: Redes de Computadores Linha de Estudo: Monitoramento de recursos em redes de computadores.

Orientador: Prof°. Dr. José Carlos Lombardi

1° Examinador:

2° Examinador:

Aprovado em:

/

/2010.

Cruzeiro - SP

2010

NOTA:

Dedico este trabalho a minha mãe, que começou sua carreira de professora dando aula nos sertões do Brasil, e que me carregava no lombo de um cavalo por dezenas de kilômetros até uma pequena escola no alto da serra da Bocaina onde ensinava de maneira excelente. Com ela aprendi o que é ter coragem, enfrentar os desafios e jamais recuar em frente aos inimigos e adversidades.

"A educação faz um povo fácil de ser liderado, mas difícil de ser dirigido; fácil de ser governado, mas impossível de ser escravizado." (Henry Peter)

Agradecimentos

Em primeiro lugar agradeço a força superior criadora do Universo por ter me presenteado com dons que não têm preço, a vida e a inteligência.

Agradeço também ao Professor José Carlos Lombardi por ter me orientado durante este trabalho.

À
À
Lombardi por ter me orientado durante este trabalho. À Ao amigo e professor da Universidade Estadual

Ao amigo e professor da Universidade Estadual de Campinas (UNICAMP) Gean Ribeiro, por ter acompanhado o desenvolvimento do trabalho e dado valiosas sugestões.

o desenvolvimento do trabalho e dado valiosas sugestões. Gus Adamecz, autor de grande parte dos livros

Gus Adamecz, autor de grande parte dos livros publicados pela empresa Cisco Systems no mundo todo, que durante suas aulas me deu a oportunidade de aprender muito sobre monitoramento de recursos computacionais em redes.

. RESUMO As redes modernas tornaram-se complexas e heterogêneas. As empresas dependem muitas vezes de
.
.
. RESUMO As redes modernas tornaram-se complexas e heterogêneas. As empresas dependem muitas vezes de sua

RESUMO As redes modernas tornaram-se complexas e heterogêneas. As empresas dependem muitas vezes de sua infraestrutura de redes para manter seus negócios funcionamento de maneira efetiva. Portanto, o administrador tem a função de manter recursos computacionais em pleno funcionamento, proporcionando alta disponibilidade das informações e recursos. Para ajudar nesta tarefa devem ser utilizadas ferramentas adequadas de monitoramento pró-ativo. Este trabalho trata da integração dos softwares Nagios e Cacti, uma combinação que oferece alto desempenho e baixo custo para a empresa, além de serem classificadas entre as melhores ferramentas de monitoramento do mercado. A integração é feita através do plugin Nagios2Cacti, oferecido gratuitamente no website do Nagios. Como resultado, tem-se uma estrutura de monitoramento altamente eficiente, escalável, e a baixo custo.

ABSTRACT

The modern networks have become complex and heterogenous. In addition, modern companies rely on their network infrastructure to keep their businesses working in an effective way. Therefore, the role of the IT administrator is to keep the computational resources at full operation, besides offering high availability for the information and resources. To make this important task easier, pro-active monitoring tools should be used. This paper discusses the integration of the tools Nagios and Cacti, a combination that offers high performance at low cost for the company. Also, both tools are high rated among the most used and known monitoring software in the market. The integration process will be done through a plugin called Nagios2Cacti, which can be downloaded for free in the Nagios website. As a result, an eficient, scalable and low cost network infrastructure will be presented.

LISTA DE FIGURAS

Figura 1 - Ilustração do modelo Ethernet criada por Bob Metcalf

14

Figura 2 - Funcionamento básico do SNMP

17

Figura 3 - Representação da estrutura Dispositivo Gerenciado, Agente e Sistema de Gerenciamento

19

Figura 4 - Um "probe" envia estatísticas para o console

20

Figura 5 - Representação de servidores virtuais hospedados em uma máquina física23

Figura 6 - Máquina virtual executando o sistema Ubuntu

24

Figura 7 - Crescimento no número de downloads do Nagios

26

Figura 8 - Organização de hosts e serviços no Nagios

28

Figura 9 - Tela do plugin Nagvis

29

Figura 10 - Sistema de dependências do Nagios

31

Figura 11 - Alguns tipos de gráficos RRD exibidos com o Cacti

33

Figura 12 -Topologia Física da rede

40

Figura 13 - Topologia Lógica da rede

42

Figura 14 - Representação do funcionamento do NRPE

43

Figura 15 - Representação do funcionamento do NsClient++

44

Figura 16 - Representação do funcionamento do plugin check_snmp

44

Figura 17 - Representação do funcionamento nagios2cacti

55

Figura 18 - Modelos no formato RRD

57

Figura 19 - Tela inicial do Cacti

58

Figura 20 - Criação do Data Input Method

59

Figura 21 - Criação do Data Source

59

Figura 22 - Criação do Modelo de Gráfico

60

Figura 23 - Exemplo de gráfico obtidos através do nagios2cacti

60

Figura 24 - Estado Disponível comprovado através do Nagios

61

Figura 25 - Tela de Controle de Dispostivos do Cacti

62

Figura 26 - Host em estado Indisponível acusado pelo Nagios

62

Figura 27 - Host em estado Indisponível acusado pelo Cacti

63

Figura 28 - Uso do Processador em estado OK

64

Figura 29 - Host Ferramenta Prime95

64

Figura 30 - Nagios informando CpuLoad Critical

64

Figura 31 - Uso de Disco em estado Critical

65

Figura 32 - Modo de login do Windows XP aguardando alerta

66

Figura 33 - Explorer.exe em estado critico

66

Figura 34 - Gráficos exibidos pelo Cacti

67

LISTA DE TABELAS

Tabela 1 - Serviços monitorados no host Servidor para Virtualização

51

Tabela 2 - Serviços monitorados no host Cliente 1

51

Tabela 3 - Serviços monitorados no host Cliente 2

52

Tabela 4 - Serviços monitorados no Cliente Virtual 1

53

Tabela 5 - Serviços monitorados no Cliente Virtual 2

54

SUMÁRIO

INTRODUÇÃO

13

1

O INÍCIO DAS REDES DE COMPUTADORES

14

1.1

Monitoramento de Recursos Computacionais

15

1.1.1

Procolos utilizados para o monitoramento de

17

1.2

SNMP (Simple Network Management Protocol)

17

1.2.1

Componentes básicos do SNMP

17

1.3 RMON

19

1.4 Gerencia Pró-ativa de Redes de Computadores

20

1.5 Virtualização

21

1.6 Oracle Virtualbox

22

SOLUÇÃO DE MONITORAMENTO DE RECURSOS COMPUTACIONAIS UTILIZANDO NAGIOS E CACTI

2

24

2.1

A ferramenta Nagios

 

24

2.1.1 Origens

24

2.1.2 Por que o Nagios?

 

25

2.1.3 Como funciona o Nagios

26

2.1.4 Principais características do Nagios

28

2.1.5 Estados "Hard" e "Soft"

30

2.1.6 Requisitos

30

2.2

A ferramenta Cacti

 

30

2.2.1 Porque o Cacti?

31

2.2.2 Como funciona o Cacti

32

2.2.3 Conceitos Básicos sobre RRDTool

33

2.2.4 Requisitos

34

2.3

Vantagens e desvantagens dos sistemas Nagios e Cacti

34

2.3.1

Principais Vantagens e Desvantagens do Nagios

34

2.3.1

Principais Vantagens e Desvantagens do Cacti

35

3

IMPLEMENTAÇÃO DO PROJETO

37

3.1 Introdução

37

3.2 Características técnicas da rede de testes

37

3.2.1 Topologia física da rede de testes

38

3.2.2 Hardware utilizado

 

39

3.2.3 Topologia lógica da rede de testes

40

3.3

Análise dos problemas e respectivos recursos utilizados como solução

40

3.3.1 Problemas e recursos utilizados

40

3.3.2 Monitoramento de hosts e serviços através do Nagios

41

3.4

Recursos monitorados e sistema de alertas para o Nagios

43

3.4.1

Monitoramento de Serviços em Hosts Windows

43

3.4.2

Monitoramento de Serviços em Hosts Linux

47

3.4.3

Lista de equipamentos, serviços e alertas do Nagios

48

3.4.4

Criando arquivo RRD para exportação

52

3.4.5

Configurando o nagios2cacti

53

3.4.6

Configurando

o

Cacti

55

4 TESTES

59

4.1 Teste de Estado (Indisponível ou Disponível)

59

4.2 Teste de uso do processador

61

4.3 Teste de Uso de Espaço em Disco

63

4.4 Teste de Execução do Processo Explorer.exe

64

4.5 Teste de Criação dos Gráficos no Cacti

65

CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS

66

BIBLIOGRAFIA

67

INTRODUÇÃO

O ser humano possui uma natureza social, portanto tem necessidade de se comunicar. Por milhares de anos o homem vem se comunicando através de diferentes métodos como a voz, diagramas rudimentares, a escrita, entre outros. Com a evolução da civilização, os meios de comunicação também evoluíram, de forma que nos dias atuais chegou-se ao nível do compartilhamento de informações e muitos tipos de recursos computacionais através das redes de computadores.

Atualmente tais redes fornecem suporte a uma variedade de atividades humanas como, por exemplo, a maneira com que se aprende ou se informa. Através de ferramentas como Mensageiros Instantâneos, Blogs, Podcasts e Wikis a informação é compartilhada de forma rápida e de maneira colaborativa, momento em que os usuários da rede participam ativamente deste processo utilizando tais ferramentas para disponibilizar seus próprios conteúdos ao público. Uma grande vantagem nesse caso é a rápida e precisa atualização de conteúdos, o que não acontece com livros, por exemplo. Pode-se também citar outras vantagens como disponibilidade destes recursos a um público muito maior, redução de custo e consistência na qualidade de ensino. Redes de computadores também influenciam a maneira de se trabalhar e se divertir. Muitas companhias disponibilizam uma imensa quantidade de material voltado ao entreterimento como músicas, vídeos, aplicações, games etc. Profissionais podem trabalhar à distancia, mesmo de suas residências, o que cria uma nova classe operária, inclusive, os "Teleworkers". Enfim, as redes de computadores evoluíram de tal maneira na atual sociedade que muitas das tecnologias tornaram-se dependentes das tecnologias que envolvem as redes para funcionar. Resumidamente, as redes mudaram, inclusive, a forma de se viver. (DYE, Rick MCDONALD, RUFI, 2008, p.2)

Para que a sociedade se beneficie dos recursos oferecidos pelas redes, tornou-se necessário o uso de ferramentas avançadas de controle e monitoramento, que oferecem meios pelos quais um rede e seus recursos fiquem disponíveis o maior tempo possível.

No decorrer deste projeto será oferecida uma solução eficiente e a baixo custo para monitorament de recursos computacionais através das ferramentas livres Nagios e Cacti, que estão classificadas entre as melhores do mercado.

1

O INÍCIO DAS REDES DE COMPUTADORES

A história das redes de computadores, como é conhecida, inicia-se na década de 60,

precisamente no ano de 1969, quando nasce a Arpanet, a qual visava a conexão e troca de

informações entre instituições de ensino nos Estados Unidos. Inicialmente era uma rede de

porte pequeno, dispunha apenas de quatro nós que se comunicavam de maneira efetiva

para a época, uma vez que ainda não existiam aplicações e variedade de conteúdo

trafegando na rede. Nesta fase da evolução das redes de computadores, as ferramentas de

monitoramento e gerenciamento ainda não existiam. No fim década de 70 surge a

tecnologia Ethernet (atualmente a mais utilizada em LANs), o que é considerado um grande

avanço, uma vez que a velocidade de transmissão entre dois hosts pode alcançar

velocidades de até 10mbps, muito mais que o suficiente para a época desde que aplicações

como e-mail, telnet e chat só estavam começando a serem utilizadas devido à implantação

do TCP/IP, em 1974.

serem utilizadas devido à implantação do TCP/IP, em 1974. Figura 1 - Ilustração do modelo Ethernet

Figura 1 - Ilustração do modelo Ethernet criada por Bob Metcalf FONTE: http://www.gdhpress.com.br/redes

A figura 1 mostra um desenho feito por Bob Metcalf, principal pesquisador do projeto

Ethernet e um dos grandes responsáveis pela implantação da tecnologia no mercado. O

desenho explica de forma simplificada o funcionamento do modelo Ethernet. No início, a

tecnologia Ethernet e a Arpanet não eram ligadas diretamente, visto que possuíam funções

distintas. A primeira visava a conexão de equipamentos em LANs, o que facilitava o

compartilhamento de recursos, enquanto que a segunda tinha como objetivo principal

conectar sites remotos muito similarmente ao que acontece hoje em dia com as WANs.

Ambas tecnologias deram origem aos dois tipos de rede mais conhecidos atualmente, a

Internet e as redes locais (LANs). Em 1990 o acesso à Internet é finalmente liberado e

rapidamente um número impressionante de websites, blogs, redes sociais, aplicações etc,

tomaram conta da rede ao mesmo tempo em que os computadores pessoais também

passavam a fazer parte da vida do cidadão comum. De meio de comunicação a Internet

passa a ser utilizada como plataforma de desenvolvimento, e, hoje, disponibiliza um crescente número de serviços e aplicações. Com essa enorme e crescente quantidade de tráfego invadindo as LANs e a Internet, faz-se necessária a utilização de ferramentas especializadas de Monitoramento, uma peça importantíssima da infra-estrutura de TI no contexto atual das redes. (Morimoto, 2008)

1.1 Monitoramento de Recursos Computacionais

Para James F. Kurose (Kurose, 2006 p.8), algumas das funções do administrador de redes atualmente são: monitorar equipamentos remotos para garantir seu funcionamento adequado, gerenciar reativamente o sistema, ou seja, realizar modificações de acordo com as mudanças ocorridas e gerenciar pró ativamente, que significa monitorar e corrigir possíveis anomalias no comportamento da rede que possam ser sinais de problemas futuros.

Na época do início da Arpanet, e mesmo há alguns anos atrás, a preocupação com gerência e monitoramento de redes não existia praticamente, assim como a padronização e o uso de procedimentos metodológicos em vários setores da Tecnologia da Informação. Com a evolução rápida das redes e dos recursos disponibilizados através delas, fez-se necessária a evolução e organização das tecnologias necessárias para se manter essa estrutura funcionando corretamente. O que era testado há vinte anos atrás com um simples ping demanda, hoje requer ferramentas muito mais complexas e avançadas. À luz ainda do livro de Kurose (Kurose, 2006 p.9), entre as funções que podem ser monitoradas em uma rede, tem-se:

Hosts - O administrador precisa ter certeza de que servidores, impressoras e outros equipamentos desta categoria - O administrador precisa ter certeza de que servidores, impressoras e outros equipamentos desta categoria estão ativos e desempenhando suas funções de maneira adequada.

Tráfego - Com a crescente utilização de aplicações que fazem uso de recursos de rede, os limites de banda tornaram-se uma questão muito importante nos dias atuais. Ferramentas adequadas ajudam o administrador a perceber se o projeto da rede, assim como a banda oferecida para links internos e externos são suficientes. Um exemplo simples é um monitoramento de link de links internos e externos são suficientes. Um exemplo simples é um monitoramento de link de Internet, com isolamento do tráfego por aplicação. Desta maneira tem-se a idéia exata de como a banda é utilizada por cada aplicação, o que auxilia em um melhor planejamento dos recursos.

Service Level Agreements (SLAs) - Os Acordos de Nível de Serviço são contratos com provedores

Service Level Agreements (SLAs) - Os Acordos de Nível de Serviço são contratos com provedores de rede que especificam níveis aceitáveis de performance do link. Através do monitoramento é possível verificar se os SLAs estão sendo cumpridos devidamente pelo provedor.

Detecção de intrusos - Segurança é a maior preocupação de muitos profissionais de rede devido à quantidade e complexidade das ameaças tecnológicas e de engenharia social que atuam no mercado. Com as devidas ferramentas um administrador pode reagir de maneira efetiva, ou mesmo coibir ataques contra uma organização antes mesmo que eles aconteçam.se os SLAs estão sendo cumpridos devidamente pelo provedor. Desempenho - O profissional de redes deve

contra uma organização antes mesmo que eles aconteçam. Desempenho - O profissional de redes deve classificar,

Desempenho - O profissional de redes deve classificar, medir e ajustar equipamentos diversos além da estrutura e organização de uma rede para que se obtenha o desempenho máximo. Dentro de um contexto financeiro, a otimização de uma rede aliada à redução de custos é um interesse por parte de qualquer empresa.

de custos é um interesse por parte de qualquer empresa. Falhas - Através de protocolos como

Falhas - Através de protocolos como o SNMP (Simple Network Management Protocol) pode-se obter informações sobre falhas de equipamentos e conexões praticamente em tempo real. Um administrador, por exemplo, pode utilizar ferramentas instaladas em seu celular que permitem acesso à sua estação de monitoramento na empresa e receber mensagens SMS ou e-mails com notificações, caso falhas ocorram.

Em resumo, pode-se dizer que o monitoramento de redes consiste em coletar e analisar informações provenientes de recursos e tráfego. As ferramentas disponíveis para esta tarefa trabalham em diferentes camadas do modelo ISO/OSI. Na camada um têm-se equipamentos sofisticados que verificam o status dos enlaces, CRC, erros causados por problema elétricos etc. Nas camadas dois e três, têm-se os analisadores de protocolos, visto que as camadas mais altas do modelo ISO/OSI se utilizam de protocolos especiais para controlar a transmissão de dados. As versões mais atuais das ferramentas de monitoramento proporcionam o suporte a aplicações extremamente específicas. Os sistemas de prevenção de intrusos (IPS's), por exemplo, ajudam o administrador a identificar ameaças a segurança. Outros sistemas monitoram o desempenho de equipamentos e aplicações, e há também os sistemas responsáveis por coletar e analisar dados sobre o tráfego em enlaces. Na próxima sessão serão discutidos os principais protocolos utilizados para monitoramento de redes.

1.1.1

Protocolos utilizados para o monitoramento de Redes.

Existem várias abordagens no que diz respeito ao monitoramento de redes, as quais se

utilizam de muitas ferramentas e protocolos diferenciados. Serão apresentados a seguir o

protocolo de comunicação SNMP e a MIB RMON, uma vez que as ferramentas Nagios e

Cacti se utilizam destes para a obtenção de dados.

1.2 SNMP (Simple Network Management Protocol)

De acordo com a empresa Cisco Systems, líder mundial e referência na fabricação de

equipamentos de rede e desenvolvimento de tecnologias, o SNMP é um protocolo da

camada de aplicação que facilita a troca de informações de gerenciamento entre

dispositivos de rede. É parte da pilha Transmission Control Protocol / Internet Protocol

(TCP/IP) e habilita a administração de desempenho em uma rede, localização de problemas

e planejamento para o crescimento futuro. A última versão do protocolo é o SNMP3, que

oferece mais recursos e criptografia, diferente das versões anteriores (Cisco Systems,

2010).

diferente das versões anteriores (Cisco Systems, 2010). Figura 2 – Funcionamento básico do SNMP FONTE:

Figura 2 Funcionamento básico do SNMP FONTE: http://www.cisco.com/en/US/docs/internetworking

A Figura 2 representa de maneira simples o funcionamento do SNMP. Um servidor recebe

informações de equipamentos como roteadores, servidores, impressoras, que suportem e

tenham habilitada a função SNMP em sua configuração.

1.2.1 Componentes básicos do SNMP

Uma rede gerenciada pelo protocolo SNMP possui três componentes básicos que devem

ser entendidos:

ser entendidos: Dispositivo Gerenciado - Estes são equipamentos que estão presentes na rede gerenciada por SNMP

Dispositivo Gerenciado - Estes são equipamentos que estão presentes na rede

gerenciada por SNMP e disponibilizam informações relativas a seu funcionamento,

desempenho ao sistema de gerenciamento de redes. Exemplos de dispositivos

gerenciados são servidores, switches, roteadores, impressoras, bridges e

computadores pessoais.

Agente - Agentes são softwares instalados nos dispositivos gerenciados e fazem o softwares instalados nos dispositivos gerenciados e fazem o

papel de coletores de dados e tradutores. Para que os dados possam ser obtidos e

interpretados pelo Sistema de gerenciamento, estes necessitam estar em formato

correto, ou seja, precisam seguir o padrão do SNMP.

formato correto, ou seja, precisam seguir o padrão do SNMP. Sistema de gerenciamento de redes -

Sistema de gerenciamento de redes - Este tipo de sistema é equipado com memória

e recursos de processamento suficientes para que possa executar aplicações e

outras funções de monitoramento e gerência. Utiliza-se dos agentes instalados nos

dispositivos gerenciados para obter informações.

nos dispositivos gerenciados para obter informações. Figura 3 – Representação da estrutura Dispositivo

Figura 3 Representação da estrutura Dispositivo Gerenciado, Agente e Sistema de Gerenciamento FONTE: http://www.cisco.com/en/US/docs/internetworking

A Figura 3 representa o processo de obtenção de dados por meio do Sistema de

Gerenciamento (topo) e como os agentes (meio) estão habilitados nos três dispositivos

gerenciados do exemplo. O primeiro requisita dados aos agentes, que por suas vez

consultam bases de dados locais conhecidas como MIBs (Managemente Information Base).

As MIBs são coleções de informações organizadas hierarquicamente e que são acessadas por protocolos como o SNMP. São compostas por objetos gerenciáveis e são identificadas individualmente por IDs. Uma discussão mais aprofundada sobre o funcionamento das MIBs está fora do escopo deste trabalho, porém pode ser encontrada no site da empresa Cisco Systems (vide Bibliografia) ou na RFC 1066.

De acordo com a evolução do SNMP, novas funções e operações foram implementadas, porém de forma básica estas operações foram divididas em:

de forma básica estas operações foram divididas em: read - comando utilizado pelo sistema de gerenciamento

read - comando utilizado pelo sistema de gerenciamento para monitorar os dispositivos, no qual as variáveis correspondentes a cada objeto são examinadas.

write - comando utilizado para controle do dispositivo gerenciado. O sistema de gerenciamento pode mudar valores, - comando utilizado para controle do dispositivo gerenciado. O sistema de gerenciamento pode mudar valores, ou seja, pode interferir no dispositivo gerenciado.

1.3

ou seja, pode interferir no dispositivo gerenciado. 1.3 trap - comando usado por dispositivos gerenciados para

trap - comando usado por dispositivos gerenciados para reportar eventos ao sistema de gerenciamento, caso tais eventos ocorram.O comando write, muitas vezes, não é utilizado por alguns fabricantes, uma vez que o protocolo SNMP ainda não possui um sistema de autenticação, portanto, pode representar uma vulnerabilidade crítica de segurança (Cisco Systems, 2010).

RMON

O RMON (Remote Network Monitoring) é, na verdade, uma MIB baseada em SNMP que foi

desenvolvida pela IETF (Internet Engineering Task Force) como o intuito de suportar o monitoramento e análise de protocolos em LANs. De acordo com a empresa Cisco Systems,

a versão atual (RMON2) oferece suporte às camadas Física, Enlace de Dados, Rede e

Aplicação. Agentes RMON vêm instalados por padrão em muitos equipamentos de rede. (Cisco Systems, 2010)

RMON foi projetado para que trabalhe de uma forma diferente da maioria dos sistemas baseados em SNMP, por exemplo, dispositivos localizados em pontos estratégicos na rede fazem o papel de "probes" que capturam e armazenam dados através de SNMP (vide figura 4). Estes dados serão passados ao sistema de gerenciamento apenas quando solicitados, o que faz com que tais probes necessitem de uma quantidade considerável de recursos. Em outras palavras, RMON foca principalmente o monitoramento baseado em fluxo, enquanto outras ferramentas iram se focar em status de dispositivo (Ex: Nagios). Uma MIB RMON2 consiste de 9 grupos ou categorias de dados que podem ser extraídos e organizados,

porém, em muitas implementações, apenas algumas são utilizadas, se levada em

consideração a performance.

utilizadas, se levada em consideração a performance . Figura 4 – Um "probe" envia estatísticas para

Figura 4 Um "probe" envia estatísticas para o console FONTE: http://www.cisco.com/en/US/docs/internetworking

1.4 Gerencia Pró-ativa de Redes de Computadores

Segundo artigo publicado pela empresa Netcordia (Netcordia, Inc., 2010), os

administradores da área de Tecnologia da Informação estão cada vez mais sob pressão

para assegurar alta performance, disponibilidade e ambientes seguros com o menor custo

possível. Em um ambiente heterogêneo e complexo como o atual, os profissionais de TI

(Tecnologia da Informação) devem utilizar abordagem diferenciada da antiga administração

reativa, na qual ações são tomadas após a ocorrência do problema. Faz-se necessária a

utilização de ferramentas de análise pró-ativas, que continuamente monitorem a rede

garantindo os aspectos necessários para que esta funcione de maneira efetiva. Um conjunto

de ferramentas de monitoramento ajuda o administrador a cumprir tarefas como:

monitoramento ajuda o administrador a cumprir tarefas como: Reduzir o risco de falhas. Reduzir vulnerabilidades de

Reduzir o risco de falhas.

Reduzir vulnerabilidades de segurança.a cumprir tarefas como: Reduzir o risco de falhas. Otimizar a performance da rede. Tornar a

o risco de falhas. Reduzir vulnerabilidades de segurança. Otimizar a performance da rede. Tornar a equipe

Otimizar a performance da rede.

de segurança. Otimizar a performance da rede. Tornar a equipe de TI mais produtiva e eficiente.

Tornar a equipe de TI mais produtiva e eficiente.

Em muitas situações, a disponibilidade e confiabilidade são fatores críticos para o sucesso

de uma organização. No entanto, o problema maior vem do fato de que as redes tornaram-

se grandes e complexas. Além disso, as tecnologias de comunicação têm passado por uma

transformação voltada a convergência, ou seja, as redes atuais transportam dados, voz e vídeo. Um único erro causado por má configuração ou descuido pode causar prejuízos da ordem de milhões. De acordo com uma pesquisa realizada pela empresa Enterprise Management Associates (EMA, 2010), cerca de 80% de todos os problemas nas infraestruturas de redes são causados por erros de configuração. Manter todos os ativos de rede sobre detalhado monitoramento é muito difícil e consome muito tempo do

administrador, além de que a quantidade de dados que devem ser analisada é enorme. Para isso, os profissionais de TI devem adotar soluções que ajudem a capturar o máximo de dados de forma que seja de fácil entendimento e que reflita o estado real da rede. O monitoramento pró-ativo permite que o administrador seja avisado sobre possíveis problemas antes que eles aconteçam, de maneira que medidas corretivas podem ser

tomadas. Do ponto de vista da qualidade do serviço de TI, torna-se muito interessante o uso

de ferramentas que avisam o administrador sobre a falha de um enlace, ou a falta de espaço

em disco em um servidor, antes mesmo que o usuário final perceba o problema. Alguns exemplos de funções específicas que podem ser monitoradas pró-ativamente são:

específicas que podem ser monitoradas pró-ativamente são: Configurações de equipamentos. Problemas relacionados à

Configurações de equipamentos.

Problemas relacionados à performance de interfaces e estatísticas.pró-ativamente são: Configurações de equipamentos. Memória e uso de CPU. Estabilidade de protocolos e Vlans

relacionados à performance de interfaces e estatísticas. Memória e uso de CPU. Estabilidade de protocolos e

Memória e uso de CPU.

de interfaces e estatísticas. Memória e uso de CPU. Estabilidade de protocolos e Vlans etc. Nesta

Estabilidade de protocolos e Vlans etc.

Nesta pesquisa utiliza-se a combinação das ferramentas Nagios e Cacti, que além de gratuitas estão classificadas entre as mais poderosas e flexíveis do mercado, especialmente por se tratar de ambientes vastos e heterogêneos, com grande quantidade de dispositivos e enorme volume de dados a serem analisados.

1.5 Virtualização

De acordo com a empresa Vmware, líder no mercado e pioneira no desenvolvimento de estruturas de virtualização, a tecnologia x86 tradicional foi projetada para que um único sistema operacional pudesse ser executado por vez em uma máquina física. A tecnologia de virtualização permite que várias máquinas virtuais possam ser executadas na mesma máquina física (vide Figura 5), assim como vários sistemas operacionais e aplicações.

O princípio básico de funcionamento baseia-se em um software que virtualiza os recursos

da máquina física - incluindo CPU, RAM, Disco rígido e interface de rede o que faz com

que as máquinas virtuais se comportem exatamente como o sistema que a hospeda. Cada

máquina virtual possui um sistema completo, isso elimina possíveis conflitos. A virtualização

consiste, portanto, em uma camada de software que, através de um sofware monitor de

máquinas virtuais, compartilha recursos de hardware, dinamicamente, e de maneira

transparente. Este projeto utiliza-se da tecnologia de virtualização para construir um

ambiente de testes de fácil utilização, eficiente, flexível e a baixo custo.

fácil utilização, eficiente, flexível e a baixo custo. Figura 5 - Representação de servidores virtuais

Figura 5 - Representação de servidores virtuais hospedados em uma máquina física FONTE: O autor

1.6 Oracle Virtualbox

Neste projeto, é utilizada a ferramenta Virtualbox para a criação do ambiente de testes de

monitoramento. Esta pertencia à empresa Sun Microsystems, e atualmente é desenvolvida

pela Oracle Corporation. A partir de sua instalação em um ambiente hospedeiro podem-se

criar sistemas "convidados" chamados de guests. A ferramenta oferece suporte aos

sistemas Linux, Mac OS, Windows e FreeBSD.

A versão VirtualBox Open Source Edition foi escolhida para este projeto, é gratuita e está

licenciada sob a GNU (General Public License). Através do uso desta ferramenta se terá

acesso a múltiplos sistemas independentes e completos, ou seja, possuem placa de rede,

processador, memória RAM e disco rígido independentes.

A ferramenta foi escolhida devido à facilidade de uso, experiência do autor deste projeto,

confiabilidade, tipo de licença e suporte a uma grande variedade de sistemas. Na Figura 6

observa-se o sistema Linux Ubuntu sendo executado como guest do sistema FreeBSD.

Figura 6 - Máquina virtual executando o sistema Ubuntu FONTE: O autor 23

Figura 6 - Máquina virtual executando o sistema Ubuntu FONTE: O autor

SOLUÇÃO DE MONITORAMENTO DE RECURSOS COMPUTACIONAIS UTILIZANDO NAGIOS E CACTI

2

A proposta deste trabalho é informar sobre a integração entre as ferramentas Nagios e Cacti

como uma solução para monitoramento de recursos computacionais, porém para que se

entenda essa proposta é preciso, primeiramente, entender o porquê de se utilizar essas

duas ferramentas, assim como suas origens, vantagens, desvantagens, funcionalidades e

requisitos.

Primeiramente, tem-se o fato de que ambas as ferramentas são gratuitas e estão

classificadas entre as melhores do mercado, o que proporciona qualidade a baixo custo.

A razão pela qual se trata da integração das duas ferramentas é o fato de que oferecem

recursos completamente diferentes. O Nagios utiliza um sistema de alertas que mantém o

administrador informado sobre a situação da rede e dos recursos computacionais, enquanto

o Cacti utiliza estes dados para gerar gráficos, o que facilita o entendimento da situação real

da rede. Portanto, nas próximas seções serão discutidos Nagios e Cacti em detalhes para

que se possa ter uma visão mais ampla desta solução.

2.1

A ferramenta Nagios

2.1.1

Origens

O Nagios é um sofware livre distribuído por meio da licença GPL, criado por Ethan Galstad.

Atualmente uma grande comunidade de desenvolvedores ao redor do planeta participa do

desenvolvimento desta ferramenta que surgiu com o nome de Netsaint, nos anos 90. O

NetSaint era apenas uma pequena ferramenta DOS que se utilizava do comando "ping" para

testar conectividade com servidores Novell. Esta aplicação também conseguia se utilizar de

aplicações de terceiros e resgatar dados, organizando-os em arquivos de texto. Este é o

início da arquitetura Servidor-Plugins, utilizada pelo Nagios e que resultou em um enorme

sucesso da ferramenta.

Em 1998, Ethan lançou uma versão aprimorada do NetSaint para que funcionasse na

plataforma Linux. Esta versão foi otimizada para que pudesse monitorar hosts e serviços de

maneira efetiva. No ano de 2002, devido a problemas com os direitos do nome NetSaint,

Galstad muda o nome de sua ferramenta para Nagios e, a partir deste ponto, o software

tornou-se cada vez mais conhecido internacionalmente. Nos últimos anos, Nagios tem

vencido muitos prêmios e vem sendo utilizado em larga escala, principalmente por

empresas de grande porte como ISPs (Internet Service Providers), devido a sua robustez e

escalabilidade. A Figura 7 demonstra o crescimento no número de downloads da ferramenta

nos últimos anos, observando-se uma média de cinco mil downloads mensais em 2001, e

picos próximos dos cem mil downloads entre 2009 e 2010.

e picos próximos dos cem mil downloads entre 2009 e 2010. Figura 7 - Crescimento no

Figura 7 - Crescimento no número de downloads do Nagios Fonte: http://www.nagios.org/about/propaganda/statistics

2.1.2 Por que o Nagios?

Existem no mercado várias ferramentas para recursos computacionais, algumas distribuídas

gratuitamente como o Nagios e outras pagas como o Orion Solar Winds, que chega a custar

milhares de dólares. A decisão em se utilizar o Nagios parte da ideia de redução de custo,

um fator primordial dentro das empresas de TI, hoje em dia, e também por ser considerado

uma das ferramentas mais poderosas no mercado, atualmente, adapta-se a todo o tipo de

ambiente, além de apresentar a flexibilidade de uma arquitetura que permite a participação

direta do usuário através de customização e criação de plugins.

Em outras palavras, pode-se listar algumas funcionalidades chave do Nagios como:

pode-se listar algumas funcionalidades chave do Nagios como: Web interface . Não importa a localidade onde

Web interface. Não importa a localidade onde se encontra o administrador, pode-se

verificar a saúde da rede desde que se tenha acesso a um browser;

Recursos de rede como HTTP e FTP podem ser monitorados assim como recursosa saúde da rede desde que se tenha acesso a um browser ; de hosts como

de hosts como espaço em disco, processos, logs, recursos de processamento e

memória etc;

processos, logs , recursos de processamento e memória etc; Pode-se gerar relatório para tendências, alertas,

Pode-se gerar relatório para tendências, alertas, viabilidade e notificações através da

interface web;

interface web ; Plugins podem ser programados pelo próprio administrador ou uma equipe caso o Nagios

Plugins podem ser programados pelo próprio administrador ou uma equipe caso o Nagios não forneça a princípio as informações desejadas;

"Downtime " programável. Enquanto servidores estão off-line para manutenção ou recursos estão indisponíveis por Downtime" programável. Enquanto servidores estão off-line para manutenção ou recursos estão indisponíveis por razões conhecidas pode-se ativar o modo downtime e notificações não são enviadas;

o modo downtime e notificações não são enviadas; Estrutura de monitoramento redundante. Para que o servidor

Estrutura de monitoramento redundante. Para que o servidor de monitoramento não corra o risco de falhar, pode-se utilizar uma estrutura "Master and Slave", ou seja, um segundo servidor Nagios pode ser utilizado como Backup para o primeiro. Caso haja falha, o servidor de backup assume o controle automaticamente.

2.1.3 Como funciona o Nagios

Um dos propósitos principais de um sistema de monitoramento é detectar falhas no funcionamento de máquinas e serviços, portanto, o administrador é avisado imediatamente sobre o problema (Kocjan, 2008, p.8). O sistema Nagios não executa suas funções por si só. Utiliza-se de plugins para realizar as verificações necessárias. Tais plugins podem ser desenvolvidos por usuários em qualquer linguagem de programação, o que torna a estrutura do Nagios extremamente flexível.

Os objetos monitorados pelo sistema Nagios podem ser divididos em duas categorias básicas: hosts e serviços. Hosts são máquinas físicas como servidores, switches, impressoras, roteadores etc. Serviços são funcionalidades como um servidor web, impressão, e-mail, entre outros. Tais serviços são associados com o host no qual são executados. Grupos de hosts e serviços podem também ser criados, o que facilita a organização dos objetos.

Figura 8 - Organização de hosts e serviços no Nagios FONTE : Learning Nagios 3.0

Figura 8 - Organização de hosts e serviços no Nagios FONTE: Learning Nagios 3.0 p.8

A Figura 8 explica o conceito de hosts e serviços no Nagios. O host 1 por exemplo, possui 4

serviços associados, são eles : Webserver, Database server, FTP server e SSH server. Host

1 e Host 2, por sua vez, formam o grupo Hostgroup 1. Caso uma ação seja aplicada a esse

grupo, esta irá afetar Host 1 e Host 2, respectivamente.

O Nagios possui um estilo de exibição dos dados que simplifica sua visualização. Em vez de

utilizar números e percentagens, o sofware utiliza quatro estados para demonstrar o status

de serviços e equipamentos: OK, WARNING, CRITICAL, e UNKNOWN. Esta abordagem

facilita muito o trabalho do administrador que ao invés de monitorar valores numéricos o

tempo todo, pode customizar estes valores de forma que os quatro estados do Nagios

reflitam o estado da rede de maneira eficiente. Por exemplo, em determinada rede a

utilização média do link de Internet pode girar em torno dos 40%. Em outra, a percentagem

pode ser em torno de 65%, portanto, os administradores devem customizar os estados de

maneira que o Nagios possa informar anomalias na utilização destes links, eficientemente.

Em geral, administradores tendem a desconsiderar coisas como uma lenta diminuição do

espaço em disco em um servidor, e, até que se perceba o problema, este poderá fazer com

que usuários sejam impossibilitados de gravar arquivos, até usar o sistema de maneira

eficiente. Em casos como esse, ferramentas de monitoramento são muito importantes para

se prevenir problemas desse tipo.

Nagios se utiliza de plugins para monitorar seus objetos. Tais plugins são componentes

externos, os quais passam informações ao servidor. São responsáveis por verificar e

analisar resultados, ou seja, são transformados em um dos quatro estados citados

anteriormente e enviados ao servidor, assim como um relatório detalhado adicional, que

pode ser lido por administradores experientes. Existem plugins capazes de monitorar

basicamente qualquer tipo de objeto de uma companhia. O site www.nagiosplugins.org deve

ser checado para maiores informações sobre as centenas de plugins disponíveis. A Figura 9

exibe uma tela do plugin Nagvis, a qual possibilita a visualização do status de estruturas,

servidores e outros objetos por meio de diagramas e fotografias.

e outros objetos por meio de diagramas e fotografias. Figura 9 – Tela do plugin Nagvis

Figura 9 Tela do plugin Nagvis FONTE: http://exchange.nagios.org/directory/image/128

2.1.4 Principais características do Nagios

Como citado anteriormente, a característica mais forte do Nagios é a flexibilidade, ou seja,

pode ser configurado em detalhes pelo administrador. Também possui um mecanismo que

reage automaticamente em caso de problemas e um poderoso sistema de notificações. De

acordo com Kocjan (Kocjan, 2008, p.25), todas essas funcionalidades são baseadas em um

sistema claro de definições e tipos de objetos, a saber:

sistema claro de definições e tipos de objetos, a saber: Comandos - definições de como o

Comandos - definições de como o Nagios deve executar verificações específicas; na

verdade, são uma camada de abstração que permite o agrupamento de operações

similares.

Períodos de Tempo - controlam quando ações devem ser executadas ou não. Porque permite o agrupamento de operações similares. exemplo: segunda a sexta entre 7:00 e 18:00 horas.

exemplo: segunda a sexta entre 7:00 e 18:00 horas.

não. Por exemplo: segunda a sexta entre 7:00 e 18:00 horas. Contatos e grupos de contato

Contatos e grupos de contato - Informações sobre as pessoas que devem ser

contatadas e os meios de contato. Podem ser agrupadas para facilitar o contato de

várias pessoas.

ser agrupadas para facilitar o contato de várias pessoas. Hosts - informações sobre máquinas físicas, como

Hosts - informações sobre máquinas físicas, como a verificação deve ser efetuada e

quais as pessoas a serem contatadas.

Serviços - várias funcionalidades ou recursos a serem monitorados em um host host

específico, contatos, além de como e quando a verificação deve ser feita.

Hierarquia de notificações para Hosts e Serviços - define períodos nos quais Hosts e Serviços - define períodos nos quais

pessoas adicionais devem ser notificadas. Por exemplo, se um servidor de missão

crítica estiver off-line por mais de 4 horas, a gerência pode ser notificada (Kocjan,

2008 p.12).

Outra característica muito importante do Nagios é o avançado sistema de dependências do

sistema. Por exemplo, se um roteador está off-line, todas as máquinas e serviços acessados

através deste equipamento são obviamente afetadas. Alguns sistemas não levam isso em

consideração, o que resulta em um excesso monstruoso de notificações a respeito de todas

as máquinas e serviços afetados.

A figura 8 exemplifica o sistema de notificações do Nagios. Neste exemplo, o Switch 1 está

off-line, portanto o Nagios não monitora o Router 1 e os demais equipamentos e serviços

dependentes.

Router 1 e os demais equipamentos e serviços dependentes. Figura 10 – Sistema de dependências do

Figura 10 Sistema de dependências do Nagios FONTE: Learning Nagios 3.0 p.12

2.1.5

Estados "Hard" e "Soft"

O Nagios utiliza um sistema de quatro estados para informar o administrador sobre o status de um objeto (vide seção 2.1.3). Porém, para que se evitem problemas temporários, que resultam em notificações que não refletem o estado real da rede, o Nagios utiliza estados "hard" e "soft" para descrever o estado do objeto naquele momento. Por exemplo, se o administrador precisa reiniciar um servidor web e este processo faz com páginas web fiquem sem acesso por alguns segundos, o Nagios não deve enviar notificações uma vez que se trata de um período aceitável. Caso o servidor continue indisponível por tempo acima do permitido pelo administrador como aceitável, a ferramenta avisa, então, as pessoas responsáveis. Se o Nagios não possuísse este tipo de estado temporário, um evento como esse poderia ativar uma série de notificações equivocadas. A configuração de "soft" e "hard" states pode ser feita para cada host individualmente, o que proporciona maior flexibilidade.

2.1.6 Requisitos

De acordo com o site oficial do Nagios (www.nagios.org), os requerimentos necessários para a instalação e utilização da ferramenta são:

para a instalação e utilização da ferramenta são: Um servidor com sistema operacional Linux ou variação

Um servidor com sistema operacional Linux ou variação Unix,

Acesso a rede eservidor com sistema operacional Linux ou variação Unix, Um compilador C. Obs: Detalhes sobre o hardware

operacional Linux ou variação Unix, Acesso a rede e Um compilador C. Obs: Detalhes sobre o

Um compilador C.

Obs: Detalhes sobre o hardware utilizado, versões de sistemas operacionais, processo de instalação, entre outros, são discutidos na seção 3.2.2 deste trabalho.

2.2 A ferramenta Cacti

De acordo com Kundu e Lavlu (2009) o Cacti é uma ferramenta de código aberto distribuída sob a licença GPL, escrito em PHP/MySQL, que utiliza o plataforma RRDTool (Round-robin database tool) para armazenar dados e gerar gráficos, e que coleta dados periodicamente, através da utilização da ferramenta Net-SNMP ( uma aplicação que implementa o uso de SNMP ).

A ferramenta Cacti teve seu início em 2001 quando Ian Berry começou a desenvolvê-lo

enquanto trabalhava em um ISP (Internet Service Provider) nos Estados Unidos. Berry já utilizava a ferramenta RRDTool que não possui uma interface amigável e é de difícil configuração. A partir desta ideia, iniciou-se o desenvolvimento do Cacti com a utilização das linguagens PHP/MySQL e a primeira versão veio a público em novembro de 2001. Em 2004, Berry convida um segundo desenvolvedor para ajudar na tarefa, e atualmente a equipe conta com seis membros oficiais, e, claro, os milhares de contribuidores ao redor do mundo.

2.2.1 Porque o Cacti?

Como o Nagios, o Cacti é uma ferramenta free, ou seja, não há custo com licenças para o usuário. Tradicionalmente, a montagem de gráficos é feita através de dados obtidos com o SNMP, porém outros tipos de fontes podem ser utilizados, como Shell Scripts ou Perl. Há várias razões pelas quais o Cacti torna-se uma ferramenta poderosa para o administrador, entre elas:

uma ferramenta poderosa para o administrador, entre elas: É fácil de instalar e não requer avançados

É fácil de instalar e não requer avançados conhecimentos de sistemas operacionais para uma configuração básica.

Não requer muitos pacotes como pré-requisitos.de sistemas operacionais para uma configuração básica. Possui uma excelente interface construída com a

básica. Não requer muitos pacotes como pré-requisitos. Possui uma excelente interface construída com a

Possui uma excelente interface construída com a utilização do PHP/MySQL.

interface construída com a utilização do PHP/MySQL. A comunidade de usuários é vasta e ativa, portanto

A comunidade de usuários é vasta e ativa, portanto o suporte e atualizações são de fácil acesso.

portanto o suporte e atualizações são de fácil acesso. Permite a integração com outras ferramentas gratuitas,

Permite a integração com outras ferramentas gratuitas, através de plugins.

A figura 9 exibe alguns dos tipos de gráficos criados pela ferramenta RRDTool e exibidos através da interface do Cacti.

Figura 11 - Alguns tipos de gráficos RRD exibidos com o Cacti FONTE: www.cacti.net 2.2.2

Figura 11 - Alguns tipos de gráficos RRD exibidos com o Cacti FONTE: www.cacti.net

2.2.2 Como funciona o Cacti

Nesta seção serão discutidas as três principais tarefas executadas pelo Cacti:

as três principais tarefas executadas pelo Cacti: Obtenção de dados - O Cacti obtém dados utilizando

Obtenção de dados - O Cacti obtém dados utilizando um "poller", ou seja, uma

aplicação executada de acordo com um período de tempo e é registrada como um

serviço que depende da plataforma utilizada. Uma estrutura de redes contém

diferentes dispositivos como roteadores, switches, impressoras, servidores, além de

outros equipamentos como firewals e IPS's (Intrusion Prevention Systems). Para

obter dados destes dispositivos remotos, o sistema utiliza SNMP, ou seja,

dispositivos com funcionalidades SNMP podem ser monitorados pelo Cacti.

Armazenamento de dados - Há várias opções no que diz respeito aocom funcionalidades SNMP podem ser monitorados pelo Cacti. armazenamento de dados com o Cacti, como bases

armazenamento de dados com o Cacti, como bases de dados SQL e arquivos de

texto. No entanto, o sistema utiliza a ferramenta RRDTool, a qual se discute nas

próximas seções deste trabalho. Basicamente, o padrão RRD armazena e exibe as

informações obtidas através do SNMP e as consolida utilizando funções como

AVERAGE (Média), MINIMUM (Mínimo), MAXIMUM (Máximo), entre outras. Isto faz

com o que este sistema seja muito rápido e utilize o mínimo de espaço em disco.

seja muito rápido e utilize o mínimo de espaço em disco. Apresentação de dados - A

Apresentação de dados - A função mais importante do Cacti e da ferramenta

RRDTool é a construção de gráficos. As funções integradas de ambas as

ferramentas possibilitam a criação de gráficos com base em um único item, ou vários itens, assim como legendas, máximo, média etc.

2.2.3 Conceitos Básicos sobre RRDTool

De acordo com informações do site do desenvolvedor, a ferramenta RRDTool é um sistema de alta performance para criação de logs e gráficos. Foi construída para trabalhar sobre dados como banda, temperatura de data-centers, carga de CPU, carga do servidor etc. Através deste sistema o administrador pode armazenar e analisar dados coletados dos dispositivos. E com base na análise feita pela ferramenta RRDTool, são criados os gráficos sobre os dados coletados durante determinado período de tempo. RRDTool é escrita em linguagem C e armazena dados em arquivos .rrd. O número de registros em um arquivo .rrd nunca aumenta, ou seja, registros antigos são apagados. Alguns comandos oferecidos pelo sofware para manipulação dos arquivos .rrd são: create, update, updatev, graph, dump, restore, fetch, tune, last, info, rrdresize, xport e rrdcgi. Mais detalhes sobre os comandos da RRDTool podem ser encontrados no site http://oss.oetiker.ch/rrdtool/doc/rrdtool.en.html. Também são oferecidas funções que podem ser chamadas a partir de outras linguagens. A ferramenta Cacti é escrita em PHP e utiliza tais funções para fazer uso do RRDTool (Oetiker, 2010).

O funcionamento básico deste sistema segue um projeto lógico para obter e processar os dados coletados da fonte. Este processo é divido em três etapas básicas:

da fonte. Este processo é divido em três etapas básicas: Aquisição dos dados - Quando se

Aquisição dos dados - Quando se monitora um dispositivo, dados devem ser obtidos em intervalos de tempo constantes. Esta tarefa é muito difícil de ser realizada manualmente, portanto RRDTool utiliza-se de uma aplicação "poller" que obtém tais dados em intervalos definidos pelo administrador.

Consolidação dos dados - Bases de dados podem se tornar gigantescas, caso o intervalo de coleta de dados seja pequeno, como cinco minutos, por exemplo. A ferramenta RRDTool resolve este problema através da consolidação dos dados em períodos pré-definidos. Por exemplo, todos os sábados a ferramenta transforma os dados coletados com intervalo de cinco minutos durante os últimos sete dias e os converte em um único dado que contém AVERAGE , MINIMUM , MAXIMUM, entre outros. Desta forma, o tamanho do banco de dados AVERAGE, MINIMUM, MAXIMUM, entre outros. Desta forma, o tamanho do banco de dados é extremamente reduzido, o que torna a ferramenta ideal para ambientes com grande volume de dados.

ferramenta ideal para ambientes com grande volume de dados. Criação dos gráficos - RRDTool permite que

Criação dos gráficos - RRDTool permite que o administrador gere relatórios em

forma gráfica e numérica, os quais são baseados nos dados obtidos e armazenados nos arquivos .rra. Tais gráficos podem ser customizados em forma, tamanho e conteúdo.

2.2.4 Requisitos

De acordo com o site oficial do Cacti (www.cacti.net), os requerimentos necessários para a instalação e utilização da ferramenta são:

para a instalação e utilização da ferramenta são: Um servidor com sistema operacional Linux ou variação

Um servidor com sistema operacional Linux ou variação Unix.

Acesso à rede.servidor com sistema operacional Linux ou variação Unix. RRDTool 1.0.49 or 1.2.x ou superior. MySQL 4.1.x

operacional Linux ou variação Unix. Acesso à rede. RRDTool 1.0.49 or 1.2.x ou superior. MySQL 4.1.x

RRDTool 1.0.49 or 1.2.x ou superior.

Unix. Acesso à rede. RRDTool 1.0.49 or 1.2.x ou superior. MySQL 4.1.x or 5.x ou superior.

MySQL 4.1.x or 5.x ou superior.

1.0.49 or 1.2.x ou superior. MySQL 4.1.x or 5.x ou superior. PHP 4.3. ou superior, 5.x

PHP 4.3. ou superior, 5.x ou superior para funções avançadas.

4.3. ou superior, 5.x ou superior para funções avançadas. Um Web Server como Apache ou IIS

Um Web Server como Apache ou IIS

Obs.: Detalhes sobre o hardware utilizado, versões de sistemas operacionais, processo de instalação, entre outros, são discutidos na seção 3.2.2 deste trabalho.

2.3 Vantagens e desvantagens dos sistemas Nagios e Cacti

Nesta sessão são apresentadas de forma resumida as principais vantagens e desvantagens de ambas as ferramentas.

2.3.1 Principais Vantagens e Desvantagens do Nagios

Classificado entre as melhores ferramentas do mercado, o software Nagios possui como principais vantagens:

mercado, o software Nagios possui como principais vantagens: Open Source. Grande comunidade de usuários. Poderosos

Open Source.

Nagios possui como principais vantagens: Open Source. Grande comunidade de usuários. Poderosos plugins que podem

Grande comunidade de usuários.

vantagens: Open Source. Grande comunidade de usuários. Poderosos plugins que podem ser desenvolvidos facilmente por

Poderosos plugins que podem ser desenvolvidos facilmente por usuários.

Interface web de fácil utilização. Sistema claro de dependências que elimina a emissão de alerta

Interface web de fácil utilização.

Sistema claro de dependências que elimina a emissão de alerta desnecessários.Interface web de fácil utilização. Sistema de grupos de hosts e serviços que facilita a configuração.

que elimina a emissão de alerta desnecessários. Sistema de grupos de hosts e serviços que facilita

Sistema de grupos de hosts e serviços que facilita a configuração.

Através de pesquisas em fóruns de usuários, nas comunidades e testes realizados pelo próprio autor identificou-se algumas das desvantagens principais do Nagios:

O
O

foco do sistema é a verificação de disponibilidade de hosts e serviços, portanto, o

Nagios não gera gráficos. Faz-se necessário o uso de uma segunda ferramenta.

A
A

configuração através de arquivos de texto é complexa e facilita a ocorrência de

erros.

de texto é complexa e facilita a ocorrência de erros. Muitas vezes os plugins desenvolvidos por

Muitas vezes os plugins desenvolvidos por usuários não são bem programados e apresentam falhas.

O
O

entendimento da função de cada plugin consome grande quantidade de tempo,

principalmente de usuários iniciantes. Por exemplo: check_http

80!win2003k!do!10!30!body

Por exemplo: check_http 80!win2003k!do!10!30!body Algumas verificações são executadas no servidor Nagios,

Algumas verificações são executadas no servidor Nagios, (a maioria é executada através dos addons NRPE e NSClient++) o que resulta em uma carga muito maior sobre o equipamento, principalmente quando milhares de hosts e serviços são monitorados.

2.3.1 Principais Vantagens e Desvantagens do Cacti

O Cacti é considerado a principal ferramenta utilizada como interface da RRDTool. Praticamente tudo é configurado através do uso da sofisticada interface web e o resultado é de alta qualidade. As principais vantagens do Cacti são:

é de alta qualidade. As principais vantagens do Cacti são: Interface web simples e bonita. Possui

Interface web simples e bonita. Possui o recurso de zoom através de Java Script.

Possui o recurso de zoom através de Java Script . Sistema eficiente de permissões, o que

Sistema eficiente de permissões, o que facilita a segurança e eficiência do sistema.

o que facilita a segurança e eficiência do sistema. Sistemas de trees (árvores), através do qual

Sistemas de trees (árvores), através do qual o usuário obtém muitos tipos diferentes de visões em detalhes, as quais são customizáveis.

As principais desvantagens identificadas na ferramenta são:

O intervalo padrão das verificações é igual a 5 minutos, e quando modificado pode apresentar

O intervalo padrão das verificações é igual a 5 minutos, e quando modificado pode apresentar dados incoerentes. São necessárias três verificações para que o administrador possa começar a visualizar os dados. A interface web é confusa no que se refere a algumas funções.

web é confusa no que se refere a algumas funções. Não realiza o resumo de múltiplos
web é confusa no que se refere a algumas funções. Não realiza o resumo de múltiplos
web é confusa no que se refere a algumas funções. Não realiza o resumo de múltiplos

Não realiza o resumo de múltiplos recursos, o que torna confuso o acompanhamento de clusters.

3 IMPLEMENTAÇÃO DO PROJETO

3.1 Introdução

Neste projeto discute-se a implementação de um protótipo de um sistema de monitoramento com Nagios e Cacti, através de um processo de virtualização com a ferramenta Oracle Virtual Box. Os principais objetivos deste protótipo são:

Testar a integração das ferramentas Nagios e Cacti no que diz respeito a desempenho e qualidade e confiança das informações obtidas.Virtual Box. Os principais objetivos deste protótipo são: Documentar os processos e testes. A estrutura de

Documentar os processos e testes.e qualidade e confiança das informações obtidas. A estrutura de máquinas virtuais foi criada especificamente

A estrutura de máquinas virtuais foi criada especificamente para este projeto, portanto não havia sistema de monitoramento ou rede anterior. De acordo com a experiência do autor com sistemas de monitoramento diversos (Orion Solar Winds, Sysaid 7.0, Cisco LMS etc) e pesquisa realizada no site nagios.org para o levantamento das funcionalidades do sistema, verificou-se a possibilidade de utilização do protótipo em estudo como solução dos seguintes problemas:

Disponibilidade de acesso à Internet.protótipo em estudo como solução dos seguintes problemas: Controle de espaço em Discos rígidos. Monitoramento do

Controle de espaço em Discos rígidos.seguintes problemas: Disponibilidade de acesso à Internet. Monitoramento do roteador que oferece acesso à Internet.

Monitoramento do roteador que oferece acesso à Internet.acesso à Internet. Controle de espaço em Discos rígidos. Controle das estações de trabalho. Controle do

Controle das estações de trabalho.Monitoramento do roteador que oferece acesso à Internet. Controle do uso de memória RAM. Monitoramento do

Controle do uso de memória RAM.acesso à Internet. Controle das estações de trabalho. Monitoramento do processo Explorer.exe para máquinas

Monitoramento do processo Explorer.exe para máquinas Windows.das estações de trabalho. Controle do uso de memória RAM. Monitoramento do processo W3SVC na máquina

Monitoramento do processo W3SVC na máquina com o sistema Windows Serverdo processo Explorer.exe para máquinas Windows. 2003. 3.2 Características técnicas da rede de testes Para

2003.

3.2 Características técnicas da rede de testes

Para a rede de testes foi montada uma estrutura de máquinas virtuais utilizando a ferramenta VirtualBox. O servidor Nagios/Cacti foi instalado e configurado em uma destas Vm's (Virtual Machines) através do sistema operacional Linux Ubuntu. Através do processo de virtualização foi possível a simulação de uma rede composta por sete computadores executando diferentes sistemas operacionais. Na seção 4 deste trabalho os testes de monitoramento e desempenho são feitos para simulação de tráfego na rede.

O esquema de endereçamento para as redes de testes foi definido, a saber:

Endereço de rede: 192.168.1.0

Máscara de Rede: 255.255.255.0

Gateway Padrão: 192.168.1.1

Endereço de Broadcast: 192.168.1.255

A rede 192.168.1.0 suporta até duzentos e cinquenta e três hosts, mais que suficiente para

o número de equipamentos utilizados no projeto.

O protocolo SNMP V2 foi habilitado nas máquinas virtuais para que as ferramentas Nagios e

Cacti pudessem obter todos os dados necessários para o monitoramento efetivo. A

comunidade criada para o SNMP é do tipo RO (Read-Only) e foi nomeada public.

3.2.1 Topologia física da rede de testes

nomeada public. 3.2.1 Topologia física da rede de testes Figura 12 – Topologia Física da rede

Figura 12 Topologia Física da rede FONTE: O autor

3.2.2 Hardware utilizado

A infraestrutura de monitoramento criada para esta pesquisa utiliza um sistema de virtualização no qual vários sistemas foram instalados para implementação e testes em uma rede Ethernet. As especificações de Hardware e Software utilizados são apresentadas na sequência:

Servidor de Virtualização:

apresentadas na sequência: Servidor de Virtualização: Laptop Dell modelo XPS16 Sistema Operacional: Windows 7 Home

Laptop Dell modelo XPS16

Sistema Operacional: Windows 7 Home Edition.Servidor de Virtualização: Laptop Dell modelo XPS16 Processador: Intel I7 2.26GHZ. Memória Ram: 6Gb Ddr3

modelo XPS16 Sistema Operacional: Windows 7 Home Edition. Processador: Intel I7 2.26GHZ. Memória Ram: 6Gb Ddr3

Processador: Intel I7 2.26GHZ.

Windows 7 Home Edition. Processador: Intel I7 2.26GHZ. Memória Ram: 6Gb Ddr3 1033Ghz. Disco Rígido: 500Gb.

Memória Ram: 6Gb Ddr3 1033Ghz.

Intel I7 2.26GHZ. Memória Ram: 6Gb Ddr3 1033Ghz. Disco Rígido: 500Gb. Software para virtualização: Oracle

Disco Rígido: 500Gb.

Memória Ram: 6Gb Ddr3 1033Ghz. Disco Rígido: 500Gb. Software para virtualização: Oracle Virtual Box 3.2.4.

Software para virtualização: Oracle Virtual Box 3.2.4.

Máquina física 1:

Oracle Virtual Box 3.2.4. Máquina física 1: Computador do tipo Desktop Sistema Operacional: Windows XP

Computador do tipo Desktop

Box 3.2.4. Máquina física 1: Computador do tipo Desktop Sistema Operacional: Windows XP Processador: Semprom 1.6

Sistema Operacional: Windows XP

Computador do tipo Desktop Sistema Operacional: Windows XP Processador: Semprom 1.6 Ghz Memória Ram: 1Gb Ddr

Processador: Semprom 1.6 Ghz

Sistema Operacional: Windows XP Processador: Semprom 1.6 Ghz Memória Ram: 1Gb Ddr 400Mhz Disco Rígido: 40Gb

Memória Ram: 1Gb Ddr 400Mhz

XP Processador: Semprom 1.6 Ghz Memória Ram: 1Gb Ddr 400Mhz Disco Rígido: 40Gb Máquina fisica 2:

Disco Rígido: 40Gb

Máquina fisica 2:

Ram: 1Gb Ddr 400Mhz Disco Rígido: 40Gb Máquina fisica 2: Computador do tipo Desktop Sistema Operacional:

Computador do tipo Desktop

Rígido: 40Gb Máquina fisica 2: Computador do tipo Desktop Sistema Operacional: Windows XP Processador: Intel Dual

Sistema Operacional: Windows XP

Computador do tipo Desktop Sistema Operacional: Windows XP Processador: Intel Dual Core 3.2Ghz Memória Ram: 1Gb

Processador: Intel Dual Core 3.2Ghz

Operacional: Windows XP Processador: Intel Dual Core 3.2Ghz Memória Ram: 1Gb Ddr2 667Mhz Disco Rígido: 80Gb

Memória Ram: 1Gb Ddr2 667Mhz

Intel Dual Core 3.2Ghz Memória Ram: 1Gb Ddr2 667Mhz Disco Rígido: 80Gb Máquinas Virtuais: 1 servidor

Disco Rígido: 80Gb

Máquinas Virtuais:

1
1

servidor Linux executando a distribuição Ubuntu 9.04 para o servidor Nagios e Cacti.

1
1

cliente executando o Windows XP SP2 para testes de monitoramento.

1
1

cliente Linux executando a distribuição Fedora para testes de monitoramento.

1 cliente executando o Windows Server 2003 para testes de monitoramento 3.2.3 Topologia lógica da

1 cliente executando o Windows Server 2003 para testes de monitoramento

3.2.3 Topologia lógica da rede de testes

de monitoramento 3.2.3 Topologia lógica da rede de testes Figura 13 – Topologia Lógica da rede

Figura 13 Topologia Lógica da rede FONTE: O autor

3.3 Análise dos problemas e respectivos recursos utilizados como solução

Na seção 2.1 deste trabalho explica-se alguns dos princípios básicos da ferramenta Nagios.

Nesta etapa discute-se a aplicação prática em um ambiente de simulação onde é feita a

aplicação do Nagios. A seção 3.4.6 esclarece como o Cacti participa da etapa final de

exibição dos dados coletados na rede de testes.

3.3.1 Problemas e recursos utilizados

Como citado anteriormente, o Nagios baseia-se em um sistema que verifica o estado de um

Host ou serviço. Portanto, após um estudo detalhado sobre suas funções, concluiu-se que

para este estudo as funções a seguir deveriam ser testadas: Monitoramento de Hosts e

Serviços e Disponibilidade do Link de acesso Internet. Em seguida, os dados coletados

foram exportados para um arquivo .rrd que foi utilizado para alimentar a ferramenta Cacti

para que gráficos pudessem ser gerados com eficiência.

3.3.2 Monitoramento de hosts e serviços através do Nagios

Com relação ao monitoramento de hosts, no Nagios existem dois casos: Hosts Windows e

hosts Linux. A maneira na qual o monitoramento é feito muda em alguns aspectos:

na qual o monitoramento é feito muda em alguns aspectos: Hosts Linux: É necessária a instalação

Hosts Linux: É necessária a instalação do addon NRPE para que o Nagios possa

executar plugins em hosts remotos. Caso o NRPE não seja instalado, o Nagios não

tem acesso a recursos internos do sistema como uso de processador, espaço em

disco, uso de memória RAM etc. Outra alternativa, seria o uso de SSH (Secure Shell)

para realizar conexões remotas e, em seguida, obter informações através de

comandos nativos do sistema, enviando as informações ao servidor Nagios, porém

este processo é muito intenso, o que o torna inviável, caso o número de hosts e

serviços seja grande. A figura 10 demonstra a lógica de funcionamento do NRPE.

A figura 10 demonstra a lógica de funcionamento do NRPE. Figura 14 - Representação do funcionamento

Figura 14 - Representação do funcionamento do NRPE FONTE: http://www.nagios.org

O servidor Nagios executa o plugin check_nrpe, que solicita os dados ao addon NRPE

instalado no host remoto. O addon, por sua vez, obtém dados sobre uso de disco,

processador etc e os envia para o servidor. O processo de instalação do NRPE não é

tratado neste trabalho, porém pode ser encontrado no site oficial do Nagios.

porém pode ser encontrado no site oficial do Nagios. Hosts Windows: Neste caso, a utilização do

Hosts Windows: Neste caso, a utilização do agente NSClient++ é necessária. Este

pequeno software envia as informações ao servidor Nagios que as processa através do

plugin check_nt. Existem outras alternativas, porém a documentação oferecida não é

clara. A figura 13 representa o funcionamento do agente.

Figura 15 - Representação do funcionamento do NsClient++ FONTE: http://www.nagios.org O plugin check_nt consulta o

Figura 15 - Representação do funcionamento do NsClient++ FONTE: http://www.nagios.org

O plugin check_nt consulta o agente NSClient++ em busca de informações sobre uso de

Cpu, memória Ram, espaço em disco, processos em execução e serviços. O processo de

instalação do NSClient++ não é tratado neste trabalho, porém pode ser encontrado no site

oficial do Nagios.

porém pode ser encontrado no site oficial do Nagios. Link de acesso à Internet - Este

Link de acesso à Internet - Este recurso não requer a utilização de addons ou

agentes no equipamento. O plugin check_snmp pode utilizar o protocolo ICMP

(Internet Control Message Protocol) para testar a conectividade entre os dispositivos

finais e o roteador utilizado na rede de testes, assim como um endereço externo para

a comprovação de acesso à Internet. Caso haja necessidade de informações sobre

status de porta e estatísticas de tráfego como a perda de pacotes, por exemplo, o

equipamento deve suportar a função SNMP, que deve ser ativada e configurada. A

lógica de funcionamento do check_snmp pode ser observada na figura 14.

funcionamento do check_snmp pode ser observada na figura 14. Figura 16 - Representação do funcionamento do

Figura 16 - Representação do funcionamento do plugin check_snmp FONTE: http://www.nagios.org

Observa-se que o check_snmp consulta informações da base de dados SNMP

contida no Roteador ou Switch.

3.4

Recursos monitorados e sistema de alertas para o Nagios

Nesta seção são definidos os serviços monitorados nos hosts Windows e Linux e as respectivas thresholds, ou seja, quando os alerta devem ser disparados. O processo de instalação do Nagios é bem simples, porém requer algum conhecimento de sistemas Unix/Linux, visto que a ferramenta é instalada através do terminal e requer a execução de alguns comandos. O processo está disponível em detalhes no site da ferramenta, portanto não é tratado neste trabalho. A configuração correta dos alerta é importante para que o administrador tenha uma visão real do estado da rede e dos recursos. A implementação foi feita exatamente da maneira que se segue e é comprovada através de testes e simulações nas próximas seções deste trabalho.

3.4.1 Monitoramento de Serviços em Hosts Windows

O Nagios utiliza um sistema de arquivos .cfg para armazenar as configurações do sistema, no caso dos serviços monitorados nos hosts Windows, o arquivo utilizado é o windows.cfg, que fica localizado no diretório usr/local/nagios/etc/objects/windows.cfg. Nestes arquivos são adicionados os hosts e seus respectivos serviços. A seguir observa-se um exemplo de um host declarado neste arquivo.

define host{

use

windows-server

host_name

winserver

alias

My Windows Server

address

192.168.1.2

}

Este bloco de código adiciona um host do tipo Windows ao sistema. As informações sobre cada campo do código são expostas a seguir:

sobre cada campo do código são expostas a seguir: define host - informa ao Nagios que

define host - informa ao Nagios que o código a seguir, delimitado por chaves ( {} ), faz parte da declaração de um novo host Windows no sistema. use - faz com que o novo host herde propriedades de um modelo previamente criado.

de um novo host Windows no sistema. use - faz com que o novo host herde
host_name - define o nome do novo host. alias - pode-se definir um aliás, ou

host_name - define o nome do novo host.

alias - pode-se definir um aliás, ou seja, uma palavra que substitui o nome do host. - pode-se definir um aliás, ou seja, uma palavra que substitui o nome do host.

aliás, ou seja, uma palavra que substitui o nome do host. address - endereço Ip do

address - endereço Ip do novo host

Neste exemplo, a máquina virtual que executa o sistema operacional Windows Server 2003 foi adicionada ao Nagios e será utilizada para mostrar como são configurados os serviços.Para detalhes físicos e lógicos deste servidor consultar as figuras 11 e 12. A definição de cada serviço monitorado neste host é apresentada na sequência:

serviço monitorado neste host é apresentada na sequência: Espaço em discos rígidos: Espaço em disco é

Espaço em discos rígidos: Espaço em disco é um problema crescente nos servidores, visto que o volume de arquivos grandes gerados por muitas aplicações aumenta a cada dia. Um outro problema é o uso indevido para armazenamento de músicas e vídeos, além dos arquivos duplicados. Monitorar o uso dos discos com o Nagios facilita o controle do administrador sobre servidores e até estações de usuários. A definição de cada serviço também é realizada no arquivo windows.cfg citado. A seguir, explica-se como é configurado o monitoramento para este caso.

define service{ use host_name

service_description

check_command

}

generic-service winserver C:\ Drive Space check_nt!USEDDISKSPACE!-l c -w 80 -c 90

O código apresentado faz com que o Nagios emita um alerta e passe o recurso para o status Warning, caso o uso do disco rígido exceda oitenta por cento da capacidade total. Caso o volume de dados ultrapasse noventa por cento da capacidade do disco, o Nagios passa o status do recurso para o estado Critical e emite um alerta de nível mais alto. Seguem as definições de cada campo:

de nível mais alto. Seguem as definições de cada campo: define service - define um novo

define service - define um novo serviço.

use - possibilita a utilização de um modelo criado anteriormente.de cada campo: define service - define um novo serviço. host_name - nome do host no

a utilização de um modelo criado anteriormente. host_name - nome do host no qual o recurso

host_name - nome do host no qual o recurso é monitorado.

host_name - nome do host no qual o recurso é monitorado. service_description - oferece a opção

service_description - oferece a opção de criar uma breve descrição do recurso ou serviço. check_comand - executa o plugin + parâmetros.

oferece a opção de criar uma breve descrição do recurso ou serviço. check_comand - executa o

Através deste código, o uso de disco na máquina virtual em execução do Windows Server 2003 é ativado.

Uso de processador: Os processadores são componentes críticos em servidores e estações de trabalho. O uso excessivo : Os processadores são componentes críticos em servidores e estações de trabalho. O uso excessivo da capacidade de processamento pode indicar que o equipamento não comporta a necessidade do usuário ou empresa, ou que está sendo mal utilizado, afetado por códigos maliciosos etc. O código a seguir foi adicionado ao arquivo windows.cfg para que o processador do host "cliente virtual 1" (vide figura 11) seja monitorado.

define service{ use host_name service_description check_command

}

generic-service winserver CPU Load check_nt!CPULOAD!-l 5,80,90

Esse código permite o monitoramento da CPU de forma que o uso da capacidade de processamento acima de oitenta por cento, por cinco minutos consecutivos, faz que o Nagios mude seu estado para Warning. Caso este valor seja maior que noventa por cento, durante cinco minutos, o estado passará para Critical.

durante cinco minutos, o estado passará para Critical. define service - define um novo serviço. use

define service - define um novo serviço.

use - possibilita a utilização de um modelo criado anteriormente.para Critical. define service - define um novo serviço. host_name - nome do host no qual

a utilização de um modelo criado anteriormente. host_name - nome do host no qual o recurso

host_name - nome do host no qual o recurso é monitorado.

host_name - nome do host no qual o recurso é monitorado. service_description - oferece a opção

service_description - oferece a opção de criar uma breve descrição do recurso ou serviço.

de criar uma breve descrição do recurso ou serviço. check_comand - executa o plugin + parâmetros.

check_comand - executa o plugin + parâmetros.

Uso de memória Ram: códigos maliciosos e excesso de carga em um servidor ou estação de trabalho podem : códigos maliciosos e excesso de carga em um servidor ou estação de trabalho podem causar o esgotamento do espaço na memória Ram. O resultado é a perda de desempenho e travamentos do sistema. O monitoramento deste recurso é crítico para que se evitem problemas com indisponibilidade de servidores e segurança, uma vez que ataques do tipo buffer overflow podem explorar esta vulnerabilidade. A configuração deste recurso no arquivo windows.cfg é apresentada:

define service{ use host_name

service_description

check_command

}

generic-service winserver Memory Usage check_nt!MEMUSE!-w 80 -c 90

Esse código faz com que o Nagios altere o status do recurso memória Ram para Warning, caso o uso ultrapasse oitenta por cento, e Critical, caso este exceda os noventa por cento. Definição dos campos:

este exceda os noventa por cento. Definição dos campos: define service - define um novo serviço.

define service - define um novo serviço.

use - possibilita a utilização de um modelo criado anteriormente.dos campos: define service - define um novo serviço. host_name - nome do host no qual

a utilização de um modelo criado anteriormente. host_name - nome do host no qual o recurso

host_name - nome do host no qual o recurso é monitorado.

host_name - nome do host no qual o recurso é monitorado. service_description - oferece a opção

service_description - oferece a opção de criar uma breve descrição do recurso ou serviço. check_comand - executa o plugin + parâmetros.

ou serviço. check_comand - executa o plugin + parâmetros. Processos em execução: Alguns processos são extremamente
ou serviço. check_comand - executa o plugin + parâmetros. Processos em execução: Alguns processos são extremamente

Processos em execução: Alguns processos são extremamente importantes para a execução de qualquer sistema operacional. Em sistemas Windows, por exemplo, o processo Explorer.exe é chamado de processo pai, do qual muitos outros dependem. Este processo deve, sem dúvida, ser monitorado em servidores que executam versões do Windows. A configuração do monitoramento de processos é simples:

define service{

use

generic-service

host_name

winserver

service_description

Explorer

check_command

}

check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe

Quando configurado desta forma, o Nagios muda o status do processo para Critical, caso este não esteja executando. O exemplo a seguir demonstra o monitoramento do processo W3SVC no Windows Server, que corresponde ao serviço WWW proporcionado pelo IIS da Microsoft. É um processo crítico para servidores web.

define service{

use

generic-service

host_name

winserver

service_description

W3SVC

check_command

check_nt!SERVICESTATE!-d SHOWALL -l W3SVC

}

3.4.2 Monitoramento de Serviços em Hosts Linux

Após o processo de instalação do NRPE, o primeiro passo para se configurar o monitoramento nos hosts Linux é a criação de uma definição para o plugin NRPE, em um dos arquivos de configuração de objetos do servidor Nagios. O seguinte arquivo deve ser aberto e editado através de um editor como vi ou gedit:

/usr/local/nagios/etc/commands.cfg

O seguinte código deve ser adicionado:

define command{ command_name check_nrpe

command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

O segundo passo é a definição de hosts e serviços. O arquivo localhost.cfg contém um modelo de definições de host que podem ser utilizados, neste caso, foi adicionado um novo modelo chamado linux-box ao arquivo localhost.cfg (um novo arquivo poderia ser criado) como se segue:

define host{ name linux-box ; Name of this template use generic-host ; Inherit default values check_period 24x7 check_interval 5 retry_interval 1 max_check_attempts 10 notification_period 24x7

notification_interval 30 contact_groups admins

}

A

descrição dos campos para esta definição é apresentada:

descrição dos campos para esta definição é apresentada: define host - define um novo modelo de

define host - define um novo modelo de hosts.

name linux-box - nome deste modelo.apresentada: define host - define um novo modelo de hosts. use generic-host - herda os valores

um novo modelo de hosts. name linux-box - nome deste modelo. use generic-host - herda os

use generic-host - herda os valores do modelo básico.

use generic-host - herda os valores do modelo básico. check_interval - define o intervalo de monitoramento.

check_interval - define o intervalo de monitoramento.

check_interval - define o intervalo de monitoramento. retry_interval - define o intervalo das tentativas, caso o

retry_interval - define o intervalo das tentativas, caso o host ou serviço esteja indisponível. max_check_attempts - define o número máximo de tentativas antes que o host ou serviço tenha seu estado alterado. notification_period - define o período no qual notificações são enviadas.

- define o período no qual notificações são enviadas. notification_interval - define o intervalo no qual
- define o período no qual notificações são enviadas. notification_interval - define o intervalo no qual
- define o período no qual notificações são enviadas. notification_interval - define o intervalo no qual

notification_interval - define o intervalo no qual as notificações são enviadas.

define o intervalo no qual as notificações são enviadas. contact_groups - define os contatos que recebem

contact_groups - define os contatos que recebem as notificações.

Após este primeiro passo, os hosts devem ser criados, assim como os serviços monitorados em cada um deles. O processo é idêntico ao anterior, no qual se explica como é configurado

o monitoramento em hosts Windows (vide seção 3.4.1), portanto, não será abordado em detalhes.

3.4.3 Lista de equipamentos, serviços e alertas do Nagios

As tabelas a seguir indicam como foram feitas as configurações de alerta para cada host da rede de testes. Para maiores detalhes sobre cada equipamento vide seção 3.2.2 e 3.2.3.

A Tabela 1 demonstra como serão configurados os alarmes do Nagios para os serviços

executados no host Servidor para Virtualização:

Tabela 1 - Serviços monitorados no host Servidor para Virtualização

Nome do

Perído de

Perído de

Janela ou

Estado Ok

Estado

Estado

Serviço

monitora

notificações

tempo de

Warning

Critical

mento

medição

Sistema

           

Operacional:

Windows 7

Status

24x7

24x7

 

-

Resposta ICMP = Ok

Sem resposta ICMP por mais de 3 minutos

Sem resposta ICMP por mais de 5 minutos

Controle de

24x7

24x7

 

-

>80%

>90%

<90%

Espaço em

 

Disco

Uso do

24x7

24x7

3

minutos

>80%

>90%

<90%

processador

 

Uso da

24x7

24x7

3

minutos

>80%

>90%

<90%

memória RAM

 

Processos em

24x7

24x7

 

-

Processo está

Processou parou por até 3 minutos

Processo parou por mais de 3 minutos

Execução

 

em execução

(Explorer.exe)

Fonte: Autor

Pode-ser observar na Tabela 1 que os perídos de notificações e monitoramento são iguais a 24x7, ou seja, vinte e quatro horas por dia e sete dias por semana. A mesma configuração para este campo é utilizada para todos os hosts da rede. O estado do host será alterado para Warning caso não haja resposta ICMP por mais de três minutos e Critical caso o tempo seja maior que cinco minutos. O serviços de controle de espaço em disco, uso do processadoe e uso da memória RAM serão alterados para Warning caso os respectivos valores de controle sejam maiores que oitenta por cento e menores que noventa por cento, o estado será considerado Critical caso os valores sejam maiores que noventa por cento.

A Tabela 2 demonstra como serão configurados os alarmes do Nagios para os serviços executados no host Cliente 1:

Tabela 2 - Serviços monitorados no host Cliente 1

Nome do

Perído de

Perído de

Janela ou

Estado Ok

Estado

Estado

Serviço

monitora

notificações

tempo de

Warning

Critical

mento

medição

Sistema

           

Operacional:

Windows XP

Status

24x7

24x7

 

- Resposta ICMP = Ok

Sem resposta ICMP por mais de 3 minutos

Sem resposta ICMP por mais de 5 minutos

Controle de

24x7

24x7

 

- >80%

>90%

<90%

Espaço em

Disco

Uso do

24x7

24x7

3

minutos

>80%

>90%

<90%

processador

 

Uso da

24x7

24x7

3

minutos

>80%

>90%

<90%

memória RAM

 

Processo em

24x7

24x7

-

Processo está

Processou

Processo parou por

Execução

em execução

parou por até

(Explorer.exe)

3

minutos

mais de 3 minutos

Fonte: Autor

De acordo com a tabela 2, o estado do host será alterado para Warning caso não haja resposta ICMP por mais de três minutos e Critical caso o tempo seja maior que cinco minutos. O serviços de controle de espaço em disco, uso do processadoe e uso da memória RAM serão alterados para Warning caso os respectivos valores de controle sejam maiores que oitenta por cento e menores que noventa por cento, o estado será considerado Critical caso os valores sejam maiores que noventa por cento.

A Tabela 3 demonstra como serão configurados os alarmes do Nagios para os serviços executados no host Cliente 2:

Tabela 3 - Serviços monitorados no host Cliente 2

Nome do

Perído de

Perído de

Janela ou

Estado Ok

 

Estado

Estado

Serviço

monitora

notificações

tempo de

Warning

Critical

mento

medição

Sistema

           

Operacional:

Windows XP

Status

24x7

24x7

 

- Resposta ICMP = Ok

Sem resposta ICMP por mais de 3 minutos

Sem resposta ICMP por mais de 5 minutos

Controle de

24x7

24x7

 

- >80%

 

>90%

<90%

Espaço em

 

Disco

Uso do

24x7

24x7

3

minutos

>80%

 

>90%

<90%

processador

   

Uso da

24x7

24x7

3

minutos

>80%

 

>90%

<90%

memória RAM

   

Processo em

24x7

24x7

 

-

Processo está

Processou

Processo parou por

Execução

 

em execução

parou por até

(Explorer.exe)

3

minutos

mais de 3 minutos

Fonte: Autor

De acordo com a tabela 3, o estado do host será alterado para Warning caso não haja resposta ICMP por mais de três minutos e Critical caso o tempo seja maior que cinco minutos. O serviços de controle de espaço em disco, uso do processadoe e uso da memória RAM serão alterados para Warning caso os respectivos valores de controle sejam maiores que oitenta por cento e menores que noventa por cento, o estado será considerado Critical caso os valores sejam maiores que noventa por cento.

A Tabela 4 demonstra como serão configurados os alarmes do Nagios para os serviços executados no host Cliente 2:

Tabela 4 - Serviços monitorados no Cliente Virtual 1

Nome do

Perído de

Perído de

Janela ou

Estado Ok

 

Estado

Estado

Serviço

monitora

notificações

tempo de

Warning

Critical

mento

medição

Sistema

           

Operacional:

Windows

Server 2003

Status

24x7

24x7

 

- Resposta ICMP = Ok

Sem resposta ICMP por mais de 3 minutos

Sem resposta ICMP por mais de 5 minutos

Controle de

24x7

24x7

 

- >80%

 

>90%

<90%

Espaço em

 

Disco

Uso do

24x7

24x7

3

minutos

>80%

 

>90%

<90%

processador

   

Uso da

24x7

24x7

3

minutos

>80%

 

>90%

<90%

memória RAM

   

Processo em

24x7

24x7

 

- Processo está

Processou parou por até

Processo parou por

Execução

em execução

(Explorer.exe)

3

minutos

mais de 3 minutos

Processo em

24x7

24x7

 

- Processo está

Processou parou por até

Processo parou por

Execução

em execução

(W3svc.exe)

3

minutos

mais de 3 minutos

Fonte: Autor

De acordo com a tabela 3, o estado do host será alterado para Warning caso não haja resposta ICMP por mais de três minutos e Critical caso o tempo seja maior que cinco minutos. O serviços de controle de espaço em disco, uso do processadoe e uso da memória RAM serão alterados para Warning caso os respectivos valores de controle sejam maiores que oitenta por cento e menores que noventa por cento, o estado será considerado Critical caso os valores sejam maiores que noventa por cento. Este host executa o sistema Opercional Windows Server 2003, portanto o processo W3svc.exe que é muito importante para sua execução deve ser monitorado

A Tabela 5 demonstra como serão configurados os alarmes do Nagios para os serviços executados no host Cliente 2:

Tabela 5 - Serviços monitorados no Cliente Virtual 2

Nome do

Perído de

Perído de

Janela ou

Estado Ok

Estado

Estado

Serviço

monitora

notificações

tempo de

Warning

Critical

mento

medição

Sistema

           

Operacional:

Linux Fedora

Status

24x7

24x7

 

- Resposta ICMP = Ok

Sem resposta ICMP por mais de 3 minutos

Sem resposta ICMP por mais de 5 minutos

Controle de

24x7

24x7

 

- >80%

>90%

<90%

Espaço em

Disco

Uso do

24x7

24x7

3

minutos

>80%

>90%

<90%

processador

 

Uso da

24x7

24x7

3

minutos

>80%

>90%

<90%

memória RAM

 

Número de

24x7

24x7

 

-

Não há

Processo parou por até três minutos

Processo parou por mais de 3 minutos

Processos em

 

alteração

Execução

Fonte: Autor

De acordo com a tabela 5, o estado do host será alterado para Warning caso não haja resposta ICMP por mais de três minutos e Critical caso o tempo seja maior que cinco minutos. O serviços de controle de espaço em disco, uso do processadoe e uso da memória RAM serão alterados para Warning caso os respectivos valores de controle sejam maiores que oitenta por cento e menores que noventa por cento, o estado será considerado Critical caso os valores sejam maiores que noventa por cento.

3.4.4 Criando arquivo RRD para exportação

Após a configuração do Nagios, o próximo passo é a exportação dos dados obtidos para um arquivo que possa ser lido pelo Cacti, ou seja, um arquivo do tipo RRD. Há várias opções

disponíveis do site oficial do Nagios e para este trabalho foi escolhido o addon nagios2cacti. Este script cria um arquivo que poder ser lido pelo Cacti, a grande vantagem deste sistema

é o mínimo uso da banda de rede, visto que a ferramenta Cacti monitora através do

protocolo SNMP. Uma vez que os dados foram colhidos pelo Nagios, não faz sentido uma

outra ferramenta executar o mesmo processo, portanto os dados são apenas transferidos e traduzidos para o formato RRD.

A figura 17 exemplifica o processo:

Figura 17 - Representação do funcionamento nagios2cacti FONTE: http://n2rrd.diglinks.com/cgi-bin/trac.fcgi De acordo

Figura 17 - Representação do funcionamento nagios2cacti FONTE: http://n2rrd.diglinks.com/cgi-bin/trac.fcgi

De acordo com a figura 15, dados de monitoramento são extraídos dos equipamentos da

rede através dos plugins do Nagios que utilizam o nagios2cacti ou outra ferramenta do tipo

N2RRD para abastecer o banco de dados RRD, que, por sua vez, é utilizado pelo Cacti para

a criação dos gráficos.

A instalação do script nagios2cacti pode ser seguida passo a passo no site oficial da

ferramenta (http://code.google.com/p/nagios2cacti/) e não será abordado. Porém algumas

considerações devem ser feitas a respeito da configuração do script:

São duas as formas oferecidas para a comunicação entre o Nagios e o nagios2cacti:

Pipe: Este método utiliza menos recursos. O Nagios passa os dados através de umpara a comunicação entre o Nagios e o nagios2cacti: túnel e o serviço perd2rrd os recebe

túnel e o serviço perd2rrd os recebe em tempo real. Caso o serviço perf2rrd trave, os

dados naquele período serão perdidos.

UDP: Este método é o mais seguro, visto que os dados do Nagios são armazenadosperf2rrd trave, os dados naquele período serão perdidos. em um arquivo. Este é excluído, caso a

em um arquivo. Este é excluído, caso a transferência seja comprovada, caso

contrário, os dados são mantidos até que a transferência seja efetuada.

3.4.5 Configurando o nagios2cacti

A configuração do nagios2cacti, a seguir, considera que os valores padrão de instalação

foram mantidos. O primeiro arquivo que deve ser configurado é o n2rrd.conf que fica

localizado no diretório /etc/n2rrd/n2rrd.conf.

As variáveis que devem ser obrigatoriamente configuradas são:

variáveis que devem ser obrigatoriamente configuradas são: CACTI_DIR : Caminho para o diretório do Cacti.

CACTI_DIR : Caminho para o diretório do Cacti.

NAGIOS_CONF_DIR : Caminho para os arquivos de configuração do Nagiossão: CACTI_DIR : Caminho para o diretório do Cacti. /etc/nagios/ por padrão. ROTATION : Rotation mode

/etc/nagios/ por padrão.

de configuração do Nagios /etc/nagios/ por padrão. ROTATION : Rotation mode : d for diária, h

ROTATION : Rotation mode : d for diária, h para horária, n para nenhuma.

mode : d for diária, h para horária, n para nenhuma. SERVICE_PERFDATA_PIPE : Caminho para o

SERVICE_PERFDATA_PIPE : Caminho para o pipe (perf2rrd)

SERVICE_PERFDATA_PIPE : Caminho para o pipe (perf2rrd) PERFDB_USER : usuário. PERFDB_PASSWORD : senha. PERFDB_HOST

PERFDB_USER : usuário.

: Caminho para o pipe (perf2rrd) PERFDB_USER : usuário. PERFDB_PASSWORD : senha. PERFDB_HOST : nome do

PERFDB_PASSWORD : senha.

(perf2rrd) PERFDB_USER : usuário. PERFDB_PASSWORD : senha. PERFDB_HOST : nome do servidor. TEMPLATE_SEPARATOR_FIELD :

PERFDB_HOST : nome do servidor.

PERFDB_PASSWORD : senha. PERFDB_HOST : nome do servidor. TEMPLATE_SEPARATOR_FIELD : "@" por padrão,

TEMPLATE_SEPARATOR_FIELD : "@" por padrão, separador para diferenciar

nome de serviço de nome de template, exemplo: cpu_pload@CPULOAD

O diretório /etc/n2rrd/templates/rra contém os modelos necessários para monitoramento de

espaço em disco, uso do processador etc.

monitoramento de espaço em disco, uso do processador etc. Figura 18 - Modelos no formato RRD

Figura 18 - Modelos no formato RRD FONTE: O Autor

O método de comunicação utilizado nos testes deste trabalho é o Pipe, a configuração deve

ser feita no arquivo /etc/nagios/nagios.cfg, onde o seguinte código deve ser adicionado:

process_performance_data=1

service_perfdata_file=/var/log/nagios/perfdata.pipe

service_perfdata_file_template=[SERVICEPERFDATA]|$SERVICEDESC$|$HOSTNAME$|$

HOSTADDRESS$|$TIMET$|$SERVICEEXECUTIONTIME$|$SERVICELATENCY$|$SERVI

CESTATE$|$SERVICEOUTPUT$|$SERVICEPERFDATA$

service_perfdata_file_mode=w

Nesse caso, são estipulados os campos escritos no arquivo temporário perfdate.pipe. O

próximo passo é iniciar o serviço através do comando:

/usr/lib/N2Cacti/perf2rrd.pl -u -d -c /etc/n2rrd/n2rrd.conf

Este comando executa o script de configuração automática do nagios2cacti.

3.4.6 Configurando o Cacti

O processo de instalação do Cacti não apresenta dificuldade e pode ser obtido no site oficial

da ferramenta, portanto não será abordado neste trabalho. A tela inicial do Cacti é

desenvolvida em PHP e é bastante intuitiva.

do Cacti é desenvolvida em PHP e é bastante intuitiva. Figura 19 - Tela inicial do

Figura 19 - Tela inicial do Cacti FONTE: O Autor

A ferramenta apresenta duas abas principais:

Console: onde são realizadas todas as configurações.Graphs: onde são exibidos os resultados finais (gráficos). Como este trabalho não trata de estudos

Graphs: onde são exibidos os resultados finais (gráficos).Console: onde são realizadas todas as configurações. Como este trabalho não trata de estudos aprofundados nas

Como este trabalho não trata de estudos aprofundados nas funções do Cacti, apenas o processo de vinculação dos modelos com o nagios2cacti será abordado. A configuração normal do Cacti é feita através da guia Console, na qual os dispositivos devem ser adicionados através do endereço Ip, nome da comunidade SNMP etc. Neste caso um novo modelo de entrada de dados (template) deve ser criado e vinculado ao arquivo /var/log/nagios/perfdata.pipe, no qual são gravados os dados coletados pelo Nagios. A figura 20 exemplifica o processo:

coletados pelo Nagios. A figura 20 exemplifica o processo: Figura 20 - Criação do Data Input

Figura 20 - Criação do Data Input Method

FONTE: O Autor

De acordo com a figura 18, uma nova entrada de dados foi criada, em que o caminho para o Pipe é indicado no campo Input String. O nome da entrada de dados foi definido como DiskSpaceNagios, que corresponde ao controle de espaço em Disco. O próximo passo é a criação de um Data Source que pode ser vinculado a um modelo de host no futuro. A figura 19 exemplifica o processo.

Figura 21 - Criação do Data Source FONTE: O Autor Deve-se observar que no campo

Figura 21 - Criação do Data Source FONTE: O Autor

Deve-se observar que no campo Data Input Method agora aparece a opção

DiskSpaceNagios que foi criada no passo anterior.

Finalmente deve-se criar um modelo de gráfico baseado no Data Source que foi chamado

Espaço em Disco / Nagios. Segue o exemplo através da figura 20.

em Disco / Nagios. Segue o exemplo através da figura 20. Figura 22 - Criação do

Figura 22 - Criação do Modelo de Gráfico FONTE: O Autor

Para que se tenha certeza de que as configurações funcionam pode-se checar a aba

Graphics na tela inicial do Cacti, como foi feito na figura 23:

Figura 23 - Exemplo de gráfico obtidos através do nagios2cacti FONTE: O Autor A figura

Figura 23 - Exemplo de gráfico obtidos através do nagios2cacti FONTE: O Autor

A figura 21 comprova o sucesso da integração entre as duas ferramentas desde que não

haja serviço SNMP ativado em nenhum equipamento na rede de testes, os dados foram

importados do arquivo perfdata.pipe, escrito pelo addon nagios2cacti.

4 TESTES

A variedade de testes possíveis em um ambiente no qual várias ferramentas de

monitoramento de recursos computacionais são utilizadas em conjunto é vasta, portanto um

grupo de Hosts e Serviços foram definidos para que fossem testados através da ferramentas

Prime95 que foi utilizada para simular o uso dos Processadores. Estes testes foram muito

úteis para comprovar o funcionamento e a eficiência da estrutura combinada de

monitoramento Nagios / Cacti.

A sessão de testes a seguir verifica o correto funcionamento da ferramenta Nagios ao

coletar e reportar dados do host Cliente Virtual 1 (Sistema Operacional: Windows XP) à

respeito de estado (Disponível ou Indisponível), espaço em disco, uso de CPU e estado do

processo Explorer.exe.

O host Cliente Virtual 1 foi ligado ao alias WindowsXPSecurity para facilitar o processo de

identificação, portanto quando se refere ao alias nesta sessão o autor está se referindo ao

host.

4.1 Teste de Estado (Indisponível ou Disponível)

Para este teste foi verificado o estado inicial do estado host Cliente Virtual 1. Como se trata

de uma máquina virtual que foi iniciada corretamente, o administrador constatou o estado

Disponível através da tela Hosts da ferramenta Nagios. A figura 24 comprova o estado do

Host.

da ferramenta Nagios. A figura 24 comprova o estado do Host. Figura 24 - Estado Disponível
da ferramenta Nagios. A figura 24 comprova o estado do Host. Figura 24 - Estado Disponível

Figura 24 - Estado Disponível comprovado através do Nagios Fonte: O Autor

Após a comprovação do estado do Host através do Nagios, foi verificado o status do mesmo

na ferramenta Cacti, o que comprovaria a interação correta das ferramentas. A Figura 25

demonstra a tela de controle de Dispositivos do Cacti, na qual pode-se verificar o estado de

hosts monitorados pela ferramenta.

verificar o estado de hosts monitorados pela ferramenta. Figura 25 - Tela de Controle de Dispostivos

Figura 25 - Tela de Controle de Dispostivos do Cacti Fonte: O Autor

O próximo passo adotado neste teste foi o desligamento da máquina virtual correspondente

ao host em questão. Após cinco minutos (intervalo padrão das verificações), o estado do

host deveria mudar para Indisponível. O resultado foi comprovado e pode ser verificado

através da Figura 26:

foi comprovado e pode ser verificado através da Figura 26: Figura 26 - Host em estado

Figura 26 - Host em estado Indisponível acusado pelo Nagios Fonte: O Autor

Como pode ser observado na Figura 26, o Nagios alterou o estado do host para Critical,

comprovando a efetividade da configuração realizada.

A Figura 27 aponta o estado do host na ferramenta Cacti:

A Figura 27 aponta o estado do host na ferramenta Cacti: Figura 27 - Host em
A Figura 27 aponta o estado do host na ferramenta Cacti: Figura 27 - Host em

Figura 27 - Host em estado Indisponível acusado pelo Cacti Fonte: O Autor

Observa-se que o estado do host foi alterado para Down, ou seja, indisponível. Já que

ambas as ferramentas apontam apontam a mudança de estado do host, concluiu-se que

este teste foi realizado com sucesso.

4.2 Teste de uso do processador

Para a realização deste teste foi instalada a ferramenta Prime95. Este software é capaz de

manter a carga do processador próxima dos cem por cento de forma constante. Através

desta ferramenta poderá ser verificado se o Nagios irá reportar o incidente. A figura 28

exemplifica o processo.

Figura 28 - Uso do Processador em estado OK Fonte: O Autor De acordo com

Figura 28 - Uso do Processador em estado OK Fonte: O Autor

De acordo com a Figura 28, o estado do processador é exibido como OK, ou seja, de acordo

com a configuração realizada anteriormente, o uso deste recurso está abaixo dos oitenta por

cento.

A Figura 29 exibe a ferramenta Prime95 sendo utilizada para "sobrecarregar" o processador

do host Cliente Virtual 1 em uma máquina virtual.

do host Cliente Virtual 1 em uma máquina virtual. Figura 29 - Ferramenta Prime95 Fonte: O

Figura 29 - Ferramenta Prime95 Fonte: O Autor

Observa-se que o Gerenciador de Tarefas do Windows exibe a carga de cem por cento para

o Uso de CPU.

Após uma espera de aproximadamente dez minutos verificou-se o estado deste campo no

Nagios de acordo com a Figura 30:

Figura 30 - Nagios informando CpuLoad Critical Fonte: O Autor Observou-se que o estado do

Figura 30 - Nagios informando CpuLoad Critical Fonte: O Autor

Observou-se que o estado do campo CPULoad foi alterado para Critical com sucesso, o que

comprova a efetividade da ferramenta Prime95 assim como do Nagios em reportar o

problema. Neste caso, o teste é muito similar ao feito anteriormente, portanto não será

documentado no Cacti, assim como o teste de consumo de espaço em disco.

4.3 Teste de Uso de Espaço em Disco

O host Cliente Virtual 1 é uma máquina virtual criada originalmente com um disco de cinco

gigabytes de espaço físico. Após a instalação do Windows XP e alguns aplicativos básicos,

o espaço livre ficou entre quatrocentos e quinhentos megabytes, ou seja, acima do valor de

alerta. Portanto verificou-se a mudança de estado na aba Services do Nagios de acordo

com a Figura 31:

estado na aba Services do Nagios de acordo com a Figura 31: Figura 31 - Uso

Figura 31 - Uso de Disco em estado Critical Fonte: O Autor

Como pode ser observado, o estado Critical foi atribuído ao campo C:\ Drive Space

confirmando o sucesso do teste de uso de espaço em disco.

4.4 Teste de Execução do Processo Explorer.exe

O processo Explorer.exe é primordial para o correto funcionamento de um sistema que

executa o sistema operacional Windows. Para este teste, o host Cliente Virtual 1 foi

reiniciado, porém não foi realizado o logon de maneira que o Explorer.exe não foi iniciado. A

figura 32 demonstra o processo realizado:

foi iniciado. A figura 32 demonstra o processo realizado: Figura 32 - Modo de login do

Figura 32 - Modo de login do Windows XP aguardando alerta Fonte: O Autor

Após um tempo de espera de aproximadamente sete minutos verificou-se o estado do

recurso na tela do Nagios de acordo com a figura 33:

do recurso na tela do Nagios de acordo com a figura 33: Figura 33 - Explorer.exe

Figura 33 - Explorer.exe em estado critico Fonte: O Autor

Conforme o esperado, o estado do processo Explorer.exe foi alterado para Critical,

comprovando o sucesso do teste.

4.5 Teste de Criação dos Gráficos no Cacti

Até o momento apenas a funcionalidade do Nagios foi testada e comprovada ao monitorar

hosts e serviços baseados no sistema Windows. Neste teste, o servidor do Cacti foi

adicionado ao Nagios para que seja monitorado e para que as informações sejam

representadas em forma de gráfico pelo próprio Cacti. Não foi feita a configuração do

protocolo SNMP neste host, portanto não é possível a criação de gráficos sem que o Cacti

receba estes dados do Nagios que por sua vez obteve dados a partir de seu agente NRPE

instalado no host Servidor Nagios/Cacti. Após alguns minutos de espera a tela de exibição

de gráficos do Cacti foi verificada. O resultado pode ser observado na figura 34:

foi verificada. O resultado pode ser observado na figura 34: Figura 34 - Gráficos exibidos no

Figura 34 - Gráficos exibidos no Cacti Fonte: O Autor

Pode-se observar que os gráficos estão sendo criados e mantidos através dos dados

obtidos do Nagios através do script nagios2cacti, o que comprova a funcionalidade principal

deste trabalho que é a integração das duas ferramentas.

CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS

O objetivo deste trabalho foi oferecer uma solução eficiente de monitoramento de recursos computacionais, a baixo custo, através das ferramentas Nagios e Cacti, que pudesse facilitar o trabalho do administrador de redes.

Primeiramente, foi necessário um estudo aprofundado a respeito de ambas as ferramentas, seus recursos, tipos de dados, funcionamento, vantagens, desvantagens e comportamento em ambientes variados.

Após extensa pesquisa bibliográfica e prática, foi verificada a possibilidade de integração das ferramentas para que o administrador tivesse acesso a dados consistentes, o que pode ser difícil de alcançar mesmo com o uso de ferramentas proprietárias, caso estas não sejam compatíveis.

Em seguida verificou-se a existência de um addon que faria a exportação de dados obtidos com o Nagios para um formato acessível pelo Cacti. Também notou-se a falta de documentação a respeito, o que tornou este trabalho um desafio aos conhecimentos do autor em relação ao funcionamento de sistemas operacionais Linux.

Finalmente, a implementação deste protótipo foi realizada com sucesso e apesar do tamanho reduzido do ambiente de testes foi constatado a eficiência total nos testes realizados até o momento.

Porém, apesar do sucesso do projeto deve-se mencionar o grau de dificuldade encontrado na configuração de scripts e entendimento das funções dos sistemas operacionais utilizados, acredita-se que este fator pode ser crítico em muitas empresas, visto que se faz necessária uma equipe de TI com conhecimentos em sistemas Linux, além de muita pesquisa.

Trabalhos Futuros

Como trabalhos futuros pode-se apontar:

Criação de um pacote de instalação automatizado e intuitivo para o Nagios e o Cacti, de maneira que a integração das ferramentas torne-se próxima do nível transparente ao usuário final, ou seja, um front-end para o processo de instalação e configuração básicos. Este seria um trabalho que resolveria o principal problema encontrado por muitos administradores interessados em utilizar ferramentas livres, a dificuldade de operação.

BIBLIOGRAFIA

BIBLIOGRAFIA Dinangkur Cacti 0.8 Network Monitoring Wojciech Learning Nagios 3.0 DYE, MCDONALD, Mark A, Network
BIBLIOGRAFIA Dinangkur Cacti 0.8 Network Monitoring Wojciech Learning Nagios 3.0 DYE, MCDONALD, Mark A, Network
BIBLIOGRAFIA Dinangkur Cacti 0.8 Network Monitoring Wojciech Learning Nagios 3.0 DYE, MCDONALD, Mark A, Network

Dinangkur Cacti 0.8 Network Monitoring Wojciech Learning Nagios 3.0 DYE, MCDONALD, Mark A, Network Fundamentals: CCNA exploration companion guide. ed. Cisco Press. Indianapolis, 2009. MORIMOTO, Carlos, Redes, Guia Prático. ed GDH PRESS e Sul Editores. São Paulo,

Guia Prático . ed GDH PRESS e Sul Editores. São Paulo, 2006. KUROSE, James F, Redes

2006.

KUROSE, James F, Redes de Computadores e a Internet. ed Pearson Addison Wesley.

São Paulo, 2005. CISCO SYSTEMS. Snmp Concepts. Disponível em:

< http://www.cisco.com/en/US/docs/internetworking/technology/handbook/SNMP.html >. Acesso em: 18 ago. 2010. IMAGESTREAM INTERNET SOLUTIONS. Network Monitoring. Disponível em <http://www.telogic.com.sg/PDF/Monitoring_White_Paper.pdf> Acesso em 6 set.

2010.

GOERDEL, Holly, Proactive Management in Networks and Program Performance.

Disponível em <

http://www.allacademic.com//meta/p_mla_apa_research_citation/0/6/4/7/9/pages6479

8/p64798-1.php> Acesso em 31 ago. 2010. Netcordia, Inc, Proactive Analysis is the Key to Optimizing Networks. Disponível em

<http://whitepaper.techworld.com/networking/5145/proactive-analysis-is-the-key-to-

optimizing-networks/?otc=75&otd=TW> Acesso em 6 set. 2010. Oetiker, T. RRDtool - Logging and Graphing. Disponível em <http://oss.oetiker.ch/rrdtool/doc/rrdtool.en.html> Acesso em 02 set. 2010. NAGIOS, http://www.nagios.org CACTI, http://www.cacti.net VirtualBox, www.virtualbox.org