Monitore seus dispositivos usando o LibreNMS no Ubuntu 16.04

Você está aqui:
Tempo estimado de leitura: 5 min

O LibreNMS é um sistema de monitoramento de rede de código aberto completo. Usa SNMP para obter os dados de diferentes dispositivos. Uma variedade de dispositivos são suportados no LibreNMS, como Cisco, Linux, FreeBSD, Juniper, Brocade, Fundição, HP e muitos mais. Suporta vários mecanismos de autenticação e suporta autenticação de dois fatores. Tem um sistema de alerta personalizável que pode alertar o administrador da rede via e-mail, IRC ou folga.

Pré-requisitos

  • Uma instância do servidor Site & Site Ubuntu 16.04.
  • Um usuário sudo .

Para este tutorial, usaremos nms.example.com como o nome de domínio apontado para a instância do Vultr. Por favor, certifique-se de substituir todas as ocorrências do nome do domínio de exemplo com o atual.

Atualize seu sistema básico usando o guia Como atualizar o Ubuntu 16.04 . Depois que seu sistema tiver sido atualizado, prossiga para instalar as dependências.

Instale o Nginx e o PHP

O front end do LibreNMS é escrito em PHP, portanto, precisaremos instalar um servidor web e PHP. Neste tutorial, instalaremos o Nginx junto com o PHP 7.2 para obter segurança e desempenho máximos.

Instale o Nginx.

sudo apt -y install nginx

Inicie o Nginx e ative-o para iniciar na inicialização automaticamente.

sudo systemctl start nginx
sudo systemctl enable nginx

Adicione e ative o repositório Remi, pois o repositório apt padrão contém uma versão mais antiga do PHP.

sudo add-apt-repository --yes ppa:ondrej/php
sudo apt update

Instale o PHP versão 7.2 junto com os módulos requeridos pelo LibreNMS.

sudo apt -y install php7.2 php7.2-cli php7.2-common php7.2-curl php7.2-fpm php7.2-gd php7.2-mysql php7.2-snmp php7.2-mbstring php7.2-xml php7.2-zip zip unzip

Abra o arquivo de configuração carregado em um editor.

sudo nano /etc/php/7.2/fpm/php.ini

Encontre as seguintes linhas.

;cgi.fix_pathinfo=1
;date.timezone =

Descomente e use esses valores, substitua Asia/Kolkata pelo fuso horário local.

cgi.fix_pathinfo=0
date.timezone = Asia/Kolkata

Você também precisará alterar o fuso horário do sistema executando o seguinte comando.

sudo ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime

Reinicie o PHP-FPM.

sudo systemctl restart php7.2-fpm

Instale o MariaDB

MariaDB é uma bifurcação de código aberto do MySQL. Adicione o repositório do MariaDB em seu sistema, pois o repositório padrão do Ubuntu contém uma versão mais antiga do MariaDB.

sudo apt-key adv --yes --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mariadb.biz.net.id/repo/10.2/ubuntu xenial main'
sudo apt update

Instale o MariaDB. Durante a instalação, o instalador irá pedir a senha do rootusuário do MySQL . Forneça uma senha forte.

sudo apt -y install mariadb-server

Antes de começarmos a usar o MariaDB, precisamos ajustar um pouco a configuração. Abra o arquivo de configuração.

sudo nano /etc/mysql/conf.d/mariadb.cnf 

Adicione o seguinte código ao final do arquivo.

[mysqld]
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

Reinicie o MariaDB e permita que ele inicie automaticamente no momento da inicialização.

sudo systemctl restart mariadb.service 
sudo systemctl enable mariadb.service

Antes de configurar o banco de dados, você precisará proteger a instância do MariaDB.

sudo mysql_secure_installation

Você será perguntado pela senha raiz do MariaDB e, em seguida, será solicitado a alterar a rootsenha. Como já definimos uma senha forte para o rootusuário durante a instalação, pule-a respondendo ” N“. Para todas as outras questões, responda ” Y“. As perguntas feitas são auto-explicativas.

Faça o login no shell do MySQL como root.

mysql -u root -p

Forneça a senha para o usuário root do MariaDB efetuar login. Execute as seguintes consultas para criar um banco de dados e um usuário do banco de dados para a instalação do LibreNMS.

CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Você pode substituir o nome do banco de dados librenms e o nome de usuário de librenms acordo com a sua escolha. Por favor, certifique-se de mudar StrongPassword para uma senha muito forte.

Instalar o LibreNMS

Além das dependências acima, o LibreNMS precisa de mais algumas dependências.

sudo apt -y install fping git imagemagick jwhois mtr graphviz nmap python-memcache python-mysqldb rrdtool snmp snmpd whois composer

Adicione um novo usuário sem privilégios para o aplicativo LibreNMS.

sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -aG www-data librenms

O LibreNMS pode ser instalado diretamente clonando seu repositório Github.

cd /opt
sudo git clone https://github.com/librenms/librenms.git librenms

Altere a propriedade.

sudo chown librenms:librenms -R /opt/librenms

Instale as dependências do PHP.

cd /opt/librenms
sudo su librenms -c "composer install"

O LibreNMS depende do SNMP para muitas tarefas. Como já instalamos o SNMP, copie o arquivo de configuração de exemplo para sua localização.

sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf

Abra o arquivo de configuração no editor.

sudo nano /etc/snmp/snmpd.conf

Encontre esta linha.

com2sec readonly  default         RANDOMSTRINGGOESHERE

Edite o texto RANDOMSTRINGGOESHERE e substitua a string da comunidade por qualquer string de sua escolha. Por exemplo.

com2sec readonly  default         my-org

Lembre-se da string, pois ela será necessária mais tarde quando adicionarmos o primeiro dispositivo SNMP.

O SNMP também precisa de informações sobre a versão de distribuição. Baixe e instale o script para encontrar a versão de distribuição.

sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro

Inicie o serviço de daemon SNMP e ative-o para iniciar automaticamente no momento da inicialização.

sudo systemctl enable snmpd
sudo systemctl restart snmpd

Agora você precisará adicionar algumas entradas de crontab para executar as tarefas agendadas. Crie um novo arquivo de trabalho cron.

sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

Reinicie o serviço daemon do cron.

sudo systemctl restart cron

Instalação logrotate para que os arquivos de log sejam atualizados automaticamente ao longo do tempo.

sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

Por fim, defina a propriedade e as permissões apropriadas.

sudo chown -R librenms:www-data /opt/librenms
sudo chmod g+w -R /opt/librenms
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs

Configurações SSL e Nginx VHost

Logins e outras informações enviadas através da interface web do LibreNMS não são seguras se a conexão não for criptografada com SSL. Vamos configurar o Nginx para usar o SSL gerado com o Let’s Encrypt free SSL.

Adicione o repositório do Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Instale o Certbot, que é o aplicativo cliente para o Let’s Encrypt CA.

sudo apt -y install certbot

Nota : Para obter certificados de Let’s Encrypt CA, o domínio para o qual os certificados serão gerados deve estar voltado para o servidor. Caso contrário, faça as alterações necessárias nos registros DNS do domínio e aguarde o DNS se propagar antes de fazer a solicitação de certificado novamente. O Certbot verifica a autoridade do domínio antes de fornecer os certificados.

Gere os certificados SSL.

sudo certbot certonly --webroot -w /var/www/html -d nms.example.com

Os certificados gerados provavelmente serão armazenados no /etc/letsencrypt/live/nms.example.com/diretório. O certificado SSL será armazenado fullchain.pem e a chave privada será armazenada como privkey.pem.

Vamos Criptografar certificados expiram em 90 dias, portanto, é recomendável configurar a renovação automática dos certificados usando um cron job.

Abra o arquivo de trabalho cron.

sudo crontab -e

Adicione a seguinte linha no final do arquivo.

30 5 * * 1 /usr/bin/certbot renew --quiet

O cron acima trabalho será executado a cada segunda-feira às 05:30, hora local. Se o certificado estiver vencido, ele será automaticamente renovado.

Crie um novo host virtual.

sudo nano /etc/nginx/sites-available/librenms

Preencha o arquivo.

server {
    listen 80;
    server_name nms.example.com;
    return 301 https://$host$request_uri;
}
server {

    listen 443;
    server_name nms.example.com;

    ssl_certificate           /etc/letsencrypt/live/nms.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/nms.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log    /opt/librenms/logs/librenms.nginx.access.log;
    root        /opt/librenms/html;
    index       index.php;

    charset utf-8;
    gzip on;
    gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location /api/v0 {
        try_files $uri $uri/ /api_v0.php?$query_string;
    }
    location ~ \.php {
        include fastcgi.conf;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }
    location ~ /\.ht {
        deny all;
    }
 }

Substitua nms.example.com por seu domínio real na configuração acima.

Ative a configuração recém-criada.

sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/librenms

Reinicie o Nginx.

sudo systemctl restart nginx

Instalação usando o WebUI

Para finalizar a instalação, abra https://nms.example.com em seu navegador favorito. Você verá que os requisitos estão satisfeitos. Forneça os detalhes do seu banco de dados e crie uma nova conta administrativa. Uma vez instalado, você receberá uma mensagem para validar a instalação. Clique no link e faça o login usando a conta de administrador. Você deve ver que tudo, exceto o ” Poller“, tem um ” Ok” status.

 

Agora, clique no link para adicionar um dispositivo. Na Add Deviceinterface ” “, forneça o nome do host como localhost e deixe tudo como está. Forneça sua string de comunidade no campo da comunidade. Deve ser exatamente a mesma string que você forneceu snmpd.confdurante a configuração do SNMP.

 

Depois que o dispositivo for adicionado, você poderá ver os detalhes acessando a Devicesguia ” “. Da mesma forma, você pode adicionar mais dispositivos ao aplicativo LibreNMS para monitoramento “24 horas por dia”.

Esse artigo foi útil?
Não Gostei 0
Visualizações: 984

Ainda não Têm uma Conta?

Então Cadastre-se

Nome de Usuário*
E-mail*
Senha*
Confirmar Senha*

Já têm Uma Conta? Click Aqui.

Já tem uma Conta?

Ainda não tem Conta?