FACULDADE SUMARÉ


SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES




                Trabalho sobre Cacti




                          Francisco Aldevan Barbosa Costa – RA 1011354




                   São Paulo/SP
Í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
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
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
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
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
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
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

Cacti

  • 1.
    FACULDADE SUMARÉ SUPERIOR DETECNOLOGIA 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
  • 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 deusuá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 ferramentaspossibilitam 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 resolveeste 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 alteraralguns 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