implementação da ferramenta zabbix para monitoramento reativo

Transcrição

implementação da ferramenta zabbix para monitoramento reativo
IMPLEMENTAÇÃO DA FERRAMENTA ZABBIX PARA
MONITORAMENTO REATIVO
Thiago Fachini <[email protected]>
Alexandre Timm Vieira - Orientador <[email protected]>
Universidade Luterana do Brasil (ULBRA) – Tec. Rede de Computação
Canoas – RS – Brasil
27 de novembro de 2010
RESUMO
Este artigo descreve a implementação da ferramenta de monitoramento Zabbix em uma empresa de
desenvolvimento de software e prestadora de serviços de TI. Este documento demonstra a analise feita sobre o
parque computacional, a modelagem da ferramenta para o cenário existente na empresa, e demonstra como
automatizar a recuperação de determinados serviços, sem intervenção humana.
Palavras-chave: monitoramento; ativo ; infraestrutura.
ABSTRACT
Title: “Implementation of tool Zabbix for reactive monitoring”
This paper describes the implementation of the Zabbix monitoring tool in a software development company
and provider of IT services. This paper demonstrates the analysis done on the park computational modeling tool
for the existing scenario in the company, and demonstrates how to automate the recovery of certain services,
without human intervention.
Keywords: monitoring; active; infrastructure.
1
INTRODUÇÃO
Segundo Lessa (1999), “Estatisticamente, enquanto 30% dos custos de uma infraestrutura
computacional estão diretamente associados à aquisição de hardware, os 70% restante dizem respeito à
manutenção e suporte aos recursos e serviços nela contida.” Portanto, o monitoramento da infraestrutura
computacional, torna-se uma atividade que contribui decisivamente para o funcionamento contínuo dos
serviços oferecidos, garantindo que a qualidade destes mantenha-se em níveis satisfatórios pelo maior tempo
possível.
Apesar das recentes e constantes pesquisas na área de gerenciamento e monitoramento de
infraestrutura computacional, ainda há carência de técnicas e ferramentas que suportem tanto o
desenvolvimento, quanto a implementação de agentes reativos em sistemas de monitoramento. As
ferramentas desta área, possuem muitos recursos úteis, mas entre elas não há alguma que possua a
capacidade de reagir aos resultados coletados, executando ações no ativo monitorado, dando ao sistema de
monitoramento a inteligência e autonomia necessária para atuar na correção de falhas detectadas.
Ou seja, as ferramentas de monitoramento atuais apenas colhem informações dos ativos e no
máximo reportam ao operador se alguma falha ocorrer, tendo este que resolver simples problemas
manualmente e com um gasto maior de tempo, do que se a falha fosse resolvida logo após ter sido detectada
pelo próprio sistema de monitoramento. Sendo então, de extrema importância o apoio de uma ferramenta
que possua as condições de fazer a análise e efetuar as ações necessárias para corrigir a falha detectada no
serviço, interagindo então no menor tempo possível de atraso, sem intervenção humana.
O objetivo principal deste artigo é demonstrar a possibilidade de automatizar as resoluções de falhas
e evitar possíveis falhas, utilizando a própria ferramenta que estará monitorando o serviço ou ativo, visando
também incentivar a adoção e aprimoramento deste tipo de ferramenta pelas empresas e equipes de TI.
Neste artigo, serão utilizadas as áreas de gerenciamento e monitoramento de infraestrutura
computacional, adotando as boas práticas da biblioteca ITIL, e um pouco da área de inteligência artificial,
mais especificamente na área de agentes, onde haverá um sistema de monitoramento, com banco de regras e
ações pré-definidas, que através dos resultados dos dados coletados reagirá ao status dos serviços, atuando
como um agente reativo.
A fundamentação teórica utilizada neste artigo esta descrita na Seção 2, seguida pela Seção 3, onde
descreve-se a analise e modelagem do ambiente, e pela Seção 4, descrevendo a implementação, e os
resultados descritos na Seção 5.
2
FUNDAMENTAÇÃO TEÓRICA
Independente do tamanho de uma rede de computadores, ela precisa ser gerenciada, para garantir aos
usuários qualidade e disponibilidade de serviços ao um nível de desempenho aceitável. Por isso é importante
para uma equipe de TI (Tecnologia da Informação) conhecer informações sobre os componentes de sua rede,
como: seus equipamentos de rede (switch, repetidores, roteadores, etc), especificação de hardware e software
dos seus servidores e estações, os serviços disponíveis aos seus usuários e etc.
Segundo Rigney (1996): “O gerenciamento de rede é o procedimento que consiste em controlar
todos os componentes de hardware e software da rede.”
Os usuários esperam sempre uma melhoria dos serviços oferecidos, ou no mínimo, a mesma
qualidade, quando novos recursos são adicionados ou quando são distribuídos, e seus vários grupos de
usuários necessitam de recursos computacionais diferentes, sendo função da equipe de TI atribuir e controlar
os recursos para balancear estas várias necessidades.
Para auxiliar a equipe de TI, no gerenciamento de seu parque computacional e seus serviços
fornecidos, ou seja suas necessidades de governança, há várias abordagens com modelos para a
implementação de um sólido sistema de gerenciamento, como CobIT, FCAPS, ITIL, ISO/CMIP, MOF, e
outros. Há uma grande esforço, atualmente, para adotar modelos baseados na entrega e no suporte de
serviços, como a biblioteca ITIL, desenvolvido pela United Kingdom ́ s Office of Government Commerce
(OGC).
2.1
ITIL (Information Technology Infrastructure Library)
A ITIL é uma série de livros e manuais, que foi criado como um esforço para disciplinar e permitir a
comparação entre as propostas dos diversos proponentes a prestadores de serviços de TI para o governo
britânico, haja vista a grande adoção da metodologia de gerenciamento denominada outsourcing e da
subcontratação de serviços de TI pelos seus diferentes órgãos, agências e instituições, objetivando garantir
um mínimo de padronização de atendimento em termos de processos, terminologia, desempenho, qualidade
e custo.
Dentre os fatores motivadores da atual corrida pela adoção das práticas reunidas na ITIL, pode-se
citar o incremento dos seguintes aspectos:
•
Custos de entrega e manutenção dos serviços de TI.
•
•
•
•
•
Requerimentos da organização em relação à qualidade e ao custo/benefício dos serviços de TI.
Demanda em obter a medição do retorno dos investimentos em TI.
Complexidade da infraestrutura de TI.
Ritmo de mudanças nos serviços de TI.
Necessidade de disponibilidade dos serviços de TI.
•
Aspectos relacionados com a segurança.
Ou seja, com suas métricas claras e objetivas, a ITIL permitiu medir a real contribuição da área de
TI em relação aos lucros, a redução de custos, a melhoria dos serviços e principalmente transmitir aos
investidores a mensagem de que agora temos no “pé da empresa o sapato de número correto”. A ITIL trata a
gestão da infraestrutura de TI de diversas formas, sendo o resultado final um aumento na confiança nos
serviços de TI. Este aumento traduziu-se na redução de riscos, pois o grau de certeza das atividades de
negócio que tem TI como meio de execução tornou-se maior e os custos das redundâncias operacionais
foram eliminados.
Os livros sobre ITIL adotados para este artigo são o Service Support e o Service Delivery, eles
descrevem os principais objetivos do gerenciamento de serviços e os processos chave para melhorar a
qualidade dos serviços de TI, alinhando-os com as necessidades do negócio da empresa. Os processos de
gerenciamento de serviços podem ser agrupadas em operacionais (Service Support) e táticas(Service
Delivery), conforme descritos a seguir.
As competências operacionais (Service Support) são:
• Incident Management – Tem por meta o restabelecimento da normalidade operacional dos
serviços de TI no menor tempo possível. Este processo define as atividades e responsabilidades
para minimizar os impactos e atender os níveis de serviços acordados.
• Problem Management – Tem por meta identificar as causas dos incidentes e corrigir os erros de
forma preventiva. O processo define as atividades e responsabilidades para solucionar os erros,
reduzir o tempo necessário para resolver os problemas dentro dos níveis de serviços acordados.
• Change Management – A meta deste processo é melhorar a operação do dia-a-dia de TI. O
processo assegura o correto uso de padrões e processos para um rápido e eficiente atendimento
das mudanças através do planejamento, controle e suporte das mudanças e identificação dos
riscos e impactos.
• Configuration Management – Tem por meta controlar a infraestrutura de TI assegurando o uso do
hardware e software homologados. O processo define as atividades de controle e relacionamentos
dos itens de configuração que compõe a infraestrutura de TI.
• Release Management – A meta deste processo é assegurar que somente versões autorizadas e
corretas estejam disponibilizadas, e que apenas softwares licenciados sejam instalados. O
processo assegura que todos os aspectos (técnicos ou não) sejam atendidos.
E as competências táticas (Service Delivery) são:
• Service Level Management – A meta deste processo é manter e melhorar o nível de qualidade
dos serviços de TI através da eliminação dos serviços de baixa qualidade. O processo define as
atividades de planejamento, coordenação, desenvolvimento, monitoração e comunicação dos
acordos dos níveis dos serviços. Também define as atividades de revisão dos acordos para
garantir a melhoria constante da qualidade com redução dos custos.
• Capacity Management - O processo define as atividades de gestão e previsão de recursos de TI
através da monitoração, análise e planejamento das métricas e condições operacionais. O
processo visa manter o equilíbrio da oferta e procura dos recursos da tecnologia.
• Availability Management – A meta deste processo é otimizar a infraestrutura, serviços e suporte
de TI para que a disponibilidade (com custos aceitáveis) permita que o negócio alcance os seus
objetivos. O processo define com o negócio os requisitos da infraestrutura, serviços e suporte de
TI, para endereçar as necessidades da oferta e demanda da disponibilidade de TI.
• IT Continuity Management – É o processo de gerenciamento dos recursos organizacionais,
técnicos e humanos para garantir que os serviços de TI estejam dentro do risco aceitável de
continuidade do negócio. O processo define um ciclo contínuo de avaliação de riscos, medidas de
contorno, revisão dos cenários e planos de contingência para garantir a aderência contínua ao
Plano de Continuidade do Negócio.
• Financial Management – Tem como meta dar transparência aos custos de TI. O processo define a
metodologia e as atividades para o desenvolvimento e acompanhamento do orçamento e dos
critérios de rateio do investimento e despesa de TI.
2.2
Gerenciamento de rede
O gerenciamento de redes pode ser dividido em duas categorias de atividades:
• Monitoramento: É uma função destinada a observação e análise do estado e comportamento dos
dispositivos gerenciados.
• Controle: É uma função destinada a alteração de parâmetros de gerenciamento que acarretam
ações junto aos dispositivos gerenciados.
“Um sistema de gerenciamento de rede é composto por ferramentas para o monitoramento e controle
da rede”(Teixeira, 1999, p.356), que são controladas pela equipe de TI, e que cabe a ela escolher as melhores
ferramentas e a melhor maneira de controlar esses recursos.
Os softwares utilizados no gerenciamento são divididos em agentes e gerentes e estão presentes em
estações de trabalho, servidores, switches, roteadores, e outros. Ou seja, estão presentes nos ativos.
Um bom ambiente de gerenciamento de rede deve ser composto pelas entidades que se deseja
monitorar (agentes), e por uma entidade responsável para adquirir as informações (gerente), sendo assim
centralizando a fonte de informações.
• Entidade Gerente: Também conhecido como NMS (Network Management Stations), consiste em
uma entidade de rede que usa determinados protocolos das camadas de transporte, de rede e de
aplicação, para a comunicação com a entidade de rede gerenciada (agente). O gerente
compreende um tipo de software que permite a obtenção e o envio das informações de
gerenciamento, junto aos mecanismos gerenciados mediante comunicação com um ou mais
agentes. As informações de gerenciamento podem ser obtidas com o uso de requisições efetuadas
pelo gerente ao agente, como também, mediante envio automático disparado pelo agente a um
determinado gerente. Tipicamente um gerente está presente em uma estação de gerenciamento de
rede.
“O computador gerente é considerado como o coração do sistema de
gerenciamento de rede e como tal deve-se fornecer atenção redobrada ao mesmo.”
(TEIXEIRA,1999,p.358)
• Entidade Agente: O agente por sua vez consiste na materialização da entidade gerenciada,
compreendendo um tipo de software presente junto aos dispositivos gerenciados. A função
principal de um agente compreende o atendimento das requisições enviadas por um software
gerente e o envio automático de informações de gerenciamento ao gerente, indicando a
ocorrência de um evento previamente programado. Também compete ao agente efetuar a
interface entre os diferentes mecanismos usados na instrumentação das funcionalidades de
gerenciamento inseridas em um determinado dispositivo gerenciado. Para os agentes, não existe
passado nem futuro, pois as suas ações são baseadas nas informações colhidas pelo sensor
naquele instante e atua no meio através das regras contidas na sua base de conhecimentos. Por
isso, quando cessa a percepção do ambiente cessa a ação.
2.3
Inteligência Artificial (IA)
Tem-se como definição histórica que a IA é a área da Ciência da Computação que, ao mesmo tempo
que é recente -1956- é também muito antiga, pois já vem sendo formada a partir de ideias cientificas e
tecnológicas herdadas de outras ciências, tendo como exemplo a lógica com seus 23 séculos.
“IA é a parte da ciência da computação voltada para o desenvolvimento de
sistemas de computadores inteligentes, i.e. sistemas que exibem características, as
quais nós associamos com a inteligência no comportamento humano - e.g.
compreensão da linguagem, aprendizado, raciocínio, resolução de problemas, etc.”
(FEIGENBAUM, 1981).
Na IA os agentes, segundo Wooldridge (1994), são definidos como “sistemas que apresentam um
comportamento que é determinado por um processo de raciocínio baseado na representação de suas atitudes,
tais como crenças, comprometimentos e desejos. Um sistema pode ser visto como um agente se possuir as
seguintes propriedades: autonomia, habilidade social, reatividade e pró-atividade.” E, segundo Russell
(1995), “um agente é tudo o que pode ser considerado capaz de perceber seu ambiente por meio de sensores
e de agir sobre esse ambiente por intermédio de atuadores”.
Estes conceitos, com uma visão mais atualizada, também são encontrados na obra de Koch e
Westphall (2001):
• Agentes podem ser guiados por metas e baseados em regras, sendo que um conjunto de regras
constitui a base de conhecimento para qualquer sistema e as metas são os objetivos de trabalho
dos agentes. Definimos metas estáticas como parâmetros de configuração fixados na criação do
agente, e metas dinâmicas aquelas adicionadas ao comportamento inicial do agente e que foram
derivadas de mudanças do ambiente ou de mensagens recebidas.
• Agentes devem ser capazes de aprender novas habilidades (skills), e essas novas regras podem
ser armazenadas dinamicamente nas bases locais de conhecimento dos agentes; outra
possibilidade é inferir novas regras a partir do conhecimento atual do ambiente.
Na IA também encontramos um bom conceito para um Sistema Multiagente, que segundo Ferber
(1999), “consiste em uma aplicação distribuída composta por um conjunto de processos autônomos,
heterogêneos, distribuídos e inteligentes denominados “agentes”, que cooperam entre si para a resolução de
um problema complexo que está além das suas capacidades individuais”.
2.4
Sistemas Especialistas
Segundo Rolston (1988), “programas de computador que tentam resolver problemas que os seres
humanos resolveriam emulando o raciocínio de um especialista, aplicando conhecimentos específicos e
inferências são ditos Sistemas Especialistas”.
Ou seja, sistemas especialistas são sistemas que solucionam problemas que são solucionáveis apenas
por pessoas especialistas (que acumularam conhecimento exigido) na resolução destes problemas.
A solução de um problema proposto por um sistema especialista é voltado para uma determinada
área de conhecimento e é fornecido por pessoas que são especializadas nesta área. Esse conhecimento
adquirido permite-lhe emitir decisões, justificadas e apoiadas, por uma base de informações, agindo como se
fosse um especialista humano de determinada área de conhecimento.
2.5
Agentes Inteligentes em Gerência de Redes
Analisando as áreas de gerência de redes, considerando-se suas características estáticas ou
dinâmicas, e conforme o tipo de comportamentos para solucionar os problemas: reativo ou pró-ativo.
Devemos primeiramente, preocupar-nos em definir o problema, e se o problema poderá ser representado
matematicamente por uma função. Resolvê-lo será então encontrar um modo de implementar esta função ou
de aproximá-la com o conhecimento que se dispõe.
Após a definição do problema é necessário definir o comportamento de gerência que será adotado:
reativo quando as ações de gerência são realizadas após o aparecimento de algum problema; ou, pró-ativo no
caso de se adotar um gerenciamento com ações preventivas.
Outra questão é determinar se a solução do problema deve ter características estáticas ou dinâmicas.
Estáticas quando não existe o conceito de estado, e dinâmicas quando forem identificados trocas de estados
na solução do problema.
Com base na metodologia apresentada, e ilustrado no Quadro 1 a seguir, indica-se as seguintes
aplicações para as principais áreas funcionais de gerência de redes definidas pelo modelo de referência ITIL.
Quadro 1: Características das áreas funcionais de gerência de redes
Comportamento de Gerência
Características
Área Funcional
Reativa
Pró-ativa
Estáticas
Dinâmicas
Falha
Desempenho
Configuração
Contabilização
Segurança
A gerência de falha pode assumir os dois tipos de comportamento. Reativo no caso de falhas
impossíveis de se prevenir, como é o caso das falhas provocadas pela ação do ambiente ou provocadas pela
má qualidade de peças e equipamentos utilizados. Ou poderá ser pró-ativo no caso de falhas relacionadas ao
desempenho da rede, como por exemplo, a sobrecarga da rede. Estes comportamentos poderão ter problemas
de caráter estático ou dinâmico.
A gerência de desempenho deve ser pró-ativa em todos os seus aspectos. É uma forma preventiva de
garantir a qualidade do serviço oferecido aos usuários. A gerência de configuração normalmente é reativa
com características dinâmicas. O dinamismo é identificado pelo crescimento do número de equipamentos e
de usuários que altera o estado da rede.
A gerência de contabilização é estática e reativa. E a gerência de segurança pode ser tanto reativa
quanto pró-ativa. Contém características dinâmicas, uma delas é o controle de acesso que é diretamente
ligado ao número de usuários. Com esta interpretação é possível definir se o problema a ser resolvido
necessita de agentes autônomos estáticos ou dinâmicos.
A utilização de agentes no processo de gerência de redes de computadores introduz as seguintes
características:
• Diminuição do tráfego entre o agente e o nó gerenciável: A redução do tráfego de rede é uma
consequência natural neste modelo de gerenciamento de redes, uma vez que o processo de
aquisição e análise de informações é levado mais perto do (ou mesmo no próprio) local do objeto
gerenciado. Ele age como um filtro das informações coletadas do dispositivo e repassadas para os
gerentes do sistema de gerenciamento.
• Maior abstração dos objetos gerenciáveis pelos gerentes: Tendo em vista que muitas decisões
podem ser tomadas diretamente pelos agentes, algumas das características e atributos do objeto
gerenciado podem ser abstraídas pelos módulos gerentes ou mesmo alguns objetos gerenciados
podem ser agregados em uma unidade abstrata.
• Maior agilidade na tomada de decisões: Sendo que as decisões estão mais próximas dos objetos
gerenciados, trazendo-se o processo de decisão para perto destes objetos evita-se a necessidade de
comunicação com um sistema central.
• Maior adaptabilidade do sistema: O ideal dos agentes é estar preparado para quaisquer mudanças
no ambiente onde estiver inserido e pronto para reagir positivamente a estas. Com agentes, o nó
gerenciável passa a ter "autonomia" com relação aos gerentes do ambiente, principalmente em
questões não críticas. Desta forma, a gerência de rede torna-se mais automatizada.
2.6
A Ferramenta Zabbix
Zabbix é uma ferramenta de monitoramento com capacidade para um vasto número de parâmetros,
ele é idealizado para monitorar e controlar o funcionamento dos ativos e seus serviços. O Zabbix possui um
flexível mecanismo de alarmes que permite aos usuários configurar e-mail, mensagem instantânea e SMS
para receber os alertas se algum evento ocorrer com os mecanismos gerenciados, e sendo corretamente
configurado pode executar comandos remotos permitindo uma fácil resolução do problema encontrado nos
ativos monitorados.
Zabbix oferece excelentes características de relatórios e visualização de dados armazenados, isso o
torna ideal para o planejamento de capacidade. Todos os relatórios e estatísticas do Zabbix, bem como as
configurações dos parâmetros são acessados através de uma interface gráfica na web. Propriamente
configurado o Zabbix pode ter um papel importante em monitorar toda a infraestrutura de TI, isso é
aplicável tanto para pequenas empresas com poucos servidores, quanto para grandes empresas com muitos
servidores.
Zabbix possui suporte para mecanismos polling (forma de capturar dados de tempo em tempo) e
trapping (notificação de alarmes), oferecendo agentes de alta performance nativos, entre as principais estão
GNU/Linux, Microsoft® Windows®, IBM® AIX®, HP-UX® e a família BSD, monitoramento sem um agente
instalado, ou com agentes SNMP ou IPMI, autenticação segura de usuário utilizando criptografia dos dados,
permissões flexíveis de usuários, flexível notificação de eventos predefinidos, execução de comandos
remotos, alto nível de visualização de recursos monitorados.
Uma ferramenta de gerência de redes deve possuir algumas funções básicas para tratar as áreas da
gerência, então se baseando nestas funções, o Zabbix possui as seguintes características:
• Monitoramento de recursos (desempenho): Um dos mais importantes usos do Zabbix é o
monitoramento da utilização dos recursos, como carga de processamento, quantidade de
processos ativos, atividade no disco rígido, utilização da memória virtual e disponibilidade da
memória física são alguns de inúmeros parâmetros de sistemas que ele é capaz de monitorar. Mas
não apenas a utilização geral dos recursos do ativo, como também individualizar e monitorar
cada serviço e seus recursos consumidos. Ele prove informações em tempo real sobre os recursos
de um ativo. Além disso, ele pode produzir gráficos de tendências para ajudar na identificação de
gargalo no desempenho do sistema.
• Mecanismo de alerta e execução de comandos remotos: O Zabbix possui um poderoso
mecanismo de notificação automatizado e dependendo do caso a autorrecuperação do serviço
com a execução de comando remoto ordenado pela entidade gerente à entidade agente. Com ele,
um administrador pode definir uma possível condição para um gatilho, usando flexíveis
expressões. Em algum momento quando essas condições forem verdadeiras (ou falsas), um alerta
será enviado por e-mail para um endereço definido pelo administrador e o(s) comando(s)
executado(s) no cliente. Programas externos podem ser usados para notificar o usuário como
SMS (notificação por celular) e Jabber (mensagem instantânea). Com a utilização de expressões
flexíveis, para os gatilhos, o Zabbix permite que a equipe de TI seja notificada bem antes do
estado do sistema alcançar um nível crítico.
• Verificação de Integridade: Zabbix é capaz de verificar a integridade do ativo. Todos os arquivos
de configuração críticos, binários, kernel, scripts e páginas HTML de servidores web podem ser
monitorados permitindo que o administrador possa ser alertado toda vez que um desses arquivos
forem alterados.
• Armazenamento de Dados e Serviços de Auditoria: Todos os valores dos parâmetros monitorados
são armazenados em banco de dados (MySQL, PostgreSQL ou Oracle). Os dados coletados
podem ter seu armazenamento ajustado dinamicamente de acordo com a preferencia, e serem
usados mais tarde para qualquer propósito. O Zabbix também gera uma auditoria das alterações
realizadas pelos usuários, para em caso de algum problema possa tentar identificar quem as fez e
o que foi feito.
3
MODELAGEM
A empresa de desenvolvimento de software Fachini System Ltda, atua na área de criação de sistemas
de ERP, BI, CRM e utilitários de manutenção destes sistemas. Fornecem também aos seus clientes serviços
de manutenção e monitoramento dos servidores que possuem os seus sistemas.
Neste artigo além de abordarmos o monitoramento da estrutura de ativos da Fachini System,
também abordaremos o monitoramento da Fachini Diesel Ltda, o principal cliente da Fachini System, que
atua como distribuidor no comércio de peças para motor à diesel.
A Fachini System utiliza várias ferramentas de monitoramento, como Cacti, MRTG e Ntop, e
algumas desenvolvidas pela própria empresa para sanar determinadas necessidades, mas essas ferramentas
não geram alertas e muitas são descentralizadas e individuais, como o Ntop, onde o operador deve acessar os
ativos individualmente para poder analisar os dados capturados.
Então visando criar um ambiente amigável e único aos operadores de suporte, tanto para monitorar
quanto para alertá-los sobre as falhas, será realizado um estudo sobre seus ativos de rede, para assim poder
ter um levantamento exato de quais suas necessidades de monitoramento, avaliando desta forma como será
estruturada a ferramenta Zabbix, para assim atender melhor as necessidades da Fachini System.
3.1
Analise do ambiente
Conforme ilustrado na Figura 1 a seguir, o parque computacional da Fachini System é formado por
quatro servidores, dois roteadores, alguns equipamentos de clientes para VPN (Virtual Private Network),
dois links para acesso à Internet. A rede ethernet é fornecida pelo switch Dell PowerConnect 2724, sendo
dividida em duas zonas separadas por vlan (Virtual Local Address Network), a rede denominada VLAN0 é
portadora do domínio de colisão da LAN (Local Area Network), enquanto a rede denominada VLAN1 é
portadora do domínio de colisão da DMZ (DeMilitarized Zone). Estas vlan são configuradas diretamente no
switch, onde a VLAN0 inicia no porta 1 e termina na porta 16, e a VLAN1 inicia na porta 17 e termina na
porta 24.
Figura 1 – Rede Fachini System
A seguir a Figura 2 ilustra a rede da Fachini Diesel Ltda, esta empresa além de utilizar os aplicativos
desenvolvidos pela Fachini System, também utiliza os serviços de manutenção e monitoramento dos seus
servidores. A Fachini Diesel possui oitos lojas espalhadas pelo Brasil. Conforme demonstrado na Figura 2,
há uma loja em cada estado, e sua estrutura computacional é igual em todas as lojas, tendo um servidor para
área de trabalho remota e um servidor de dados, com diferença apenas para os Centro de Distribuição em
“Filial – SC” e “Filial – MT” que possuem apenas o servidor de dados. A comunicação entre as lojas é feita
pela Internet por VPN entre seus roteadores.
Figura 2 – Rede Bombas Diesel Ltda
Com os cenários acima especificados, foi realizado uma analise das necessidades de monitoramento
de cada ativo, como muitos ativos possuem igualdade tanto de hardware quando de serviço oferecido, eles
foram agrupados, e seus serviços subdivididos, conforme demonstrados no Quadro 2 a seguir, sendo
também especificado a criticidade do serviço, os critérios para os gatilhos e as ações que estes gatilhos irão
disparar.
Ativos
server01
srvts01
tssp01
tsrs01
tspr01
tsms01
Serviços
Quadro 2 – Avaliação dos ativos
Critici Métrica de monitoramento Critério para gatilho
dade
Hospedagem de
site
Média
Gerenciamento
de banco de
dados
Média
Armazenar e
compartilhar
arquivos
Alta
Controle de
versões
Alta
Área de trabalho
remota
Alta
Consumo geral de
processador, memória física
e virtual, atividade de rede e
espaço em armazenamento
livre.
Consumo de memória por
serviço.
Disponibilidade do ativo e
seus serviços.
Integridade dos principais
arquivos.
Ações
Inatividade do
servidor
Comunicar por email
Inatividade dos
serviços
Comunicar por email e iniciar
serviço
Espaço livre menor
que 10%
Comunicar por email e adicionar
espaço
Alto consumo de
memória e
processamento por
dez minutos
Comunicar por email
Alterações
nos Comunicar por earquivos monitorados mail
Consumo geral de
processador, memória física
e virtual, atividade de rede e
espaço em armazenamento
livre.
Quantidade de usuários.
Disponibilidade do ativo e
seus serviços.
Integridade dos principais
arquivos.
Inatividade do
servidor.
Comunicar por email
Inatividade do
serviço.
Comunicar por email
Espaço livre menor
que 10%.
Comunicar por email
tsgo01
tsmg01
dadossp01
dadosrs01
Gerenciamento
de banco de
dados
dadospr01
Armazenar e
compartilhar
dadosms01 arquivos
Alta
Alta
dadosgo01
Consumo geral e por serviço
de processador, memória
física e virtual, atividade de
rede e espaço em
armazenamento livre.
Disponibilidade do ativo e
seus serviços.
Integridade dos principais
arquivos.
dadosmg01
dadossc01
proxy01
Comunicar por email
Inatividade do
servidor.
Comunicar por email
Inatividade dos
serviços.
Comunicar por email e iniciar
serviço
Espaço livre menor
que 20%.
Comunicar por email
Alto consumo de
memória e
processamento por
vinte minutos
Comunicar por email
Alterações nos
Comunicar por earquivos monitorados mail
dadosmt01
ftp01
Alto consumo de
memória e
processamento por
trinta minutos
Transferência de Média
arquivos por FTP
Proxy web
Média
Cache DNS
Média
srvdmz01
Filtrar entrada e
saída (netfilter)
Alta
router01
Tradução de IP
(NAT)
Alta
Consumo geral e por serviço
de processador, memória
física e virtual, atividade de
rede e espaço em
armazenamento livre.
Disponibilidade do ativo e
seus serviços.
Inatividade do
servidor.
Comunicar por email
Inatividade dos
serviços.
Comunicar por email
Espaço livre menor
que 5%.
Comunicar por email
Consumo geral e por serviço
de processador, memória
física e virtual, atividade de
rede e espaço em
armazenamento livre.
Disponibilidade do ativo e
seus serviço.
Inatividade do
servidor.
Comunicar por email
Inatividade dos
serviços.
Comunicar por email
Espaço livre menor
que 5%.
Comunicar por email
Consumo geral de
processador, memória física
e virtual, atividade de rede e
espaço em armazenamento
livre.
Disponibilidade do ativo.
Integridade dos principais
arquivos.
Inatividade do
roteador.
Comunicar por email
Alto consumo de
memória e
processamento por
dez minutos
Comunicar por email
Alterações nos
Comunicar por earquivos monitorados mail
VPN entre as
lojas
Alta
Proxy web
Média
rtpr01
Proxy MSN
Média
rtms01
Cache DNS
Média
rtgo01
Priorizar entrada
e saída (QoS)
Alta
Filtrar entrada e
Alta
rtsp01
rtrs01
rtmg01
Consumo geral de
processador, memória física
e virtual, atividade de rede e
espaço em armazenamento
livre.
Consumo de memória por
serviço.
Disponibilidade do ativo e
seus serviços.
Integridade dos principais
arquivos.
Inatividade do
roteador.
Comunicar por email
Inatividade dos
serviços.
Comunicar por email e iniciar
serviço
Espaço livre menor
que 10%.
Comunicar por email
Alto consumo de
memória e
processamento por
dez minutos
Comunicar por email
rtsc01
saída (netfilter)
Comunicar por eAlterações nos
mail
arquivos monitorados
rtmt01
xen01
Virtualização
Média
xen02
Disponibilidade do ativo e
seus serviços.
Integridade dos principais
arquivos.
Inatividade do
servidor.
Comunicar por email
Alterações nos
Comunicar por earquivos monitorados mail
A comunicação por e-mail será apenas para o endereço de suporte ([email protected]), pois há
uma ferramenta que captura esses e-mails e repassa ao responsável pelo suporte em forma de tarefa, e este
delega as tarefas aos operadores do suporte.
O Quadro 3, a seguir, detalha como deverá ser realizado o monitoramento de cada item do ativo,
como tipo de valor e o intervalo de captura, esse detalhamento é necessário para que possamos parametrizar
corretamente os gatilhos.
Quadro 3 – Detalhamento dos itens
Descrição do Item
Tipo de valor
Intervalo de captura
(segundos)
Disponibilidade do
ativo
Booleano
60
Tempo de resposta do
ativo
Segundos
30
Espaço em
armazenagem livre
Porcentagem (%)
1800
Informações Gerais
Caracteres
86400
Tempo de atividade
Tempo
3600
Memória física e
virtual total
Bytes
86400
Memória física e
virtual livre
Porcentagem (%)
120
Carga média de
processamento (load
average)
Decimal fracionário
120
Processamento ocioso
ou utilizado
Porcentagem (%)
120
Trafego de rede
(entrada e saída)
Bytes
60
Integridade de
arquivos
Checksum
3600
Consumo de memória
do serviço
Bytes
120
Atividade do serviço
na rede
Booleano
60
Tempo de resposta do
serviço
Segundos
60
Processos do serviço
em execução no ativo
Decimal
120
4
IMPLANTAÇÃO
Com o ambiente anteriormente especificado e suas necessidades de monitoramento mapeadas,
partiremos para a implementação da ferramenta de monitoramento Zabbix.
Um dos pontos fortes do Zabbix é a utilização dos templates (modelos), pois com eles é possível
ajustar parâmetros uma única vez para os diversos tipos de ativos que serão monitorados. É conhecido que a
ferramenta trás consigo na instalação uma grande variedade de templates, mas estes não serão utilizados,
porem alguns parâmetros dos templates existentes serão utilizados, como base e exemplo para a criação dos
templates que serão criados.
Nos templates serão criados e ajustados os parâmetros dos itens e das triggers (gatilhos), e alguns
gráficos, a ferramenta automaticamente gera gráficos e históricos individuais para todos os itens, mas
também podemos definir gráficos mais específicos com a junção de vários itens. As triggers serão
disparadas de acordo com os valores do itens, gerando o sinal de alerta, e somente com este sinal o gerente
da ferramenta Zabbix, irá realizar as ações pré-definidas, como enviar e-mail ou enviar os comandos que os
agentes irão executar.
O Zabbix disponibiliza uma rica dashboard (painel de indicadores), ilustrado na Figura 3 a seguir,
onde o operador pode visualizar as atividades principais da ferramenta, como os itens monitorados e os
gatilhos disparados. Ao passar ou clicar com o mouse em cima dos itens em vermelho, como em “Status do
sistema” e “Status do Host”, aparecerá uma janela com os detalhes e os gatilhos que acusam o problema.
Figura 3 - Dashboard
4.1
Instalação da ferramenta Zabbix
Para instalação do ambiente em que o servidor Zabbix será executado, Zabbix Server, foi utilizado o
S. O. Debian Lenny x86, encontrado em “http://cdimage.debian.org/debian-cd/current/i386/iso-cd/debian506-i386-CD-1.iso”, após a instalação do sistema básico a partir da imagem, foi instalado as ferramentas
complementares requeridos pelo Zabbix, através da ferramenta “aptitude”, da própria distribuição, que são:
apache2, dbconfig-common, fping, libapache2-mod-php5, libcurl3-dev, libcurl3-gnutls, libiksemel3,
libmysqlclient15-dev, libsnmp-dev, mysql-server, php5, php5-gd, php5-mysql, php-net-socket, php-xmlparser, php-xml-util, sendemail, snmpd, openipmi, libphp-jabber, libiksemel-dev, libopenipmi-dev, e suas
dependências.
Após a preparação do ambiente acima, foi realizado o download da ferramenta Zabbix em
“http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/1.8.3/zabbix1.8.3.tar.gz/download” e seguido o passo a passo de instalação que está disponível no site do desenvolvedor
da ferramenta, em “http://www.zabbix.com/documentation/1.8/manual/installation#zabbix_server1”, não
entraremos nos detalhes da compilação e instalação da ferramenta do servidor Zabbix, pois conforme o link
acima o seu desenvolvedor possui uma vasta documentação para este fim. Para a instalação dos agentes,
Zabbix Agent, em ambiente GNU/Linux foi utilizado as versões disponibilizadas pelas próprias
distribuições e no ambiente Microsoft ® Windows® será utilizado os agentes fornecidos, também pelo
desenvolvedor da ferramenta, disponibilizado em “http://www.zabbix.com/download.php”.
Cabe ressaltar que a versão gerente, o Zabbix Server, está hospedado no servidor xen01, mas logo e
de acordo com a necessidade ele será migrado para um equipamento dedicado. Isso é possível não apenas
porque ele trabalha com banco de dados, mas também porque permite exportar todos os templates, ativos
monitorados, telas, mapas e outras configurações para arquivos XML, que poderão ser importados em
qualquer servidor Zabbix.
4.2
Criação de Templates
Para o monitoramento dos ativos será criado dois templates, um para o S. O. GNU/Linux e outro
para o S.O. Microsoft® Windows®, e um template especifico para cada serviço a ser monitorado.
Na Figura 4, a seguir, temos um exemplo dos templates para S. O. GNU/Linux e Microsoft®
Windows®, neles podemos verificar que para cada item a ser monitorado, ou seja cada informação a ser
coletada, serão ajustados parâmetros como a “Chave” utilizada pelo Zabbix Server para solicitar a
informação ao Zabbix Agent, o intervalo de tempo, em segundos, em que cada captura será realizada, e por
quantos dias serão armazenados os históricos e as estatísticas dessas capturas. Há também o “Status” do item
monitorado, que pode ser ajustado para “Ativo” ou “Inativo”, mas se este valor for ajustado no template,
será ajustado para todos os ativos vinculados a ele, sendo o ideal realizar esse ajuste diretamente no ativo. O
template para o S. O. Microsoft ® Windows® é praticamente idêntico, sendo diferenciado pela integração com
o “Perfomance Monitor”(perf_counter), do próprio Windows ®, em alguns itens.
Figura 4 – Template GNU/Linux e Microsoft® Windows®
A seguir, na Figura 5, temos um exemplo de “Item” do template GNU/Linux, nele vemos que
podemos definir uma série de valores, como os mencionados anteriormente, sendo mais importante os itens
como o “Tipo” de agente utilizado para a captura, podendo ser o agente Zabbix passivo ou ativo, agentes
SNMP versão 1, 2 e 3, IPMI, SSH, Telnet, monitoração simples, como um ping, e outros. O “Tipo de
informação” será definido de acordo com o valor a ser recebido e armazenado pelo Zabbix Server, podendo
ser fracionário, inteiro sem sinal, carácter, log ou texto. Em conjunto com o “Tipo de informação” está a
“Unidade”, como para o Zabbix Server a resposta do Zabbix Agent é apenas um dado, devemos especificar
o que esse dado representa e, se necessário, como tratá-lo nos campos “Use custom multiplier” e
“Armazenar valor”, no caso do exemplo, a coleta de bytes entrante na interface de rede para o S. O.
GNU/Linux é retornado em Bps, bytes por segundo, enquanto no S. O. Microsoft ® Windows® é retornado
em bps, bits por segundo. Outro parâmetro muito importante é flexibilização do intervalo de captura, onde
temos o campo para intervalo fixo e padrão, e outro campo que poderemos incluir vários intervalos
diferenciados, apenas para ilustrar o exemplo estamos utilizando um intervalo padrão de 120s (segundos),
enquanto no intervalo flexível ajustamos a captura para 60s no horário das 07hs (horas) até as 20hs, nos dias
semanais de segunda-feira até sábado.
Ainda na Figura 5, temos o campo “Mostrar valor”, que realiza o mapeamento de valores como um
simples ping que se retornar 0 (zero) será mapeado como “Down” e se rertonar 1 (um) será mapeado como
“Up” ou como o retorno de valores do Dell OpenManage que ao retornar 3 será “OK”, 4 “Advertencia” e 5
“Erro”, e por último o campo “Aplicações” que serve como um classificador, juntando os itens em um
conjunto comum para melhor visualização no monitoramento.
Figura 5 – Exemplo de item
Em geral os templates criados para os S.O. GNU/Linux e Microsoft® Windows®, abrangem a captura
de informações sobre o status e desempenho do ativo monitorado, com consumo de processador e memória,
vazão de dados na interface de rede, disponibilidade de armazenamento em disco, integridade de arquivos e
informações do ativo.
Já os templates criados para monitorar os serviços, além de monitorarem o consumo destes, também
verificam a disponibilidade e o tempo de resposta para o usuário do serviço, conforme ilustrado na Figura 5
a seguir, que através do Zabbix Agent captura medidas sobre a atividade do processo. Um exemplo a parte é
o que demonstra a Figura 6, pois nele temos uma integração do Zabbix Agent com a ferramenta
“squidclient”, uma ferramenta de comunica com a API da ferramenta Squid para coletar dados sobre o status
do serviço de cache/proxy web. Essa integração funciona com o Zabbix Agent sendo uma agente ativo para
coletar as informações, e passivo apenas para reportar os dados coletados, ou seja, o Zabbix Agent possuirá
uma lista de itens para coletar automaticamente, armazenando-os temporariamente até o Zabbix Server
solicitar os dados.
Como exemplo dessa integração, temos o item “Squid – Cache em Disco Usado”, que coletará a
porcentagem de cache em disco usada pelo Squid através da ferramenta “squidclient”, essa coleta ocorre
com o Zabbix Agent executando o comando “squidclient mgr:storedir | grep "Percent Used"| ...”no ativo,
armazenando os resultados em buffer, conforme parâmetro ajustado no agente e ilustrado na Figura 6 em
fundo preto, e a cada 300s o Zabbix Server solicita ao agente as informações coletadas.
Figura 6 – Template de Serviço
Na Figura 7 a seguir temos a ilustração das triggers para o “Template_Linux”, nela podemos
verificar que as triggers são classificados de acordo com a criticidade no campo “Risco” (Informação,
Advertência, Médio, Alto ou Desastre), e que cada “Expressão” está relacionada a um ou vários itens. Essa
possibilidade de se utilizar vários itens em uma trigger nos dá a possibilidade de criar gatilhos como o
“Alterado regras de netFilter em {HOSTNAME}”, onde juntamos os itens que verificam a integridade dos
arquivos de regras de netfilter (iptables) em uma única trigger, sendo apenas separados por um “OU” lógico,
sem a necessidade de se criar uma trigger para cada item. Assim como a trigger “Alto consumo de Memoria
em {HOSTNAME}”, que é um “E” lógico entre os itens “Memoria Fisica Livre” e “Memoria Virtual
Livre”, sendo este gatilho apenas ativado quando a memória física estiver durante dez minutos menor que
10% e a memória virtual livre estiver, também no intervalo de dez minutos, menor que 70%.
Figura 7 - Triggers
4.3
Cadastramento de ativos (Hosts)
O cadastramento de ativos é um processo simplificado e intuitivo, conforme ilustrado na Figura 8 a
seguir, em parte graças aos templates, sendo as informações mais importantes o “Nome DNS” ou “Endereço
IP”, para que possamos dizer ao Zabbix como conectar-se ao ativo no parâmetro “Conectado a”, os
templates utilizados pelo ativo e seu inventário, onde podemos descrever tudo sobre o ativo, como tipo de
ativo, qual S. O., o número de série ou de imobilizado, descrição de hardware e software, datas de instalação
e compra, a localidade do ativo e outros.
Figura 8 – Cadastro de ativos
4.4
Ações
O cadastro das ações a serem executadas, podem ser parametrizadas para um único ativo ou para
vários ativos, conforme ilustrada a seguir na Figura 9, temos uma ação que irá enviar um comando para o
agente executar no ativo monitorado. Neste exemplo temos a demonstração da ação para executar o script
“add_squid”, ilustrado com fundo preto, que estará armazenado no ativo, no campo “Condições de ação”
devemos ajustar as condições e o tipo de cálculo, neste caso a ação somente será executada se a trigger
“Espaço em disco livre menor que 10% em /squid” (D) estiver com o valor indicativo de “PROBLEMA” (E)
se o intervalo não for de segunda a sábado das 05hs até as 0hs (F), e somente poderá ser executada nos
ativos especificados, como o server01 (A), ou RTSP01 (B) ou RTRS01 (C).
Figura 9 – Exemplo de ação
O exemplo da Figura 9 anteriormente demonstrada, também está com os parâmetros ajustados para
o envio de e-mail, conforme visto na janela “Ação”, estes parâmetros são as variáveis de ambiente, que o
Zabbix trata como macros, que são coletados ou preenchidos na hora da execução da ação. Conforme Figura
9 o campo “Assunto” do e-mail será composto pelo nome do ativo e o status da trigger, o corpo da
mensagem trará informações como data e hora do envio da mensagem, um histórico contendo data, hora e a
quanto tempo ocorre o problema, a descrição com o último valor capturado, e sua criticidade. Para o envio
da mensagem de aviso por e-mail o usuário que será notificado deve ter um e-mail ajustado no seu cadastro,
e este e-mail deve estar ajustado na campo “Operações da Ação”.
5
RESULTADOS
Os dados capturados podem ser acompanhados em tempo real, de forma geral pela dashboard ou
detalhadamente pela guia “Dados Recentes”, ilustrada na Figura 10 a seguir. Na “Dados Recentes” podemos
verificar quando foi realizado a última captura, o último valor captura e a variação deste valor com relação
ao anterior, no “Histórico” podemos gerar um gráfico com todos os valores capturados ou apenas visualizar
os valores em uma tabela.
Figura 10 – Dados recentes
A melhora obtida pela automatização de ações como adição de espaço de armazenagem e
inicialização de serviços parados foi significativa. Conforme exemplo ilustrado na Figura 11 a seguir,
podemos verificar um aumento no espaço de armazenamento livre da partição “/apache” de 8,2% para
54,1%, ação que foi realizado automaticamente pelo Zabbix, pois ao receber as informações da captura
constata que está abaixo dos 10% estipulados e altera a trigger para o estado indicativo de “PROBLEMA”,
o que faz disparar a ação que envia o comando ao Zabbix Agent, que executará o script.
Figura 11 – Demonstração de ação
Para ter certeza que foi a ferramenta Zabbix quem realizou a operação descrita no paragrafo anterior,
é gerado um registro de eventos. Na Figura 12, a seguir, esta o registro da ação que adicionou o espaço de
armazenamento na partição “/apache”, nele podemos contatar o “Status” como executado no campo “Ações
de comando”, se a ação tivesse falhado o “Status” estaria como falha. Também podemos certificar a
agilidade que a ferramenta Zabbix realizou o procedimento, ao verificarmos o campo “Data” em “Detalhes
do evento” e o campo “Data” em “Ações de comando”, constatamos que a ferramenta levou apenas 2s para
processar o dado recebido, disparar o gatilho e efetuar a ação, claro que o procedimento do script levou mais
que 2s para finalizar sua execução no ativo, pois conforme a Figura 11, houve um intervalo de captura
(14:16) sem dados retornado, justamente porque o procedimento estava em execução.
Figura 12 – Registro de ação executada
Os resultados obtidos com a inicialização dos serviços estão ilustrados na Figura 13 a seguir, onde
propositalmente realizamos a parada do serviço Apache (invoke-rc.d apache2 stop), e seguindo intervalo de
captura de 120s ajustado para o serviço, constatamos que o Zabbix após a coleta (22:10:15), iniciou o
serviço automaticamente, ou seja, o serviço após parado ficou inativo por menos de dois minutos, sendo
inicializado sem intervenção humana.
Figura 13 – Ação serviço
6
CONSIDERAÇÕES FINAIS
O problema de descentralização e da existência de várias ferramentas para o monitoramento da
infraestrutura e dos ativos, foi sanado com a implementação da ferramenta Zabbix, a qual trouxe outros
ganhos com sua capacidade de reagir ao ambiente monitorado, seja enviando simples alertas por e-mail,
como também a execução de ações nos ativos, corrigindo falhas ou evitando que elas ocorram.
Como a ferramenta Zabbix possui uma grande capacidade de integração com o ambiente
monitorado, e graças a essa integração reage de forma eficaz, acredito que o objetivo de demonstrar a
possibilidade de automatizar a prevenção e resolução de falhas, utilizando-se da reatividade de uma
ferramenta de monitoramento está cumprida, como também acredito que essas funcionalidades podem ser
aprimoradas e aperfeiçoadas pelos seus utilizadores e por pesquisadores das áreas de gerência de redes e
inteligência artificial.
O que nossa equipe de TI está analisando e testando atualmente é a integração com os gerenciadores
de banco de dados Firebird e InterBase, para retirar as estatísticas de utilização dos bancos de dados, e
realizar o backup e a restauração destes, no momento ou antes de chegaram nos limites dos registradores. E
se possível realizar ações para corrigir bancos de dados danificados.
Duas grandes funcionalidades que não foram abordadas neste artigo, por no momento não haver
utilidade para a Fachini System, é o Zabbix Proxy, e a procura e registro automatizados dos ativos, onde o
Zabbix Server irá vascular a rede local identificando ativos e adicionando-os automaticamente ao seu
monitoramento, ou identificando os Zabbix Agent que irão automaticamente se comunicar com ele.
O Zabbix Proxy atua como um Zabbix Server colhendo informações dos ativos, mas de acordo com
o intervalo configurado, envia esses dados para o Zabbix Server principal, mantendo assim centralizado a
informação para os operadores da ferramenta. Esta ferramenta pode ser útil onde boa parte dos clientes
possuam, internamente, a mesma faixa de endereçamento IPv4, o que poderia levar a problemas de NAT e
colisões com mesmo endereço IPv4 nos ativos monitorados, ou mesmo evitando sobrecarregar o trafego de
rede, com o trafego gerado pelo monitoramento.
REFERÊNCIAS BIBLIOGRÁFICAS
ALVES, Maicon Melo. Linux: Performance & Monitoramento. Ed. Brasport, 2009. 201p.
COSTA. Felipe. Ambiente de Rede Monitorado com Nagios e Cacti. Ed. Ciência Moderna, 2008. 216p.
FEIGENBAUM, Edward A. e Barr, Avron. The Handbook of Artificial Intelligence. Wm. Kaufman,
1981.
FERBER, Jacques. Multi-Agent Systems: An Introduction to Distributed Artificial Intelligence.
Addison-Wesley Professional, 25 fev. 1999. 528p.
KOCH, Fernando Luiz e WESTPHALL, Carlos Becker. Decentralized Network Management using
Distributed Artificial Intelligence. Journal of Network and Systems Management. Plenum Publishing
Corporation. Estados Unidos da América, 2001. p. 291-313.
LESSA, Demian, O Protocolo de Gerenciamento RMON. Rede Nacional de Ensino e Pesquisa (RNP) 15
jan. 1999. Disponível em: <http://www.rnp.br/newsgen/9901/rmon.html>. Acesso em: 17 fev. 2010
MAGALHÃES, Ivan Luizio e PINHO, Walfrido Brito. Gerenciamento de Serviços de TI na Prática . Ed.
Novatec, 2007. 672p.
OGC. Service Delivery. Londres – Inglaterra: The Stationary Office, 2000.
OGC. Service Support. Londres – Inglaterra: The Stationary Office, 2000.
RIGNEY, Steve. Planejamento e gerenciamento de redes. Ed. Campus, 1996. 257p.
ROLSTON, David W. . Principles of Artificial Intelligence and Experts Systems. Mcgraw-Hill, jan.
1988. 257p.
RUSSELL, Stuart, NORVIG, Peter. Artificial Intelligence: A Modern Approach. Prentice-Hall, 30 dec.
2002. 1132p.
SOARES, Vicente N. Redes de Dados, teleprocessamento e gerência de redes. Ed. Érica, 1990. 200p.
TEIXEIRA, Ramos. Redes de Computadores, serviços, administração e segurança. Ed. Makron Books,
1999.
VIEIRA. Prof. Alexandre Timm. Disciplina Gerência de Redes, 2009 [material disponibilizado em aula]
WOOLDRIDGE, Michael, JENNINGS, Nicholas. Intelligent Agents: Theory and Practice. Knowledge
Engineering Review, 1994.