Monitoramento · 24 min read · Nov 30, 2025
Como Instalar e Monitorar serviços usando a Ferramenta de Monitoramento Netdata no Rocky Linux 8

Netdata é um sistema de monitoramento de código aberto para sistemas operacionais baseados em Linux. Ele fornece desempenho e monitoramento em tempo real usando painéis bonitos e detalhados. Oferece centenas de ferramentas para monitorar servidores, CPU, uso de memória, processos do sistema, uso de disco, redes IPv4 e IPv6, firewall do sistema e aplicações como Nginx, MySQL, MongoDB, Redis, ElasticSearch, PostgreSQL, PHP-FPM, etc. Integra-se com outras ferramentas de monitoramento, como Prometheus, Graphite, Kafka, Grafana e mais.
Neste tutorial, você aprenderá a instalar e monitorar vários serviços usando a Ferramenta Netdata em um servidor Rocky Linux 8. Usaremos o Netdata para rastrear as métricas de uma pilha LEMP e do motor Docker.
Pré-requisitos
- Um servidor executando Rocky Linux 8.
- Um usuário não-root com privilégios sudo.
- Um Nome de Domínio Totalmente Qualificado (FQDN) como
netdata.example.comapontando para seu servidor. - Uma conta e espaço de trabalho do Slack para receber notificações.
- Uma conta SMTP com um serviço de e-mail como Amazon SES ou Mailgun.
- Desativar o SELinux.
Passo 1 - Configurar o Firewall
O primeiro passo é configurar o firewall. O Rocky Linux usa o Firewall Firewalld. Verifique o status do firewall.
$ sudo firewall-cmd --state
running
O firewall funciona com diferentes zonas, e a zona pública é a padrão que usaremos. Liste todos os serviços e portas ativos no firewall.
$ sudo firewall-cmd --permanent --list-services
Deve mostrar a seguinte saída.
cockpit dhcpv6-client ssh
Permita as portas HTTP e HTTPS.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Verifique novamente o status do firewall.
$ sudo firewall-cmd --permanent --list-services
Você deve ver uma saída semelhante.
cockpit dhcpv6-client http https ssh
Recarregue o firewall para habilitar as alterações.
$ sudo firewall-cmd --reload
Passo 2 - Instalar o NetData
O Netdata vem com um script de instalação que pode funcionar em qualquer distribuição Linux. Execute o seguinte comando para baixar e executar o script de instalação.
$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Você será solicitado a inserir sua senha sudo para habilitar os privilégios sudo. Digite Y para confirmar a adição do repositório Netdata e instalá-lo em seu servidor.
O instalador do Netdata habilita e inicia automaticamente o serviço. Verifique o status do serviço.
$ sudo systemctl status netdata
? netdata.service - Monitoramento de desempenho em tempo real
Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2022-04-11 12:09:12 UTC; 13s ago
Main PID: 19443 (netdata)
Tasks: 32 (limit: 11412)
Memory: 52.0M
CGroup: /system.slice/netdata.service
??19443 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D
??19448 /usr/sbin/netdata --special-spawn-server
??19937 /usr/libexec/netdata/plugins.d/apps.plugin 1
??19944 /usr/libexec/netdata/plugins.d/go.d.plugin 1
Apr 11 12:09:12 netdata systemd[1]: Started Monitoramento de desempenho em tempo real.
.......
Se seu serviço não estiver iniciado ou habilitado, você pode fazê-lo usando o seguinte comando.
$ sudo systemctl enable netdata --now
Execute o seguinte comando para verificar as portas abertas e o processo que as utiliza.
$ sudo ss -plnt
Você deve obter uma saída semelhante. O Netdata usa a porta 19999 para seu painel, visto na saída abaixo. O Netdata usa a porta 8125 para receber estatísticas de outras aplicações.
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:8125 0.0.0.0:* users:(("netdata",pid=22496,fd=29))
LISTEN 0 128 0.0.0.0:19999 0.0.0.0:* users:(("netdata",pid=22496,fd=6))
......
LISTEN 0 128 [::1]:8125 [::]:* users:(("netdata",pid=22496,fd=28))
LISTEN 0 128 [::]:19999 [::]:* users:(("netdata",pid=22496,fd=7))
Passo 3 - Instalar SSL
Para instalar um certificado SSL usando o Let’s Encrypt, precisamos instalar a ferramenta Certbot.
Primeiro, você precisa baixar e instalar o repositório EPEL.
$ sudo dnf install epel-release
Execute os seguintes comandos para instalar o Certbot.
$ sudo dnf install certbot
Gere o certificado SSL.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d netdata.example.com
O comando acima irá baixar um certificado para o diretório /etc/letsencrypt/live/netdata.example.com em seu servidor.
Gere um certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Crie um diretório raiz de desafio para a renovação automática do Let’s Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Crie um Cron Job para renovar o SSL. Ele será executado todos os dias para verificar o certificado e renová-lo, se necessário. Para isso, primeiro crie o arquivo /etc/cron.daily/certbot-renew e abra-o para edição.
$ sudo nano /etc/cron.daily/certbot-renew
Cole o seguinte código.
#!/bin/sh
certbot renew --cert-name netdata.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Altere as permissões do arquivo da tarefa para torná-lo executável.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Passo 4 - Instalar e Configurar o Nginx
Instalaremos a versão mais recente do Nginx. Crie e abra o arquivo /etc/yum.repos.d/nginx.repo para edição.
$ sudo nano /etc/yum.repos.d/nginx.repo
Cole as seguintes linhas nele.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Instale o Nginx e as ferramentas HTTPD.
$ sudo dnf install nginx httpd-tools
Verifique a instalação.
$ nginx -v
nginx version: nginx/1.20.2
Habilite e inicie o serviço Nginx.
$ sudo systemctl enable nginx --now
Crie e abra o arquivo /etc/nginx/conf.d/netdata.conf para edição.
$ sudo nano /etc/nginx/conf.d/netdata.conf
Cole o seguinte código nele.
# Definir upstream do netdata
upstream netdata {
server 127.0.0.1:19999;
keepalive 64;
}
# Redirecionar todo o tráfego não criptografado para criptografado
server {
listen 80;
listen [::]:80;
server_name netdata.example.com;
return 301 https://netdata.example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name netdata.example.com;
ssl_certificate /etc/letsencrypt/live/netdata.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/netdata.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/netdata.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;
resolver_timeout 2s;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
access_log /var/log/nginx/netdata.example.com.access.log main;
error_log /var/log/nginx/netdata.example.com.error.log;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_pass http://netdata;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
auth_basic "Área Privada do NetData";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Uma vez terminado, salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Abra o arquivo /etc/nginx/nginx.conf para edição.
$ sudo nano /etc/nginx/nginx.conf
Adicione a seguinte linha antes da linha include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Execute o seguinte comando para gerar um arquivo de senha para habilitar a autenticação HTTP.
$ sudo htpasswd -c /etc/nginx/.htpasswd netadmin
New password:
Re-type new password:
Adding password for user netadmin
Verifique a sintaxe do arquivo de configuração do Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reinicie o serviço Nginx para habilitar a nova configuração.
$ sudo systemctl restart nginx
Passo 5 - Acessar e Usar o Painel do Netdata
Você deve ser capaz de acessar o Netdata através da URL https://netdata.example.com. Na primeira vez que você acessá-lo, será solicitado que você insira seus dados de autenticação HTTP.

Você verá o seguinte painel.

Marque a caixa Lembrar minha escolha e clique no botão Mais tarde, permanecer no painel do agente para dispensar o pop-up.
Você pode pausar, parar e iniciar o monitoramento a qualquer momento usando o botão Play no painel.

Você pode acessar vários painéis clicando nas opções da barra lateral direita. Clique no botão UTC e selecione o fuso horário correto para alterá-lo.

Passo 6 - Configurar o NetData
O Netdata armazena sua configuração principal no arquivo /etc/netdata/netdata.conf. Você pode visualizar essas configurações acessando a URL https://netdata.example.com/netdata.conf em seu navegador.

O arquivo é dividido em várias seções, como [global], [web], [registry] e mais. A configuração padrão é suficiente para nos fazer começar. O Netdata coleta dados usando dois tipos de plugins:
- plugins internos são escritos em linguagem C e executados como threads dentro do daemon
netdata. - plugins externos são escritos em várias linguagens, incluindo Python, Go, etc. e são gerados como processos independentes de longa duração pelo daemon
netdata. Eles se comunicam com o daemon Netdata usandopipes.
Configurar o Uso de Memória do NetData
O uso de RAM do NetData é decidido com base no tempo que você deseja manter os dados do gráfico gravados antes que eles sejam perdidos.
- 3600 segundos ou 1 hora de retenção de dados do gráfico usa 15 MB de RAM.
- 7200 segundos ou 2 horas de retenção de dados do gráfico usa 30 MB de RAM.
- 14400 segundos ou 4 horas de retenção de dados do gráfico usa 60 MB de RAM.
Toda vez que você dobra o tempo de retenção de dados do gráfico, a necessidade de RAM também dobra. Essas necessidades de RAM são baseadas no número de gráficos em uso pelo painel padrão. Adicionar mais gráficos e aplicações mudará essas estimativas.
Abra o arquivo de configuração do Netdata.
$ sudo nano /etc/netdata/netdata.conf
Digite a linha history = 14400 na seção [global].
[global]
..
history = 14400
..
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Desativar Telemetria
Por padrão, o Netdata coleta informações anônimas de uso usando uma plataforma de análise de produtos, Posthog. Toda vez que o daemon Netdata é iniciado ou parado, o Netdata usa o script de estatísticas anônimas para coletar as seguintes informações do sistema e enviá-las para si mesmo.
- Versão do Netdata
- Nome do SO, versão, id, id_like
- Nome do kernel, versão, arquitetura
- Tecnologia de virtualização
- Tecnologia de containerização
- Informações adicionais sobre falhas do cliente Netdata.
Felizmente, você pode optar por não participar disso. Crie um arquivo vazio chamado .opt-out-from-anonymous-statistics no diretório do Netdata.
$ sudo touch /etc/netdata/.opt-out-from-anonymous-statistics
Reinicie o Netdata para habilitar a alteração.
$ sudo systemctl restart netdata
Armazenamento a Longo Prazo
O Netdata usa a RAM e o disco do seu sistema para armazenar dados históricos por padrão. O processo padrão do Netdata coleta cerca de 2000 métricas por segundo, o que significa que a configuração padrão armazenará cerca de dois dias de métricas na RAM e no disco.
Para armazenar mais métricas, você tem as seguintes duas opções:
- Configurar o Netdata para usar mais RAM e espaço em disco
- Arquivar as métricas em um banco de dados externo
Nós discutiremos apenas a primeira opção neste tutorial. Para a segunda opção, você deve consultar a documentação oficial do Netdata.
Configurar o Netdata para usar mais RAM e espaço em disco
Abra o arquivo /etc/netdata/netdata.conf para edição.
$ sudo nano /etc/netdata/netdata.conf
Cole as seguintes linhas na seção [global].
[global]
...
memory mode = dbengine
page cache size = 32
dbengine disk space = 256
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
O tamanho do cache da página determina a quantidade de RAM usada, e o dbengine disk space determina o uso do disco. Por padrão, o Netdata usa 32 MB de RAM e 256 MB de espaço em disco. Você pode descomentar esses valores e alterar um dos dois valores conforme sua preferência.
Você pode usar a calculadora de Métricas de Armazenamento do Netdata para decidir quanto de RAM e espaço em disco você precisa.
Reduzir a Frequência de Coleta
Você pode otimizar o desempenho do Netdata aumentando o tempo entre a coleta de métricas. Por padrão, o Netdata coleta métricas a cada segundo.
Para mudar isso, abra o arquivo de configuração do Netdata para edição.
$ sudo nano /etc/netdata/netdata.conf
Digite a seguinte linha na seção [global]. Isso aumenta a frequência para 5 segundos.
[global]
...
update every = 5
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Passo 7 - Configurar Notificações do Slack
O primeiro passo é criar um aplicativo Slack e conectá-lo a um canal específico em seu espaço de trabalho para configurar as Notificações do Slack.
Visite a página da API do Slack e clique no botão Criar Aplicativo para começar a criar um aplicativo.

Clique no link Do Zero para criar o aplicativo.

Selecione um nome para seu aplicativo e escolha o espaço de trabalho onde você deseja que seu aplicativo apareça. Se você não quiser associar seu aplicativo ao espaço de trabalho existente, pode criar outro e voltar a esta etapa.

Abra a página Incoming Webhook selecionando a opção no menu Features na barra lateral esquerda e, em seguida, ative o webhook.

Clique no botão Adicionar Novo Webhook ao Espaço de Trabalho na parte inferior da página e selecione seu espaço de trabalho e o canal de destino para notificações.

Clique no botão Permitir para prosseguir. Volte para a página Incoming Webhooks e copie a URL do Webhook.

Volte ao terminal e mude para o diretório /etc/netdata.
$ cd /etc/netdata
O Netdata fornece um script edit-config para editar e criar arquivos de configuração do Netdata. Execute o seguinte arquivo para criar e abrir o arquivo health_alarm_notify.conf usando o editor padrão do seu sistema.
$ sudo ./edit-config health_alarm_notify.conf
Role para baixo até a seguinte seção.
# Habilitar notificação do slack
SEND_SLACK="YES"
# Selecionar o webhook do slack
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/xxxxxxx"
# Canal padrão para notificação
DEFAULT_RECIPIENT_SLACK="notifications"
Certifique-se de que a variável SEND_SLACK esteja definida como sim. Cole a URL do webhook copiada na variável SLACK_WEBHOOK_URL. Digite o nome do seu canal para a variável DEFAULT_RECIPIENT_SLACK.
Se seu editor for o Vim, pressione a tecla Escape para sair da edição, digite :x e pressione a tecla Enter para salvar o arquivo e sair do editor.
Se seu editor for o Nano, salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Reinicie o Netdata para aplicar as alterações.
$ sudo systemctl restart netdata
Configurar Notificações por E-mail
O Netdata usa sendmail por padrão para enviar notificações por e-mail, mas gerenciar um servidor de e-mail não é uma tarefa fácil. O Netdata não suporta SMTP, mas você pode instalar um pacote chamado cliente msmtp. Ele permite que você envie e-mails para um servidor SMTP.
Instale o msmtp.
$ sudo dnf install msmtp
Crie e abra o arquivo de configuração para o msmtp.
$ sudo nano /etc/msmtprc
Cole o seguinte código nele.
# Defina valores padrão para todas as contas seguintes.
defaults
# Use a porta de envio de e-mail 587 em vez da porta SMTP 25.
port 587
# Sempre use TLS.
tls on
# O servidor SMTP do seu ISP
account ses
host email-smtp..amazonaws.com
from [email protected]
auth on
user
password
# Defina a conta padrão para isp
account default: ses
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Abra o arquivo /etc/netdata/health_alarm_notify.conf para edição.
$ sudo nano /etc/netdata/health_alarm_notify.conf
Role para baixo até a seguinte seção e insira o caminho para o msmtp.
# comandos externos
# O caminho completo para o comando sendmail.
# Se vazio, o sistema $PATH será pesquisado para ele.
# Se não encontrado, as notificações por e-mail serão desativadas (silenciosamente).
sendmail="/usr/bin/msmtp"
Localize a seguinte seção e insira os detalhes do remetente e do destinatário e certifique-se de que o envio de e-mails esteja habilitado.
# opções globais de notificação por e-mail
# múltiplos destinatários podem ser dados assim:
# "[email protected] [email protected] ..."
# o endereço de e-mail que envia notificações por e-mail
# o padrão é o usuário do sistema sob o qual o netdata é executado (geralmente: netdata)
# Os seguintes formatos são suportados:
# EMAIL_SENDER="user@domain"
# EMAIL_SENDER="User Name "
# EMAIL_SENDER="'User Name' "
# EMAIL_SENDER="\"User Name\" "
EMAIL_SENDER="Admin do Servidor <[email protected]>"
# habilitar/desabilitar o envio de e-mails
SEND_EMAIL="YES"
# se um destinatário de função não estiver configurado, um e-mail será enviado para:
DEFAULT_RECIPIENT_EMAIL="[email protected]"
# para receber apenas alarmes críticos, defina como "root|critical"
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Passo 8 - Testar Canais de Notificação
Vamos testar se as notificações do Slack funcionam.
Faça login como o usuário do sistema netdata criado durante a instalação.
$ sudo su -s /bin/bash netdata
Execute o script de notificação de alarme para enviar uma notificação de teste.
$ /usr/libexec/netdata/plugins.d/alarm-notify.sh test
Saia do usuário.
$ exit.
Abra seu aplicativo Slack e você deve ter recebido os seguintes alertas.

Você também deve receber três e-mails sobre os avisos de teste.

Passo 9 - Configurar Monitoramento do Sistema
Agora que configuramos e testamos as notificações, vamos configurar e testar notificações para o sistema, como uso de CPU.
Execute os seguintes comandos para criar e abrir o arquivo de configuração da CPU.
$ cd /etc/netdata
$ sudo ./edit-config health.d/cpu.conf
Altere os valores das opções warn e crit sob o 10min_cpu_usage como mostrado abaixo.
warn: $this > (($status >= $WARNING) ? (60) : (70))
crit: $this > (($status == $CRITICAL) ? (75) : (85))
Salve o arquivo e saia do editor.
A configuração acima enviará um aviso se o uso da CPU ficar entre 60 e 70% e um aviso crítico quando o uso da CPU ficar entre 75 e 85%.
Reinicie o serviço Netdata.
$ sudo systemctl restart netdata
Vamos testar a configuração instalando o aplicativo Stress.
$ sudo dnf install stress
Execute o seguinte comando para aumentar o uso da CPU do seu servidor.
$ stress --cpu 2
Deixe o comando em execução por 5-10 minutos e você receberá mensagens de alto uso de CPU. Assim que receber essas mensagens, volte ao terminal e saia do comando pressionando Ctrl + Z.
Após parar o serviço, você receberá uma notificação de recuperação da CPU no Slack.

Passo 10 - Configurar Monitoramento do Nginx
Uma das aplicações mais monitoradas usando o Netdata é o servidor e os pacotes SQL. Vamos monitorar o servidor Nginx usando o Netdata.
Para habilitar o monitoramento do servidor Nginx, precisamos usar o ngx_http_stub_status_module. Ele geralmente vem pré-instalado com o Nginx. Você pode verificar se o módulo está presente.
$ nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module
Se você não obtiver resposta, significa que sua instalação do Nginx não suporta o recurso. Você precisará compilar o Nginx nesse caso.
Abra o arquivo de configuração padrão do Nginx /etc/nginx/conf.d/default.conf para edição. A localização do arquivo é diferente porque instalamos o Nginx a partir de seu repositório oficial. Se você estiver instalando o Nginx a partir do repositório do SO, então a localização do arquivo será /etc/nginx/nginx.conf.
$ sudo nano /etc/nginx/conf.d/default.conf
Digite o seguinte código dentro do bloco do servidor antes da última chave de fechamento.
# Habilitar módulo stub_status
location /stub_status {
stub_status;
allow 127.0.0.1; # apenas permitir solicitações do localhost
deny all; # negar todos os outros hosts
}
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Verifique a configuração do Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reinicie o servidor Nginx.
$ sudo systemctl restart nginx
Reinicie o serviço Netdata.
$ sudo systemctl restart netdata
Você deve ver os detalhes da conexão do Nginx no seu painel do Netdata.

Monitorar Logs do Nginx
O Netdata também pode monitorar logs de acesso do Nginx. Para fazer isso, mude para o diretório do Netdata.
$ cd /etc/netdata
Execute o seguinte comando para gerar um arquivo de configuração para monitorar os Logs de Acesso.
$ sudo ./edit-config python.d/web_log.conf
Role até o final do arquivo e encontre a seguinte seção.
# -------------------------------------------
# log do nginx em várias distros
# debian, arch
nginx_log:
name: 'nginx'
path: '/var/log/nginx/access.log'
# gentoo
nginx_log2:
name: 'nginx_site'
path: '/var/log/nginx/localhost.access_log'
Altere o caminho para monitorar os respectivos arquivos de log. Você pode adicionar quantas seções quiser para monitorar quantos hosts e seus arquivos de log de acesso. Nosso arquivo de configuração fica assim:
# -------------------------------------------
# log do nginx em várias distros
# debian, arch
nginx_log:
name: 'nginx'
path: '/var/log/nginx/access.log'
nginx_log2:
name: 'nginx_site1'
path: '/var/log/nginx/site1.access_log'
nginx_log3:
name: 'nginx_site2'
path: '/var/log/nginx/site2.access_log'
nginx_log4:
name: 'nginx_site3'
path: '/var/log/nginx/site3.access_log'
Salve e saia do editor.
Para acessar os arquivos de log, o Netdata precisa de permissões para acessar o diretório. Por padrão, o grupo de sistema adm tem permissão para acessar os arquivos de log. Para dar acesso ao Netdata, precisamos adicionar o usuário netdata ao grupo adm.
$ sudo usermod -aG adm netdata
Reinicie o Nginx e o serviço Netdata.
$ sudo systemctl restart nginx netdata
Recarregue o painel do Netdata para visualizar os dados do seu arquivo de log.

Passo 11 - Configurar Monitoramento do MySQL/MariaDB
Instalaremos o MariaDB para nosso tutorial. Os passos permanecem os mesmos se você estiver usando um servidor MySQL.
Adicione o repositório para o MariaDB 10.6.
$ sudo nano /etc/yum.repos.d/MariaDB.repo
Cole o seguinte código nele.
# Lista de repositórios do MariaDB 10.6 CentOS - criada em 2022-04-12 11:12 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://download.nus.edu.sg/mirror/mariadb/yum/10.6/centos8-amd64
module_hotfixes=1
gpgkey=https://download.nus.edu.sg/mirror/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Instale o MariaDB.
$ sudo dnf install MariaDB-server
Habilite o servidor MariaDB.
$ sudo systemctl enable mariadb
Inicie o script de instalação segura do MySQL. O nome do arquivo é diferente no caso do MariaDB.
$ sudo mariadb-secure-installation
....
Enter current password for root (enter for none): (Press Enter)
....
Switch to unix_socket authentication [Y/n] Y (Type Y and Press Enter)
....
Change the root password? [Y/n] Y (Type Y and Press Enter)
New password:
Re-enter new password:
Password updated successfully!
....
Remove anonymous users? [Y/n] Y (Type Y and Press Enter)
....
Disallow root login remotely? [Y/n] Y (Type Y and Press Enter)
....
Remove test database and access to it? [Y/n] Y (Type Y and Press Enter)
....
Reload privilege tables now? [Y/n] Y (Type Y and Press Enter)
....
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Abra o arquivo /etc/my.cnf.d/server.cnf para edição.
$ sudo nano /etc/my.cnf.d/server.cnf
Encontre a seção [mariadb] no arquivo e cole a seguinte linha como mostrado abaixo para habilitar o plugin Userstats. Essa configuração funciona apenas no MariaDB e não no servidor MySQL.
[mariadb]
userstat = 1
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Inicie o servidor MariaDB.
$ sudo systemctl start mariadb
Reinicie o serviço Netdata.
$ sudo systemctl restart netdata
O painel do MariaDB/MySQL deve começar a aparecer no painel do Netdata.

Passo 12 - Configurar Monitoramento do PHP-FPM
Você pode monitorar uma ou mais instâncias do PHP-FPM usando o Netdata. Para nosso tutorial, instalaremos o PHP 8.0 e, em seguida, habilitaremos seu monitoramento.
Instalaremos o PHP usando o repositório Remi. Já instalamos o repositório EPEL no passo 3. Instale o repositório Remi.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Verifique os streams de PHP disponíveis.
$ dnf module list php -y
Last metadata expiration check: 0:00:12 ago on Fri 03 Dec 2021 09:39:32 AM UTC.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
A versão padrão é 7.2. Habilite o repositório PHP 8.0 do Remi.
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.0
Em seguida, instale o PHP e suas extensões necessárias para o Firefly III. O pacote php contém várias dependências que o Firefly III requer, então certifique-se de incluí-las.
$ sudo dnf install php php-fpm php-mbstring php-xml php-curl php-mysqlnd php-zip php-intl php-bcmath php-gd php-ldap php-cli
Verifique a instalação.
$ php --version
PHP 8.0.16 (cli) (built: Feb 15 2022 21:34:32) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.16, Copyright (c) Zend Technologies
with Zend OPcache v8.0.16, Copyright (c), by Zend Technologies
Configurar PHP
Abra o arquivo /etc/php-fpm.d/www.conf.
$ sudo nano /etc/php-fpm.d/www.conf
Precisamos definir o usuário/grupo Unix dos processos PHP como nginx. Encontre as linhas user=www-data e group=www-data no arquivo e altere-as para nginx.
...
; Usuário/grupo Unix dos processos
; Nota: O usuário é obrigatório. Se o grupo não for definido, o grupo do usuário padrão
; será usado.
; RPM: usuário do apache escolhido para fornecer acesso aos mesmos diretórios que httpd
user = nginx
; RPM: Mantenha um grupo permitido para escrever no diretório de log.
group = nginx
...
Role para baixo no arquivo até localizar a opção ;pm.status_path = /status. Descomente a linha removendo o ponto e vírgula na frente dela, como mostrado abaixo.
; Nota: Há uma página de monitoramento de status FPM em tempo real disponível
; Está disponível em: @EXPANDED_DATADIR@/fpm/status.html
;
; Nota: O valor deve começar com uma barra inicial (/). O valor pode ser
; qualquer coisa, mas pode não ser uma boa ideia usar a extensão .php ou pode
; conflitar com um arquivo PHP real.
; Valor Padrão: não definido
pm.status_path = /status
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Habilite e inicie o serviço PHP.
$ sudo systemctl enable php-fpm --now
Adicionar Configurações do PHP ao Nginx
Abra o arquivo de configuração padrão do Nginx /etc/nginx/conf.d/default.conf para edição.
$ sudo nano /etc/nginx/conf.d/default.conf
Digite o seguinte código dentro do bloco do servidor antes da última chave de fechamento.
# definir monitoramento do PHP-FPM
location ~ ^/(status|ping)$ {
allow 127.0.0.1;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/.sock; # Depende da Versão do PHP e da Distro do SO
}
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Verifique a configuração do Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reinicie o servidor Nginx.
$ sudo systemctl restart nginx
Reinicie o serviço Netdata.
$ sudo systemctl restart netdata
Recarregue o painel do Netdata e você deve ver as estatísticas do PHP-FPM.

Passo 13 - Configurar Monitoramento do Motor Docker e Contêineres
O Netdata pode monitorar tanto o motor Docker quanto os contêineres Docker. Ele também pode monitorar aplicativos em execução dentro desses contêineres, mas não abordaremos isso neste tutorial.
Vamos instalar o Docker primeiro.
$ sudo dnf install yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo dnf install docker-ce docker-ce-cli containerd.io
Habilite e inicie o serviço Docker.
$ sudo systemctl enable docker --now
Para monitorar o motor Docker, você precisa habilitar o recurso de métricas do Docker.
Crie e abra o arquivo /etc/docker/daemon.json para edição.
$ sudo nano /etc/docker/daemon.json
Cole o seguinte código nele.
{
"metrics-addr" : "127.0.0.1:9323",
"experimental" : true
}
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Reinicie os serviços Netdata e Docker.
$ sudo systemctl restart docker netdata
Carregue novamente o painel do Netdata e você pode ver as estatísticas do Docker.

Você verá outra entrada chamada Métricas Prometheus no seu painel porque a opção de métricas foi feita para o painel Prometheus.

O próximo passo é monitorar o contêiner Docker. O Netdata usa grupos de controle, referidos como cgroups, para monitorar contêineres Docker. Grupos de controle são um recurso do Linux que limita e rastreia o uso de recursos de um conjunto de processos, neste caso, contêineres. Se você tiver contêineres Docker em execução quando instalar o Netdata, eles serão rastreados automaticamente. No entanto, se você executar um contêiner após instalar o Netdata, precisará reiniciá-lo.
Execute um contêiner de teste.
$ docker container run -d nginx
Verifique o status do contêiner.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
938b2cf30927 nginx "/docker-entrypoint.…" 3 seconds ago Up 2 seconds 80/tcp pensive_lovelace
O nome do contêiner é tender_murdock, como mostrado. Como o contêiner foi iniciado após a instalação do Netdata, reinicie o serviço.
$ sudo systemctl restart netdata
Carregue o Painel e você deve ser capaz de ver as estatísticas do Contêiner.

Conclusão
Isso conclui nosso tutorial sobre como instalar e usar o sistema de monitoramento Netdata para monitorar vários aplicativos como Nginx, MySQL, PHP-FPM e Docker em um servidor Rocky Linux. Se você tiver alguma dúvida, poste nos comentários abaixo.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.