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/
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
conseguiu resolver?
Pesquisando sobre tecnologia cheguei aqui. Conteúdos interessantes. Sua forma de escrever é muito boa, fica fácil entender. Parabéns pelo conteúdo.
Parabéns muito bom. Já usei muito. Mais prefiro o Libre NMS tem todos os recursos do Observium profissional gratuito
para abri a interface web bate o ip + o que? tem alguma porta ?
Parabéns pelo Tutorial.