Neste artigo, Marcio Seiji tenta de forma objetiva nos mostrar a facilidade da implementacão do Cacti com alguns plugins adicionais, utilizando-se do ports do FreeBSD. Ao mesmo tempo que ele detalha todo o processo, ele reune vários pontos que poderiam ser dificuldades em uma implementacão padrão.
Neste tutorial utilizei o FreeBSD 7.0 e fiz a instalação full (a opção All na instalação) e eu vou tentar detalhar ao máximo o tutorial, com alguns detalhes que eu tive que procurar a parte de todos os tutoriais que eu encontrei. Espero que ajude.
Antes de instalar o Cacti será necessário instalar o famoso FAMP (FreeBSD + Apache + MySQL + PHP) e o rrdtool também.
Para a instalação do FAMP iremos utilizar o ports (/usr/ports).
Instalando MySQL A instalação do MySQL é bem simples, basta executar os comandos abaixo: # cd /usr/ports/databases/mysql51-server/ # make install clean # mysql_install_db --user=mysql
Subindo o MySQL: # mysqld_safe --user=mysql &
Instalando Apache
Para instalar o Apache execute os comandos abaixo:
# cd /usr/ports/www/apache22 # make install clean
Agora vamos subir o apache com o comando: # apachectl start
Verificando se o apache subiu: # netstat -na -f inet | grep 80
Que estranho o apache não subiu. Vamos verificar o log: # tail /var/log/httpd-error.log [Wed Oct 15 15:31:20 2008] [warn] Init: Session Cache is not configured [hint: SSLSessionCache] [Wed Oct 15 15:31:20 2008] [alert] (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of "free" Configuration Failed Para resolver este problema é simples, basta editar o arquivo [i]/etc/hosts[/i] com o hostname da máquina, no exemplo o hostname é free: # vi /etc/hosts
Procure pela linha 127.0.0.1 e a deixe assim: 127.0.0.1 free localhost localhost.my.domain
Caso queira que toda a vez que máquina for reiniciada subir com o hostname é necessário editar o arquivo [i]/etc/rc.conf[/i]: free# vi /etc/rc.conf
E adicionar a seguinte linha (mude o free para o nome desejado): hostname="free"
Vamos tentar subir o apache novamente (não precisa se preocupar com os warnings): free# apachectl start httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName [Wed Oct 15 15:46:29 2008] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
Verificando se subiu: free# netstat -na -f inet | grep 80 tcp46 0 0 *.80 *.* LISTEN Apache instalado!!
Instalando PHP
Para instalar o PHP será necessário instalar algumas libs. Siga os comando abaixo para a instalação de todas as libs do PHP: free# cd /usr/ports/lang/php5/ free# make install clean
Selecione a opção: [X] APACHE Build Apache module
Será necessário instalar outras libs, segue abaixo as libs necessárias: free# cd /usr/ports/databases/php5-mysql/ free# make install clean
free# cd /usr/ports/devel/php5-pcre free# make install clean
free# cd /usr/ports/www/php5-session/ free# make install clean
free# cd /usr/ports/net/php5-sockets/ free# make install clean
free# cd /usr/ports/net-mgmt/php5-snmp/ free# make install clean
free# cd /usr/ports/textproc/php5-xml free# make install clean
PHP instalado!!
Instalando RRDTool
Execute os comandos abaixo: free# cd /usr/ports/databases/rrdtool free# make install clean
RRDTool instalado!!
Configurando Apache para ter suporte ao PHP
Procure pela linha DirectoryIndex index.html e deixe assim: DirectoryIndex index.html index.php Procure por AddType e adicione as linhas: AddType application/x-httpd-php .php AddType application/x-httpd-source .phps Para testar vamos ao diretório do Apache e criar um arquivo phpinfo.php para testar o PHP: free# cd /usr/local/www/apache22/data free# vi phpinfo.php
<?php phpinfo(); ?> Deverá retornar algo parecido com a imagem abaixo: http://sites.google.com/site/marcioseiji/_/rsrc/1224109214983/Home/tutoriais/freebsd/instalacao-cacti-plugins/phpinfo.png
Caso não retorne essa página reveja o tutorial e veja se não esqueceu de nenhum passo.
Agora estamos pronto para instalar o cacti. A versão do cacti utilizada foi a 0.8.7b.
Vamos voltar ao diretorio raiz e baixar o cacti: free# cd free# wget http://www.cacti.net/downloads/cacti-0.8.7b.tar.gz bash: wget: command not found Ops!! Precisamos instalar o wget: free# cd /usr/ports/ftp/wget free# make install clean Pronto, agora podemos baixar o cacti: free# cd free# wget http://www.cacti.net/downloads/cacti-0.8.7b.tar.gz --17:25:36-- http://www.cacti.net/downloads/cacti-0.8.7b.tar.gz => `cacti-0.8.7b.tar.gz' Resolving www.cacti.net... 66.59.109.191 Connecting to www.cacti.net|66.59.109.191|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 2,005,650 (1.9M) [application/x-gzip]
100%[===========================================================================================>] 2,005,650 182.33K/s ETA 00:00
17:25:52 (128.99 KB/s) - `cacti-0.8.7b.tar.gz' saved [2005650/2005650]
Descompactar, mover para o diretório do Apache e criar um link simbólico: free# tar zxf cacti-0.8.7b.tar.gz free# mv cacti-0.8.7b /usr/local/www/apache22/data/ free# cd /usr/local/www/apache22/data/ free# ln -fs /usr/local/www/apache22/data/cacti-0.8.7b/ cacti
Vamos criar as tabelas no banco de dados do cacti: free# cd /usr/local/www/apache22/data/cacti free# mysqladmin create cacti free# mysql cacti < cacti.sql
Vamos criar o user cactiuser para acesso as tabelas do cacti (como não definimos nenhuma senha para o user root a senha está em branco): free# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.1.22-rc FreeBSD port: mysql-server-5.1.22
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> GRANT ALL PRIVILEGES ON cacti.* to cactiuser@localhost IDENTIFIED BY 'suasenha'; Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
mysql> exit Bye free#
Agora vamos editar o arquivo para configurar o user do banco de dados que o cacti irá usar: free# pwd /usr/local/www/apache22/data/cacti-0.8.7b free# vi include/config.php Procure pelo seguinte trecho: $database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cactiuser"; $database_port = "3306"; Modifique as linhas que forem necessárias, neste exemplo apenas a linha [i]$database_password = "cactiuser";[/i] deverá ser mudada: $database_password = "suasenha";
Bom agora vem a parte legal, vamos subir o cacti. Digite o endereço do server no browser com o /cacti, por exemplo, http://172.16.20.200/cacti Deverá aparecer uma tela parecida com a abaixo: http://sites.google.com/site/marcioseiji/_/rsrc/1224295203347/Home/tutoriais/freebsd/instalacao-cacti-plugins/cacti-install-1.png Clique em [i]Next[/i]. A próxima tela deve ser a seguinte: http://sites.google.com/site/marcioseiji/_/rsrc/1224295243021/Home/tutoriais/freebsd/instalacao-cacti-plugins/cacti-install-2.png Seleciona uma New Install e clique em Next. http://sites.google.com/site/marcioseiji/_/rsrc/1224295281993/Home/tutoriais/freebsd/instalacao-cacti-plugins/cacti-install-3.png Verifique se todos os campos estão com [OK: FILE FOUND], caso não esteja verifique a instalação dos pacotes e libs citados no tutorial. Clique em Finish. http://sites.google.com/site/marcioseiji/_/rsrc/1224295400520/Home/tutoriais/freebsd/instalacao-cacti-plugins/cacti-login.png Deverá aparecer a tela de login, por padrão o user é admin e a senha é admin. Logo que logar será solicitado para mudar a senha. http://sites.google.com/site/marcioseiji/_/rsrc/1224295474529/Home/tutoriais/freebsd/instalacao-cacti-plugins/cacti-passwd.png Modifique a senha se clique em [i]Save[/i]. E a tela do cacti será aberta como mostra a imagem abaixo: http://sites.google.com/site/marcioseiji/_/rsrc/1224295534878/Home/tutoriais/freebsd/instalacao-cacti-plugins/inicial.png PRONTO!!!!! O cacti está instalado. Agora vamos instalar o [i]Plugin Architecture v2.1[/i] que possibilita instalar outros plugins adicionando ainda mais as funcionalidades do cacti.
Para instalar o Plugin Architecture basta seguir os passos a seguir: free# cd free# wget http://cactiusers.org/downloads/cacti-plugin-arch.tar.gz --21:12:20-- http://cactiusers.org/downloads/cacti-plugin-arch.tar.gz => `cacti-plugin-arch.tar.gz' Resolving cactiusers.org... 209.189.228.146 Connecting to cactiusers.org|209.189.228.146|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-arch.tar.gz [following] --21:12:21-- http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-arch.tar.gz => `cacti-plugin-arch.tar.gz' Resolving mirror.cactiusers.org... 208.113.141.142, 209.189.228.147 Connecting to mirror.cactiusers.org|208.113.141.142|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 173,327 (169K) [application/x-tar]
100%[===========================================================================================>] 173,327 189.13K/s
21:12:22 (188.66 KB/s) - `cacti-plugin-arch.tar.gz' saved [173327/173327]
free# tar zxf cacti-plugin-arch.tar.gz free# mv cacti-plugin-arch /usr/local/www/apache22/data/cacti/
Já baixamos e movemos para a pasta do cacti, agora basta aplicar o patch como mostra abaixo: free# cd /usr/local/www/apache22/data/cacti/ free# patch -N -p1 < cacti-plugin-arch/cacti-plugin-0.8.7b-PA-v2.1.diff free# mysql cacti < cacti-plugin-arch/pa.sql
Plugin Architecture v2.1 instalado. Agora precisamos modificar o arquivo global.php com os dados de user e senha no banco de dados. free# vi /usr/local/www/apache22/data/cacti/include/global.php
Procure pelas seguintes linhas: $database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cactiuser"; $database_port = "3306";
$config['url_path'] = '/';
Modifique as linhas que forem necessárias, neste exemplo apenas as linhas [i]$database_password = "cactiuser";[/i] e [i]$config['url_path'] = '/';[/i] deveram ser mudadas: $database_password = "suasenha";
$config['url_path'] = '/cacti/'; Pronto agora já podemos instalar os plugins que queremos. Vamos instalar como exemplo o [i]Monitor v0.8.2[/i]. Para fazer isso é simples, segue abaixo: free# cd free# wget http://cactiusers.org/downloads/monitor.tar.gz --21:19:07-- http://cactiusers.org/downloads/monitor.tar.gz => `monitor.tar.gz' Resolving cactiusers.org... 209.189.228.146 Connecting to cactiusers.org|209.189.228.146|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://mirror.cactiusers.org/downloads/plugins/monitor-0.8.2.tar.gz [following] --21:19:07-- http://mirror.cactiusers.org/downloads/plugins/monitor-0.8.2.tar.gz => `monitor-0.8.2.tar.gz' Resolving mirror.cactiusers.org... 209.189.228.147, 208.113.141.142 Connecting to mirror.cactiusers.org|209.189.228.147|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 241,873 (236K) [application/x-gzip]
100%[===========================================================================================>] 241,873 201.60K/s
21:19:09 (201.22 KB/s) - `monitor-0.8.2.tar.gz' saved [241873/241873]
free# tar zxf monitor-0.8.2.tar.gz free# mv monitor /usr/local/www/apache22/data/cacti/plugins/
Só falta modificar o [i]global.php[/i] adicionando o plugin, desta forma: free# vi /usr/local/www/apache22/data/cacti/include/global.php
Procure pelo seguinte trecho (que vai estar logo abaixo da configuração do banco de dados): $plugins = array(); //$plugins[] = 'thold'; Para adicionar o plugin coloque a seguinte linha: $plugins[] = 'monitor';
Plugin adicionado!! Será necessário "ativar" o plugin na interface do cacti. No menu da esquerda selecione a opção User Management: http://sites.google.com/site/marcioseiji/_/rsrc/1224297919884/Home/tutoriais/freebsd/instalacao-cacti-plugins/utilities.png Selecione o usuário admin ou o usuário que poderá visualizar o monitor: http://sites.google.com/site/marcioseiji/_/rsrc/1224298118535/Home/tutoriais/freebsd/instalacao-cacti-plugins/admin.png Na parte do [i]Realm Permissions[/i], selecione os check box [i]Plugin Management[/i] e [i]View Monitoring[/i]: http://sites.google.com/site/marcioseiji/_/rsrc/1224298338636/Home/tutoriais/freebsd/instalacao-cacti-plugins/plugin.png Note a aba Monitor que apareceu no menu superior: http://sites.google.com/site/marcioseiji/_/rsrc/1224298366043/Home/tutoriais/freebsd/instalacao-cacti-plugins/menu-monitor.png PRONTO!!!! Cacti com suporte a plugins e o plugin Monitor instalados.
Espero que este tutorial tenha ajudado aos que desejam instalar e utilizar essa poderosa ferramenta OpenSource.
by Márcio Seiji |