Monitoramento com o Observium no Debian 10


Observium é uma ferramenta de gerenciamento e monitoramento de rede gratuita e de código aberto que pode ser usada para monitorar todos os dispositivos de rede. Ele é escrito em PHP e usa SNMP para coletar os dados do dispositivo conectado e monitorá-los usando uma interface da web.

Observium oferece suporte a vários hardwares de rede e sistemas operacionais, incluindo Linux, Windows, FreeBSD, Cisco, Dell, Netscaler, Huawei, Mikrotik e muito mais. O Observium oferece uma interface poderosa, simples e fácil de usar para monitorar a saúde e o status de sua rede.

Profissionalmente desenvolvido e mantido por uma equipe de experientes engenheiros de rede e administradores de sistemas, o Observium é uma plataforma projetada e construída por seus usuários.

A Comunidade Observium está disponível gratuitamente para todos e recebe atualizações e recursos duas vezes por ano. O Observium Professional adiciona acesso prioritário a atualizações diárias e novos recursos por uma pequena taxa anual.

Requisitos:

* Debian 10 (Buster) -> Instalação Limpa
* Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin no Debian 10 Buster “LAMP”
A instalação do phpMyAdmin não é necessária.

Instale os pacotes necessários:

# apt install snmp fping python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick wget

Crie o banco de dados do observium

# mariadb -u root -p

Não esqueça de alterar SUA_SENHA

CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY 'SUA_SENHA';
FLUSH PRIVILEGES;
QUIT;

Edições Observium

Como dito o Observium vem em duas edições, uma Open Source Community Edition lançada em um ciclo semestral e uma edição com recursos adicionais, correções rápidas de bugs e melhorias de recursos diariamente. Caso queira a versão “Pro” acesse https://www.observium.org/

Como a a gente é pobre 😀 (zueira) vamos instalar a versão Community Edition
Se desejar instalar o Community Edition, instale usando a versão .tar.gz mais recente.

Baixe o .tar.gz mais recente do Observium e descompacte:

# cd /var/www/
# wget http://www.observium.org/observium-community-latest.tar.gz
# tar zxvf observium-community-latest.tar.gz

Crie o diretório para armazenar RRDs e ous logs:

# mkdir /var/www/observium/rrd 
# mkdir /var/www/observium/logs

Ajustes as permissões:

# chown www-data. /var/www/observium/ -R 

Crie uma cópia do config.php.default para config.php e ajustes os valores do banco de dados colocando os valores criado no passo anterior:

# cp /var/www/observium/config.php.default /var/www/observium/config.php
# vim /var/www/observium/config.php
$config['db_extension'] = 'mysqli';
$config['db_host']      = 'localhost';
$config['db_user']      = 'observium';
$config['db_pass']      = 'SUA_SENHA';
$config['db_name']      = 'observium';

Configure o banco de dados:

# php /var/www/observium/discovery.php -u 

Retornará:

  ___   _                              _
 / _ \ | |__   ___   ___  _ __ __   __(_) _   _  _ __ ___
| | | || '_ \ / __| / _ \| '__|\ \ / /| || | | || '_ ` _ \
| |_| || |_) |\__ \|  __/| |    \ V / | || |_| || | | | | |
 \___/ |_.__/ |___/ \___||_|     \_/  |_| \__,_||_| |_| |_|
                     Observium Community Edition 20.9.10731
                                  https://www.observium.org

Install initial database schema ... done.
-- Updating database/file schema
416 -> 417 # (db) .. Done (0s).
417 -> 418 # (db) . Done (0s).
418 -> 419 # (db) .... Done (1s).
419 -> 420 # (db) .. Done (0s).
420 -> 421 # (db) ... Done (0s).
421 -> 422 # (db) .. Done (0s).
422 -> 423 # (db) ...... Done (0s).
423 -> 424 # (php)  Done (0s).
424 -> 425 # (db) . Done (0s).
425 -> 426 # (db) ............... Done (0s).
426 -> 427 # (db) ... Done (0s).
427 -> 428 # (db) ... Done (0s).
428 -> 429 # (db) ... Done (0s).
429 -> 430 # (db) (WARNING! Required MySQL version 5.6+ or MariaDB 10.0+).... Done (0s).
430 -> 431 # (db) ..... Done (0s).
431 -> 432 # (php)  Done (0s).
432 -> 433 # (db) ......... Done (0s).
433 -> 434 # (db) ... Done (0s).
434 -> 435 # (db) . Done (0s).
-- Done.

Como o php-mcrypt não está mais no repositório do Debian 10 (php.7.3) vamos instala-lo na mão:

# apt install php-dev libmcrypt-dev mcrypt
# pecl channel-update pecl.php.net
# pecl install channel://pecl.php.net/mcrypt-1.0.2

Edite o php.ini

# vim /etc/php/7.3/cli/php.ini

Inclua:

extension=mcrypt.so

Verifique se a extensão esta sendo carregada, deve retornar o valor mcrypt.

# php -m | grep mcrypt

Faremos a configuração do apache para que quando o servidor for acessado no navegado o mesmo já abra o Observium, caso você esteja instalando com outros serviços web, ou gosta das coisas organizadas pode pular para o próximo exemplo.

# vim /etc/apache2/sites-available/000-default.conf

Ajuste para:

<VirtualHost *:80>
    ServerAdmin noc@remontti.com.br

    DocumentRoot /var/www/observium/html

    <FilesMatch \.php$>
      SetHandler application/x-httpd-php
    </FilesMatch>

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>

    <Directory /var/www/observium/html/>
            DirectoryIndex index.php
            Options FollowSymLinks MultiViews
            AllowOverride All
            Require all granted
    </Directory>

    ErrorLog  ${APACHE_LOG_DIR}/error_observium.log    
    CustomLog  ${APACHE_LOG_DIR}/access_observium.log combined
    ServerSignature On

</VirtualHost>

Caso você queira proteger para algumas classes de IPs e usar um subdomíno pode usar este modelo. (Mas você pode filtrar por IP também no modelo anterior ajustando os “Require”)

# vim /etc/apache2/sites-available/observium.conf
<virtualhost *:80>
   ServerName observium.remontti.com.br
   ServerAdmin noc@remontti.com.br

   # Sem permissões será redirecionada para
   ErrorDocument 403 http://www.remontti.com.br
 
   DocumentRoot /var/www/observium/html

    <FilesMatch \.php$>
      SetHandler application/x-httpd-php
    </FilesMatch>

    <Directory />
      Options FollowSymLinks
      AllowOverride None
    </Directory>
 
   <Directory /var/www/observium/html/>
      DirectoryIndex index.php
      Options FollowSymLinks MultiViews
      AllowOverride All
      Require all denied
      <RequireAll>
         <RequireAny>
            Require ip 127.0.0.1 ::1 45.80.51.0/29 2804:f123:bebe:c0ca::/64
         </RequireAny>
      </RequireAll>
   </Directory>
 
   ErrorLog ${APACHE_LOG_DIR}/error_observium.log
   CustomLog ${APACHE_LOG_DIR}/access_observium.log combined
 
</VirtualHost>

Habilite a configuração criada acima:

# a2ensite observium

Habilite o o modulo rewrite

# a2enmod rewrite

Reinicie o serviço do apache

# systemctl restart apache2

Vamos utilizar as MIBs do Observium, para isso vamos chama-las (Você pode adicionar outras, verifique quais disponiveis em /var/www/observium/mibs).

# vim /etc/snmp/snmp.conf

Ajuste:

mibs : /var/www/observium/mibs/rfc:/var/www/observium/mibs/net-snmp:/var/www/observium/mibs/mikrotik:/var/www/observium/mibs/huawei

Precisamos ajustar

Observium opera em uma frequência de poller fixa de 5 minutos ou 300 segundos. O processo poller-wrapper deve ser executado nesta frequência NÃO funcionará de outra forma. então vamos criar o /etc/cron.d/observium

# vim /etc/cron.d/observium

Adicione:

# Execute uma descoberta completa de todos os dispositivos uma vez a cada 6 horas
# Run a complete discovery of all devices once every 6 hours
33  */6   * * *   root    /var/www/observium/discovery.php -h all >> /dev/null 2>&1

# Execute a descoberta automática de dispositivos recém-adicionados a cada 5 minutos
# Run automated discovery of newly added devices every 5 minutes
*/5 *     * * *   root    /var/www/observium/discovery.php -h new >> /dev/null 2>&1

# Execute o multithreaded poller wrapper a cada 5 minutos
# Run multithreaded poller wrapper every 5 minutes
*/5 *     * * *   root    /var/www/observium/poller-wrapper.py >> /dev/null 2>&1

# Execute o script de manutenção diariamente para syslog, log de eventos e log de alerta
# Run housekeeping script daily for syslog, eventlog and alert log
13 5      * * *   root    /var/www/observium/housekeeping.php -ysel >> /dev/null 2>&1

# Execute o script de manutenção diariamente para rrds, portas, entradas órfãs no banco de dados e dados de desempenho
# Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data
47 4      * * *   root    /var/www/observium/housekeeping.php -yrptb >> /dev/null 2>&1

Reinicie o Cron:

# systemctl restart cron

Adicione o primeiro usuário, use o level 10 para o administrador:

# php /var/www/observium/adduser.php <usuario> <senha> <level>

Ex.:

# php /var/www/observium/adduser.php admin suasenha 10

Adicione um primeiro dispositivo para monitorar: (Não esqueça de configurar o SNMP)

# php /var/www/observium/add_device.php <hostname> <community> v2c
# php /var/www/observium/add_device.php 10.0.0.100 publicsnmp v2c

Agora acesse seu servidor em seu navegador e entre com usuário e senha criado.

Parabéns!

Espero que tenha lhe instigado/inspirado a buscar mais aprender um pouquinho +

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Participe do canal no telegram para ficar atualizado sempre que publicar um novo tutorial.

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Fonte:
https://docs.observium.org/install_debian/
https://docs.observium.org/web_config/
https://docs.observium.org/dashboard/

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

8 Resultados

  1. Clinton disse:

    Deu tudo certo mas nao to conseguindo utilizar as MIBs
    snmpwalk -v2c -c public 10.0.0.100
    /var/www/observium/mibs/rfc: No such file or directory
    Failed to parse MIB file /var/www/observium/mibs/net-snmp
    Failed to parse MIB file /var/www/observium/mibs/mikrotik
    Failed to parse MIB file /var/www/observium/mibs/huawei

    Se alguem puder ajufar

  2. JORGE BORGES disse:

    Pesquisando sobre tecnologia cheguei aqui. Conteúdos interessantes. Sua forma de escrever é muito boa, fica fácil entender. Parabéns pelo conteúdo.

  3. Adeilton Jr disse:

    Parabéns muito bom. Já usei muito. Mais prefiro o Libre NMS tem todos os recursos do Observium profissional gratuito

  4. Michael viana disse:

    para abri a interface web bate o ip + o que? tem alguma porta ?

  5. Diogo disse:

    Parabéns pelo Tutorial.

  1. 23 de abril de 2021

    […] LibreNMS é um fork do Observium […]

  2. 9 de abril de 2022

    […] Brocade, Foundry, HP e muitos mais. Um informação importante é que LibreNMS é um fork do Observium, ou seja, uma derivação da […]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *