Monitoraggio · 24 min read · Nov 30, 2025
Come installare e monitorare i servizi utilizzando lo strumento di monitoraggio Netdata su Rocky Linux 8

Netdata è un sistema di monitoraggio open-source per sistemi operativi basati su Linux. Fornisce prestazioni e monitoraggio in tempo reale utilizzando dashboard belle e dettagliate. Offre centinaia di strumenti per monitorare server, CPU, utilizzo della memoria, processi di sistema, utilizzo del disco, reti IPv4 e IPv6, firewall di sistema e applicazioni come Nginx, MySQL, MongoDB, Redis, ElasticSearch, PostgreSQL, PHP-FPM, ecc. Si integra con altri strumenti di monitoraggio come Prometheus, Graphite, Kafka, Grafana e altro.
In questo tutorial, imparerai a installare e monitorare vari servizi utilizzando lo strumento Netdata su un server Rocky Linux 8. Utilizzeremo Netdata per tracciare le metriche di uno stack LEMP e del motore Docker.
Prerequisiti
- Un server che esegue Rocky Linux 8.
- Un utente non root con privilegi sudo.
- Un Nome di Dominio Completo (FQDN) come
netdata.example.comche punta al tuo server. - Un account e uno spazio di lavoro Slack per ricevere notifiche.
- Un account SMTP con un servizio email come Amazon SES o Mailgun.
- Disabilitare SELinux.
Passo 1 - Configurare il Firewall
Il primo passo è configurare il firewall. Rocky Linux utilizza Firewalld Firewall. Controlla lo stato del firewall.
$ sudo firewall-cmd --state
running
Il firewall funziona con diverse zone, e la zona pubblica è quella predefinita che utilizzeremo. Elenca tutti i servizi e le porte attive sul firewall.
$ sudo firewall-cmd --permanent --list-services
Dovrebbe mostrare il seguente output.
cockpit dhcpv6-client ssh
Consenti le porte HTTP e HTTPS.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Controlla nuovamente lo stato del firewall.
$ sudo firewall-cmd --permanent --list-services
Dovresti vedere un output simile.
cockpit dhcpv6-client http https ssh
Ricarica il firewall per abilitare le modifiche.
$ sudo firewall-cmd --reload
Passo 2 - Installare NetData
Netdata viene fornito con uno script di installazione che può funzionare su qualsiasi distribuzione Linux. Esegui il seguente comando per scaricare e eseguire lo script di installazione.
$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Ti verrà chiesto di inserire la tua password sudo per abilitare i privilegi sudo. Inserisci Y per confermare l’aggiunta del repository Netdata e installarlo sul tuo server.
L’installatore di Netdata abilita e avvia automaticamente il servizio. Controlla lo stato del servizio.
$ sudo systemctl status netdata
? netdata.service - Monitoraggio delle prestazioni in tempo reale
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 Monitoraggio delle prestazioni in tempo reale.
.......
Se il tuo servizio non è avviato o abilitato, puoi farlo utilizzando il seguente comando.
$ sudo systemctl enable netdata --now
Esegui il seguente comando per controllare le porte aperte e il processo che le utilizza.
$ sudo ss -plnt
Dovresti ottenere un output simile. Netdata utilizza la porta 19999 per la sua dashboard, come visto nell’output qui sotto. Netdata utilizza la porta 8125 per ricevere statistiche da altre applicazioni.
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 - Installare SSL
Per installare un certificato SSL utilizzando Let’s Encrypt, dobbiamo installare lo strumento Certbot.
Innanzitutto, devi scaricare e installare il repository EPEL.
$ sudo dnf install epel-release
Esegui i seguenti comandi per installare Certbot.
$ sudo dnf install certbot
Genera il certificato SSL.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d netdata.example.com
Il comando sopra scaricherà un certificato nella directory /etc/letsencrypt/live/netdata.example.com sul tuo server.
Genera un certificato Diffie-Hellman group.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Crea una directory web root challenge per il rinnovo automatico di Let’s Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Crea un Cron Job per rinnovare l’SSL. Verrà eseguito ogni giorno per controllare il certificato e rinnovarlo se necessario. Per questo, prima crea il file /etc/cron.daily/certbot-renew e aprilo per la modifica.
$ sudo nano /etc/cron.daily/certbot-renew
Incolla il seguente codice.
#!/bin/sh
certbot renew --cert-name netdata.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Cambia i permessi sul file del task per renderlo eseguibile.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Passo 4 - Installare e Configurare Nginx
Installeremo l’ultima versione di Nginx. Crea e apri il file /etc/yum.repos.d/nginx.repo per la modifica.
$ sudo nano /etc/yum.repos.d/nginx.repo
Incolla le seguenti righe in esso.
[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
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Installa Nginx e gli strumenti HTTPD.
$ sudo dnf install nginx httpd-tools
Verifica l’installazione.
$ nginx -v
nginx version: nginx/1.20.2
Abilita e avvia il servizio Nginx.
$ sudo systemctl enable nginx --now
Crea e apri il file /etc/nginx/conf.d/netdata.conf per la modifica.
$ sudo nano /etc/nginx/conf.d/netdata.conf
Incolla il seguente codice in esso.
# Definisci l'upstream di netdata
upstream netdata {
server 127.0.0.1:19999;
keepalive 64;
}
# Reindirizza tutto il traffico non crittografato a quello crittografato
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 "NetData Private Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Apri il file /etc/nginx/nginx.conf per la modifica.
$ sudo nano /etc/nginx/nginx.conf
Aggiungi la seguente riga prima della riga include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Esegui il seguente comando per generare un file di password per abilitare l’autenticazione HTTP.
$ sudo htpasswd -c /etc/nginx/.htpasswd netadmin
New password:
Re-type new password:
Adding password for user netadmin
Verifica la sintassi del file di configurazione di Nginx.
$ sudo nginx -t
nginx: il file di configurazione /etc/nginx/nginx.conf ha una sintassi corretta
nginx: il test del file di configurazione /etc/nginx/nginx.conf è riuscito
Riavvia il servizio Nginx per abilitare la nuova configurazione.
$ sudo systemctl restart nginx
Passo 5 - Accedere e Utilizzare la Dashboard di Netdata
Dovresti essere in grado di accedere a Netdata tramite l’URL https://netdata.example.com. La prima volta che accedi, ti verrà chiesto di inserire i dettagli di autenticazione HTTP.

Riceverai la seguente dashboard.

Controlla la casella Ricorda la mia scelta e fai clic sul pulsante Più tardi, rimani nella dashboard dell’agente per chiudere il popup.
Puoi mettere in pausa, fermare e avviare il monitoraggio in qualsiasi momento utilizzando il pulsante Play sulla dashboard.

Puoi accedere a varie dashboard facendo clic sulle opzioni nella barra laterale destra. Fai clic sul pulsante UTC e seleziona il fuso orario corretto per cambiarlo.

Passo 6 - Configurare NetData
Netdata memorizza la sua configurazione principale nel file /etc/netdata/netdata.conf. Puoi visualizzare queste impostazioni visitando l’URL https://netdata.example.com/netdata.conf nel tuo browser.

Il file è suddiviso in varie sezioni, come [global], [web], [registry] e altro. La configurazione predefinita è sufficiente per iniziare. Netdata raccoglie dati utilizzando due tipi di plugin:
- plugin interni scritti in linguaggio C e eseguiti come thread all’interno del demone
netdata. - plugin esterni scritti in vari linguaggi, tra cui Python, Go, ecc. e vengono generati come processi indipendenti a lungo termine dal demone
netdata. Comunicano con il demone Netdata utilizzandopipes.
Configurare l’Utilizzo della Memoria di NetData
L’utilizzo della RAM di NetData è deciso in base al tempo che desideri mantenere i dati del grafico registrati prima che vengano persi.
- 3600 secondi o 1 ora di retention dei dati del grafico utilizza 15 MB di RAM.
- 7200 secondi o 2 ore di retention dei dati del grafico utilizza 30 MB di RAM.
- 14400 secondi o 4 ore di retention dei dati del grafico utilizza 60 MB di RAM.
Ogni volta che raddoppi il tempo di retention dei dati del grafico, il requisito di RAM raddoppia anche. Questi requisiti di RAM si basano sul numero di grafici utilizzati dalla dashboard predefinita. Aggiungere più grafici e applicazioni cambierà queste stime.
Apri il file di configurazione di Netdata.
$ sudo nano /etc/netdata/netdata.conf
Inserisci la riga history = 14400 sotto la sezione [global].
[global]
..
history = 14400
..
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Disattivare la Telemetria
Per impostazione predefinita, Netdata raccoglie informazioni anonime sull’uso utilizzando una piattaforma di analisi dei prodotti, Posthog. Ogni volta che il demone Netdata viene avviato o arrestato, Netdata utilizza lo script delle statistiche anonime per raccogliere le seguenti informazioni di sistema e inviarle a se stesso.
- Versione di Netdata
- Nome del sistema operativo, versione, id, id_like
- Nome del kernel, versione, architettura
- Tecnologia di virtualizzazione
- Tecnologia di containerizzazione
- Informazioni aggiuntive sui guasti del client Netdata.
Fortunatamente, puoi rinunciare a questo. Crea un file vuoto chiamato .opt-out-from-anonymous-statistics nella directory di Netdata.
$ sudo touch /etc/netdata/.opt-out-from-anonymous-statistics
Riavvia Netdata per abilitare la modifica.
$ sudo systemctl restart netdata
Archiviazione a lungo termine
Netdata utilizza la RAM e il disco del tuo sistema per memorizzare i dati storici per impostazione predefinita. Il processo predefinito di Netdata raccoglie circa 2000 metriche al secondo, il che significa che la configurazione predefinita memorizzerà circa due giorni di metriche sulla RAM e sul disco.
Per memorizzare più metriche, hai le seguenti due opzioni:
- Configurare Netdata per utilizzare più RAM e spazio su disco
- Archiviare le metriche in un database esterno
Discuteremo solo la prima opzione in questo tutorial. Per la seconda opzione, dovresti fare riferimento alla documentazione ufficiale di Netdata.
Configurare Netdata per utilizzare più RAM e spazio su disco
Apri il file /etc/netdata/netdata.conf per la modifica.
$ sudo nano /etc/netdata/netdata.conf
Incolla le seguenti righe sotto la sezione [global].
[global]
...
memory mode = dbengine
page cache size = 32
dbengine disk space = 256
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
La dimensione della cache della pagina determina la quantità di RAM utilizzata, e lo spazio su disco dbengine determina l’utilizzo del disco. Per impostazione predefinita, Netdata utilizza 32 MB di RAM e 256 MB di spazio su disco. Puoi decommentare questi valori e cambiare uno dei due valori a tuo piacimento.
Puoi utilizzare il calcolatore delle metriche di archiviazione di Netdata per decidere quanta RAM e spazio su disco hai bisogno.
Ridurre la Frequenza di Raccolta
Puoi ottimizzare le prestazioni di Netdata aumentando il tempo tra la raccolta delle metriche. Per impostazione predefinita, Netdata raccoglie metriche ogni secondo.
Per cambiare ciò, apri il file di configurazione di Netdata per la modifica.
$ sudo nano /etc/netdata/netdata.conf
Inserisci la seguente riga sotto la sezione [global]. Questo aumenta la frequenza a 5 secondi.
[global]
...
update every = 5
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Passo 7 - Configurare le Notifiche Slack
Il primo passo è creare un’app Slack e collegarla a un canale specifico nel tuo spazio di lavoro per configurare le notifiche Slack.
Visita la pagina API di Slack e fai clic sul pulsante Crea App per iniziare a creare un’applicazione.

Fai clic sul link Da zero per creare l’app.

Seleziona un nome per la tua app e scegli lo spazio di lavoro in cui desideri che la tua app appaia. Se non vuoi associare la tua app allo spazio di lavoro esistente, puoi crearne un’altra e tornare a questo passaggio.

Apri la pagina Webhook in entrata selezionando l’opzione nel menu Funzionalità nella barra laterale sinistra, quindi attiva il webhook.

Fai clic sul pulsante Aggiungi nuovo webhook al workspace in fondo alla pagina e seleziona il tuo spazio di lavoro e il canale di destinazione per le notifiche.

Fai clic sul pulsante Consenti per procedere. Torna alla pagina Webhook in entrata e copia l’URL del Webhook.

Torna al terminale e passa alla directory /etc/netdata.
$ cd /etc/netdata
Netdata fornisce uno script edit-config per modificare e creare file di configurazione di Netdata. Esegui il seguente file per creare e aprire il file health_alarm_notify.conf utilizzando l’editor predefinito del tuo sistema.
$ sudo ./edit-config health_alarm_notify.conf
Scorri verso il basso fino alla seguente sezione.
# Abilita la notifica slack
SEND_SLACK="YES"
# Seleziona il webhook slack
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/xxxxxxx"
# Canale predefinito per la notifica
DEFAULT_RECIPIENT_SLACK="notifications"
Assicurati che la variabile SEND_SLACK sia impostata su yes. Incolla l’URL del webhook copiato nella variabile SLACK_WEBHOOK_URL. Inserisci il nome del tuo canale per la variabile DEFAULT_RECIPIENT_SLACK.
Se il tuo editor è Vim, premi il tasto Escape per uscire dalla modifica, digita :x e premi il tasto Enter per salvare il file ed uscire dall’editor.
Se il tuo editor è Nano, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Riavvia Netdata per applicare le modifiche.
$ sudo systemctl restart netdata
Configurare le Notifiche Email
Netdata utilizza sendmail per impostazione predefinita per inviare notifiche email, ma gestire un server email non è un compito facile. Netdata non supporta SMTP, ma puoi installare un pacchetto chiamato client msmtp. Ti consente di inviare email a un server SMTP.
Installa msmtp.
$ sudo dnf install msmtp
Crea e apri il file di configurazione per msmtp.
$ sudo nano /etc/msmtprc
Incolla il seguente codice in esso.
# Imposta valori predefiniti per tutti i seguenti account.
defaults
# Usa la porta di invio email 587 invece della porta SMTP 25.
port 587
# Usa sempre TLS.
tls on
# Il server SMTP del tuo ISP
account ses
host email-smtp..amazonaws.com
from [email protected]
auth on
user
password
# Imposta l'account predefinito su isp
account default: ses
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Apri il file /etc/netdata/health_alarm_notify.conf per la modifica.
$ sudo nano /etc/netdata/health_alarm_notify.conf
Scorri verso il basso fino alla seguente sezione e inserisci il percorso per msmtp.
# comandi esterni
# Il percorso completo al comando sendmail.
# Se vuoto, verrà cercato nel sistema $PATH.
# Se non trovato, le notifiche email saranno disabilitate (silenziosamente).
sendmail="/usr/bin/msmtp"
Trova la seguente sezione e inserisci i dettagli del mittente e del destinatario e assicurati che l’invio delle email sia abilitato.
# opzioni globali di notifica email
# più destinatari possono essere forniti in questo modo:
# "[email protected] [email protected] ..."
# l'indirizzo email che invia notifiche email
# il predefinito è l'utente di sistema con cui viene eseguito netdata (di solito: netdata)
# I seguenti formati sono supportati:
# EMAIL_SENDER="user@domain"
# EMAIL_SENDER="User Name "
# EMAIL_SENDER="'User Name' "
# EMAIL_SENDER="\"User Name\" "
EMAIL_SENDER="Server Admin <[email protected]>"
# abilitare/disabilitare l'invio di email
SEND_EMAIL="YES"
# se un destinatario di ruolo non è configurato, verrà inviata un'email a:
DEFAULT_RECIPIENT_EMAIL="[email protected]"
# per ricevere solo allarmi critici, impostalo su "root|critical"
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Passo 8 - Testare i Canali di Notifica
Testiamo se le notifiche Slack funzionano.
Accedi come utente di sistema netdata creato durante l’installazione.
$ sudo su -s /bin/bash netdata
Esegui lo script di notifica degli allarmi per inviare una notifica di test.
$ /usr/libexec/netdata/plugins.d/alarm-notify.sh test
Esci dall’utente.
$ exit.
Apri la tua applicazione Slack e dovresti aver ricevuto i seguenti avvisi.

Dovresti anche ricevere tre email riguardanti gli avvisi di test.

Passo 9 - Configurare il Monitoraggio del Sistema
Ora che abbiamo configurato e testato le notifiche, configuriamo e testiamo le notifiche per il sistema, come l’utilizzo della CPU.
Esegui i seguenti comandi per creare e aprire il file di configurazione della CPU.
$ cd /etc/netdata
$ sudo ./edit-config health.d/cpu.conf
Cambia i valori delle opzioni warn e crit sotto 10min_cpu_usage come mostrato di seguito.
warn: $this > (($status >= $WARNING) ? (60) : (70))
crit: $this > (($status == $CRITICAL) ? (75) : (85))
Salva il file ed esci dall’editor.
L’impostazione sopra invierà un avviso se l’utilizzo della CPU rientra tra il 60 e il 70% e un avviso critico quando l’utilizzo della CPU rientra tra il 75 e l’85%.
Riavvia il servizio Netdata.
$ sudo systemctl restart netdata
Testiamo l’impostazione installando l’applicazione Stress.
$ sudo dnf install stress
Esegui il seguente comando per aumentare l’utilizzo della CPU del tuo server.
$ stress --cpu 2
Lascia il comando in esecuzione per 5-10 minuti e riceverai messaggi di utilizzo elevato della CPU. Una volta ricevuti quei messaggi, torna al terminale ed esci dal comando premendo Ctrl + Z.
Dopo aver fermato il servizio, riceverai una notifica di recupero della CPU su Slack.

Passo 10 - Configurare il Monitoraggio di Nginx
Una delle applicazioni più comunemente monitorate utilizzando Netdata è il server e i pacchetti SQL. Monitoriamo il server Nginx utilizzando Netdata.
Per abilitare il monitoraggio del server Nginx, dobbiamo utilizzare il ngx_http_stub_status_module. Di solito viene preinstallato con Nginx. Puoi controllare se il modulo è presente.
$ nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module
Se non ricevi risposta, significa che la tua installazione di Nginx non supporta la funzionalità. In tal caso, dovrai compilare Nginx.
Apri il file di configurazione predefinito di Nginx /etc/nginx/conf.d/default.conf per la modifica. La posizione del file è diversa perché abbiamo installato Nginx dal suo repository ufficiale. Se stai installando Nginx dal repository del sistema operativo, allora la posizione del file sarà /etc/nginx/nginx.conf.
$ sudo nano /etc/nginx/conf.d/default.conf
Inserisci il seguente codice all’interno del blocco server prima dell’ultima parentesi graffa di chiusura.
# Abilita il modulo stub_status
location /stub_status {
stub_status;
allow 127.0.0.1; #consenti solo richieste da localhost
deny all; #nega tutti gli altri host
}
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Verifica la configurazione di Nginx.
$ sudo nginx -t
nginx: il file di configurazione /etc/nginx/nginx.conf ha una sintassi corretta
nginx: il test del file di configurazione /etc/nginx/nginx.conf è riuscito
Riavvia il server Nginx.
$ sudo systemctl restart nginx
Riavvia il servizio Netdata.
$ sudo systemctl restart netdata
Dovresti vedere i dettagli delle connessioni Nginx nella tua dashboard di Netdata.

Monitorare i Log di Nginx
Netdata può anche monitorare i log di accesso di Nginx. Per farlo, passa alla directory di Netdata.
$ cd /etc/netdata
Esegui il seguente comando per generare un file di configurazione per monitorare i log di accesso.
$ sudo ./edit-config python.d/web_log.conf
Scorri fino in fondo al file e trova la seguente sezione.
# -------------------------------------------
# log di nginx su varie distribuzioni
# 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'
Cambia il percorso per monitorare i rispettivi file di log. Puoi aggiungere quante più sezioni per monitorare quanti più host e i loro file di log di accesso. Il nostro file di configurazione appare come segue.
# -------------------------------------------
# log di nginx su varie distribuzioni
# 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'
Salva ed esci dall’editor.
Per accedere ai file di log, Netdata ha bisogno di permessi per accedere alla directory. Per impostazione predefinita, il gruppo di sistema adm ha il permesso di accedere ai file di log. Per dare accesso a Netdata, dobbiamo aggiungere l’utente netdata al gruppo adm.
$ sudo usermod -aG adm netdata
Riavvia Nginx e il servizio Netdata.
$ sudo systemctl restart nginx netdata
Ricarica la dashboard di Netdata per visualizzare i dati del tuo file di log.

Passo 11 - Configurare il Monitoraggio di MySQL/MariaDB
Installeremo MariaDB per il nostro tutorial. I passaggi rimangono gli stessi se stai utilizzando un server MySQL.
Aggiungi il repository per MariaDB 10.6.
$ sudo nano /etc/yum.repos.d/MariaDB.repo
Incolla il seguente codice in esso.
# Elenco dei repository di MariaDB 10.6 CentOS - creato 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
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Installa MariaDB.
$ sudo dnf install MariaDB-server
Abilita il server MariaDB.
$ sudo systemctl enable mariadb
Avvia lo script di installazione sicura di MySQL. Il nome del file è diverso nel caso di MariaDB.
$ sudo mariadb-secure-installation
....
Enter current password for root (enter for none): (Premi Invio)
....
Switch to unix_socket authentication [Y/n] Y (Digita Y e premi Invio)
....
Change the root password? [Y/n] Y (Digita Y e premi Invio)
New password:
Re-enter new password:
Password updated successfully!
....
Remove anonymous users? [Y/n] Y (Digita Y e premi Invio)
....
Disallow root login remotely? [Y/n] Y (Digita Y e premi Invio)
....
Remove test database and access to it? [Y/n] Y (Digita Y e premi Invio)
....
Reload privilege tables now? [Y/n] Y (Digita Y e premi Invio)
....
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Apri il file /etc/my.cnf.d/server.cnf per la modifica.
$ sudo nano /etc/my.cnf.d/server.cnf
Trova la sezione [mariadb] nel file e incolla la seguente riga come mostrato di seguito per abilitare il plugin Userstats. Questa impostazione funziona solo su MariaDB e non sul server MySQL.
[mariadb]
userstat = 1
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Avvia il server MariaDB.
$ sudo systemctl start mariadb
Riavvia il servizio Netdata.
$ sudo systemctl restart netdata
La dashboard di MariaDB/MySQL dovrebbe iniziare a comparire nella dashboard di Netdata.

Passo 12 - Configurare il Monitoraggio di PHP-FPM
Puoi monitorare una o più istanze di PHP-FPM utilizzando Netdata. Per il nostro tutorial, installeremo PHP 8.0 e poi abiliteremo il suo monitoraggio.
Installeremo PHP utilizzando il repository Remi. Abbiamo già installato il repository EPEL nel passo 3. Installa il repository Remi.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Controlla gli stream PHP disponibili.
$ 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 Linguaggio di scripting PHP
php 7.3 common [d], devel, minimal Linguaggio di scripting PHP
php 7.4 common [d], devel, minimal Linguaggio di scripting PHP
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal Linguaggio di scripting PHP
php remi-7.3 common [d], devel, minimal Linguaggio di scripting PHP
php remi-7.4 common [d], devel, minimal Linguaggio di scripting PHP
php remi-8.0 common [d], devel, minimal Linguaggio di scripting PHP
php remi-8.1 common [d], devel, minimal Linguaggio di scripting PHP
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
La versione predefinita è 7.2. Abilita il repository PHP 8.0 di Remi.
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.0
Successivamente, installa PHP e le sue estensioni richieste da Firefly III. Il pacchetto php contiene diverse dipendenze di cui Firefly III ha bisogno, quindi assicurati di includerle.
$ 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
Verifica l’installazione.
$ 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
Configurare PHP
Apri il file /etc/php-fpm.d/www.conf.
$ sudo nano /etc/php-fpm.d/www.conf
Dobbiamo impostare l’utente/gruppo Unix dei processi PHP su nginx. Trova le righe user=www-data e group=www-data nel file e cambiale in nginx.
...
; Utente/gruppo Unix dei processi
; Nota: L'utente è obbligatorio. Se il gruppo non è impostato, verrà utilizzato il gruppo dell'utente predefinito
; sarà utilizzato.
; RPM: utente apache scelto per fornire accesso alle stesse directory di httpd
user = nginx
; RPM: Mantieni un gruppo autorizzato a scrivere nella directory di log.
group = nginx
...
Scorri verso il basso nel file per trovare l’opzione ;pm.status_path = /status. Decommenta la riga rimuovendo il punto e virgola davanti ad essa, come mostrato di seguito.
; Nota: È disponibile una pagina web di monitoraggio dello stato FPM in tempo reale
; È disponibile in: @EXPANDED_DATADIR@/fpm/status.html
;
; Nota: Il valore deve iniziare con una barra iniziale (/). Il valore può essere
; qualsiasi cosa, ma potrebbe non essere una buona idea utilizzare l'estensione .php o potrebbe
; confliggere con un vero file PHP.
; Valore predefinito: non impostato
pm.status_path = /status
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Abilita e avvia il servizio PHP.
$ sudo systemctl enable php-fpm --now
Aggiungere le Impostazioni PHP a Nginx
Apri il file di configurazione predefinito di Nginx /etc/nginx/conf.d/default.conf per la modifica.
$ sudo nano /etc/nginx/conf.d/default.conf
Inserisci il seguente codice all’interno del blocco server prima dell’ultima parentesi graffa di chiusura.
# definire il monitoraggio 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; # Dipende dalla versione di PHP e dalla distribuzione OS
}
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Verifica la configurazione di Nginx.
$ sudo nginx -t
nginx: il file di configurazione /etc/nginx/nginx.conf ha una sintassi corretta
nginx: il test del file di configurazione /etc/nginx/nginx.conf è riuscito
Riavvia il server Nginx.
$ sudo systemctl restart nginx
Riavvia il servizio Netdata.
$ sudo systemctl restart netdata
Ricarica la dashboard di Netdata e dovresti vedere le statistiche di PHP-FPM.

Passo 13 - Configurare il Monitoraggio del Motore Docker e dei Container
Netdata può monitorare sia il motore Docker che i container Docker. Può anche monitorare le app in esecuzione all’interno di questi container, ma non tratteremo questo aspetto in questo tutorial.
Iniziamo installando Docker.
$ 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
Abilita e avvia il servizio Docker.
$ sudo systemctl enable docker --now
Per monitorare il motore Docker, devi abilitare la funzionalità delle metriche di Docker.
Crea e apri il file /etc/docker/daemon.json per la modifica.
$ sudo nano /etc/docker/daemon.json
Incolla il seguente codice in esso.
{
"metrics-addr" : "127.0.0.1:9323",
"experimental" : true
}
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Riavvia i servizi Netdata e Docker.
$ sudo systemctl restart docker netdata
Ricarica di nuovo la dashboard di Netdata e puoi vedere le statistiche di Docker.

Vedrai un’altra voce chiamata Prometheus Metrics sulla tua dashboard perché l’opzione delle metriche è stata creata per la dashboard di Prometheus.

Il passo successivo è monitorare il container Docker. Netdata utilizza i gruppi di controllo, noti come cgroups, per monitorare i container Docker. I gruppi di controllo sono una funzionalità di Linux che limita e traccia l’utilizzo delle risorse di un insieme di processi, in questo caso, i container. Se hai container Docker in esecuzione quando installi Netdata, vengono tracciati automaticamente. Tuttavia, se esegui un container dopo aver installato Netdata, devi riavviarlo.
Esegui un container di test.
$ docker container run -d nginx
Controlla lo stato del container.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
938b2cf30927 nginx "/docker-entrypoint.…" 3 seconds ago Up 2 seconds 80/tcp pensive_lovelace
Il nome del container è tender_murdock come mostrato. Poiché il container è stato avviato dopo l’installazione di Netdata, riavvia il servizio.
$ sudo systemctl restart netdata
Carica la dashboard e dovresti essere in grado di vedere le statistiche del container.

Conclusione
Questo conclude il nostro tutorial sull’installazione e l’utilizzo del sistema di monitoraggio Netdata per monitorare varie app come Nginx, MySQL, PHP-FPM e Docker su un server Rocky Linux. Se hai domande, postale nei commenti qui sotto.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.