Ir para o conteúdo
ou

Software livre Brasil

Tela cheia

"Observe" sua Rede usando o Observium

21 de Fevereiro de 2013, 0:00 , por Alex Sandro de Lacerda Vitola - | Ninguém está seguindo este artigo ainda.
Visualizado 217 vezes
Licenciado sob GNU FDL

Quando se fala em sistema de monitoramento de rede OpenSource um nome vem a cabeça: Cacti (*). É quase uma unanimidade, pela facilidade de utilização, 
por estar "empacotado" para as principais distribuições Linux, bastando um <apt-get/yum> install cacti e o sistema já está instalado. E também pela ampla 
documentação.

Há algum tempo atrás por uma indicação de um colega da lista de Discussão GTER (**) conheci o Observium (***) e o tenho utilizado desde então, não como 
um substituto ao Cacti mas sim como um complemento.

Sei que isso não é uma métrica muito confiável mas fazendo uma busca pelo termo "cacti network monitoring" nos principais mecanismos de busca que temos 
hoje os números são consideráveis.

Busca pelo termo "cacti network monitoring"

* Google -> Aproximadamente 154.000 resultados
* Bing -> Aproximadamente 104.000 resultados
* Yahoo -> Aproximadamente 102.000 resultados

Busca pelo termo "observium network monitoring"

* Goggle -> Aproximadamente 8.460 resultados
* Bing -> Aproximadamente 6.300 resultados
* Yahoo -> Aproximadamente 6.320 resultados

Em alguns sites do Brasil

Br-Linux <http://br-linux.org> - Uma referência em 2009

Viva o Linux <http://www.vivaolinux.com.br> - Nenhuma referência

UnderLinux <http://www.underlinux.com.br> -Menos de 5 referências no Fórum de usuários

Introdução

Este guia mostrar instalar o Observium em um Linux CentOS / RHEL / Scientific Linux.

Neste exemplo, usei o CentOS 6.3 64Bits, mas para outras distribuições o processo é semelhante, pois a instalação do Observium é feita por SVN.

- Repositórios

Para obter todos os módulos adicionais é ideal ter os repositórios adicionais RPM Forge e EPEL

~# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
~# rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
~# rpm -Uvh http://mirror.globo.com/epel/6/x86_64/epel-release-6-8.noarch.rpm

- Pacotes

~# yum install httpd.x86_64 \
mysql-server.x86_64 \
mysql.x86_64 \
php-gd.x86_64 \
php-mcrypt
php-mysql.x86_64 \
php-pear net-snmp.x86_64 \
php-pear.noarch \
php-snmp.x86_64 \
php.x86_64 \
fping.x86_64 \
graphviz.x86_64 \
ImageMagick.x86_64 \
jwhois.x86_64 \
net-snmp-utils.x86_64 \
nmap.x86_64 \
OpenIPMI-tools.x86_64 \
rrdtool.x86_64 \
subversion.x86_64 \
vixie-cron.x86_64 \

~# pear install Net_IPv6
~# pear install Net_IPv4

- Instalação do Observium

Criar o diretório:

~# mkdir -p /opt/observium && cd /opt

Checar a última versão no repositório do Subversion:

~# svn co http://www.observium.org/svn/observer/trunk observium

Mudar para o diretório de instalação:

~# cd /opt/observium

- Base de Dados

Criar a base de dados e o usuário

mysql> CREATE DATABASE observium;
mysql> GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY '<Senhas>';

- Configuração

Copie o arquivo de configuração padrão e faça as alterações necessárias:

~# cp config.php.default config.php

Adicione uma entrada para o fping

$config['fping'] = "/usr/sbin/fping";

Configure o schema da base de dados:

~# php includes/sql-schema/update.php

Alguns erros devem aparecer, isso é normal. Mas se forem mais do que 6 revise sua configuração.

Crie os diretórios graphs e rrd (lembre-se ainda estamos abaixo do diretório /opt/observium):

~# mkdir graphs rrd
~# chown apache.apache graphs rrd

Obs.: O sistema não aceita rodar como um diretório (http://www.dominio.com/observium)

Adicionar o primeiro usuário (use o nível 10 para admin):

~# cd /opt/observium
~# ./adduser.php <username> <password> <level>

Adicione o primeiro dispositivo para ser monitorado:

~# ./addhost.php <hostname> <community> v2c

Obs.: DEVE obrigatoriamente ter um nome válido, seja por DNS ou pelo /etc/hosts

Faça uma verificação inicial do novo dispositivo:

~# ./discovery.php -h all
~# ./poller.php -h all

Adicione na crontab, (ex.: /etc/cron.d/observium) o conteúdo abaixo:

33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1
*/5 * * * * root /opt/observium/poller.php -h all >> /dev/null 2>&1

Faça um reload/restart no serviço:

~# /etc/init.d/crond reload/restart

O sistema já estará disponível em http://<server ip>

- Atualização

É utilizado o SVN para a atualização, bastando executar o comando abaixo:

~# cd /opt/observium
~# svn update
~# ./discovery.php -h new

- Billing

Uma função muito útil e interessante é o Billing. Onde você pode contabilizar a utilização de uma ou mais portas.




Como podemos ver na imagem, pelo menos aqui o Barrichello esta na frente de do Schumacher e do Senna :-)

Para ativá-lo altere a linha abaixo no config.php:

$config['enable_billing'] = 1; 

E adicione as linhas abaixo no /etc/cron.d/observium:

*/5 * * * * root /opt/observium/poll-billing.php >> /dev/null 2>&1
01 * * * * root /opt/observium/billing-calculate.php >> /dev/null 2>&1

- Desativar itens

Por padrão quando você adiciona um dispositivo ele traz todas as configurações de rede.

Num servidor Windows, que eu usei como exemplo para montar este tutorial, ele acaba trazendo
uma série de interfaces que não precisam ser vistas, o que num primeiro momento pode deixar
o visual um pouco poluído, ao contrário do Cacti que você precisa especificar o quer que seja
monitorado.

Na imagem abaixo podemos ver o Item Ports com todos s itens habilitados

 




Para desativar estes itens siga os passos abaixo ao acessar a interface web:

Devices > All Devices > *NomeDoServidor* > Edit (a chave que fica bem escondida bem à direita) > Ports

Nas colunas "Polling" e "Alerts" deixe todos os itens no "No" com excessão da placa de rede que
você quer monitorar.

Na mesma tela no item "Modules" estão todos os módulos que por padrão vem todos ativados.


- Redirecionar todo tráfego HTTP para HTTPS

Pode parecer óbvio mas tenho por padrão não usar HTTP para qualquer serviço Web, somente HTTPS.

Para isso redireciono todo tráfego, para isso altero nos arquivos abaixo:

/etc/httpd/conf/httpd.conf

NameVirtualHost *:80

<VirtualHost *:80>

RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

</VirtualHost>

''/etc/httpd/conf.d/ssl.conf (arquivo padrão do ssl)''

LoadModule ssl_module modules/mod_ssl.so

Listen 443

SSLPassPhraseDialog builtin

SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300
NameVirtualHost *:443

SSLMutex default

SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin

SSLCryptoDevice builtin

<VirtualHost *:443>

ServerName wiki.domain.net:443
ServerAlias wiki.domain.com:443

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>

SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

/etc/httpd/conf.d/ssl-observium.conf (este arquivo não existe, deve ser criado)

<VirtualHost *:443>

ServerName observium.domain.net:443
ServerAlias observium.domain.com:443

DocumentRoot "/opt/observium/html"

<Directory /opt/observium/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AuthUserFile /var/www/.htpasswd
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
Order allow,deny
Allow from all
</Directory>

ErrorLog logs/ssl-observium_error_log
TransferLog logs/ssl-observium_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>

SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost> 

Além de tudo proteger o acesso com senha

~# htpasswd /var/www/.htpasswd admin

- Tela dos Dispositivos configurados com algumas informações básicas:



- Tela de Status dos dispositivos:

 



- Algumas outras checagens que ele faz por padrão (Memory, CPU e Disk Usage)




- Referências

Este tutorias foi baseado na documentação oficial, disponível no site http://www.observium.org

Lista de Discussão: http://postman.memetic.org/cgi-bin/mailman/listinfo/observium



(*) http://www.cacti.net/
(**) https://eng.registro.br/mailman/listinfo/gter
(***) http://www.observium.org


para conhecer um demo visite o site http://demo.observium.org/


Tags deste artigo: gerenciamento redes