O documento descreve a ferramenta Cacti, que é um software livre para monitoramento de rede que coleta e armazena dados usando o RRDTool e gera gráficos. Ele explica como o Cacti funciona, os conceitos do RRDTool, fontes de dados, gráficos, gerenciamento de usuários e requisitos para instalação.
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Cacti
1. FACULDADE SUMARÉ
SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
Trabalho sobre Cacti
Francisco Aldevan Barbosa Costa – RA 1011354
São Paulo/SP
2. Índice
Introdução ................................................................................................................................ 3
Ferramenta Cacti...................................................................................................................... 3
Como funciona o Cacti ............................................................................................................ 4
Conceitos Básicos sobre RRDTool.......................................................................................... 5
Fontes de dados ....................................................................................................................... 6
Gráficos ................................................................................................................................... 6
Gerenciamento de Usuário ...................................................................................................... 6
Display Gráfico ....................................................................................................................... 7
Requisitos. ............................................................................................................................... 8
3.
4. Introdução
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 contribuições ao redor do mundo.
Ferramenta Cacti
Assim como o Nagios, o Cacti também é 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:
É 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.
Possui uma excelente interface construída com a utilização do PHP/MySQL.
3
5. A comunidade de usuários é vasta e ativa, portanto o suporte e atualizações são
de fácil acesso.
Permite a integração com outras ferramentas gratuitas, através de plugins.
A figura abaixo exibe alguns dos tipos de gráficos criados pela ferramenta
RRDTool e exibidos através da interface do Cacti.
Como funciona o Cacti
Nesta seção serão discutidas as três principais tarefas executadas pelo Cacti:
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 ao
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.
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
4
6. 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.
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.
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:
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
5
7. 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 é
extremamente reduzido, o que torna a ferramenta ideal para ambientes com
grande volume de dados.
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.
Fontes de dados
Para a coleta de dados é possível alimentar o Cacti com scripts externas e
comandos personalizados, juntamente com todos os dados que o usuário poderá
adicionar à interface alimentando o banco de dados MySQL. Cada script pode conter
argumentos que deve ser inserido para cada fonte de dados criado com o script (como
um endereço IP). As fontes de dados também podem ser criadas, que correspondem
aos dados reais sobre o gráfico.
Gráficos
Com as fontes de dados definidas, um gráfico RRDTool pode ser criado usando
os dados. O Cacti permite criar praticamente qualquer gráfico RRDTool usando todos
os tipos de gráfico padrão RRDTool. Possui uma área de seleção de cores e
preenchimento automático de texto que auxilia na criação de gráficos tornando o
processo mais fácil. Além de permitir diversas formas de exibição dos gráficos.
Gerenciamento de Usuário
Devido a diversas funções do Cacti é possível adicionar usuários e definir
permissões de acesso aos mesmos. Desta forma usuários não autorizados não tem
6
8. acesso para alterar alguns parâmetros, enquanto outros apenas podem visualizá-los
por exemplo. Além disto, cada usuário pode manter seus próprios ajustes gráficos para
diferentes preferências de visualização.
Display Gráfico
A exibição em árvore permite aos usuários criar "hierarquias gráficas" e gráficos
em árvore. Sendo uma maneira fácil de gerenciar e organizar um grande número de
gráficos. É possível exibir a lista que enumera o título de cada gráfico em uma grande
lista de links para o gráfico real.
Gráfico apresentado no Cacti
7
9. 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:
Um servidor com sistema operacional Linux ou variação Unix;
Acesso à rede.
RRDTool 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 ou superior para funções avançadas.
Um Web Server como Apache ou IIS.
8