Surveillance système · 26 min read · Nov 30, 2025
Comment installer et surveiller des services à l'aide de l'outil de surveillance Netdata sur Rocky Linux 8

Netdata est un système de surveillance open-source pour les systèmes d’exploitation basés sur Linux. Il fournit des performances et une surveillance en temps réel à l’aide de tableaux de bord magnifiques et détaillés. Il offre des centaines d’outils pour surveiller les serveurs, l’utilisation du CPU, de la mémoire, des processus système, de l’utilisation du disque, des réseaux IPv4 et IPv6, du pare-feu système et des applications comme Nginx, MySQL, MongoDB, Redis, ElasticSearch, PostgreSQL, PHP-FPM, etc. Il s’intègre à d’autres outils de surveillance tels que Prometheus, Graphite, Kafka, Grafana, et plus encore.
Dans ce tutoriel, vous apprendrez à installer et à surveiller divers services à l’aide de l’outil Netdata sur un serveur Rocky Linux 8. Nous utiliserons Netdata pour suivre les métriques d’une pile LEMP et du moteur Docker.
Prérequis
- Un serveur exécutant Rocky Linux 8.
- Un utilisateur non-root avec des privilèges sudo.
- Un nom de domaine entièrement qualifié (FQDN) comme
netdata.example.compointant vers votre serveur. - Un compte et un espace de travail Slack pour recevoir des notifications.
- Un compte SMTP avec un service de messagerie comme Amazon SES ou Mailgun.
- Désactiver SELinux.
Étape 1 - Configurer le pare-feu
La première étape consiste à configurer le pare-feu. Rocky Linux utilise le pare-feu Firewalld. Vérifiez l’état du pare-feu.
$ sudo firewall-cmd --state
running
Le pare-feu fonctionne avec différentes zones, et la zone publique est celle par défaut que nous allons utiliser. Listez tous les services et ports actifs sur le pare-feu.
$ sudo firewall-cmd --permanent --list-services
Il devrait afficher la sortie suivante.
cockpit dhcpv6-client ssh
Autorisez les ports HTTP et HTTPS.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Vérifiez à nouveau l’état du pare-feu.
$ sudo firewall-cmd --permanent --list-services
Vous devriez voir une sortie similaire.
cockpit dhcpv6-client http https ssh
Rechargez le pare-feu pour activer les modifications.
$ sudo firewall-cmd --reload
Étape 2 - Installer NetData
Netdata est livré avec un script d’installation qui peut fonctionner sur n’importe quelle distribution Linux. Exécutez la commande suivante pour télécharger et exécuter le script d’installation.
$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Vous serez invité à entrer votre mot de passe sudo pour activer les privilèges sudo. Entrez Y pour confirmer l’ajout du dépôt Netdata et son installation sur votre serveur.
L’installateur de Netdata active et démarre automatiquement le service. Vérifiez l’état du service.
$ sudo systemctl status netdata
? netdata.service - Surveillance des performances en temps réel
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 Real time performance monitoring.
.......
Si votre service n’est pas démarré ou activé, vous pouvez le faire en utilisant la commande suivante.
$ sudo systemctl enable netdata --now
Exécutez la commande suivante pour vérifier les ports ouverts et le processus les utilisant.
$ sudo ss -plnt
Vous devriez obtenir une sortie similaire. Netdata utilise le port 19999 pour son tableau de bord, comme indiqué dans la sortie ci-dessous. Netdata utilise le port 8125 pour recevoir des statistiques d’autres applications.
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))
Étape 3 - Installer SSL
Pour installer un certificat SSL à l’aide de Let’s Encrypt, nous devons installer l’outil Certbot.
Tout d’abord, vous devez télécharger et installer le dépôt EPEL.
$ sudo dnf install epel-release
Exécutez les commandes suivantes pour installer Certbot.
$ sudo dnf install certbot
Générez le certificat SSL.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d netdata.example.com
La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/netdata.example.com sur votre serveur.
Générez un certificat groupe Diffie-Hellman.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Créez un répertoire racine de défi pour le renouvellement automatique de Let’s Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Créez un Cron Job pour renouveler le SSL. Il s’exécutera tous les jours pour vérifier le certificat et le renouveler si nécessaire. Pour cela, créez d’abord le fichier /etc/cron.daily/certbot-renew et ouvrez-le pour l’édition.
$ sudo nano /etc/cron.daily/certbot-renew
Collez le code suivant.
#!/bin/sh
certbot renew --cert-name netdata.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Changez les permissions sur le fichier de tâche pour le rendre exécutable.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Étape 4 - Installer et configurer Nginx
Nous allons installer la dernière version de Nginx. Créez et ouvrez le fichier /etc/yum.repos.d/nginx.repo pour l’édition.
$ sudo nano /etc/yum.repos.d/nginx.repo
Collez les lignes suivantes.
[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
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Installez Nginx et les outils HTTPD.
$ sudo dnf install nginx httpd-tools
Vérifiez l’installation.
$ nginx -v
nginx version: nginx/1.20.2
Activez et démarrez le service Nginx.
$ sudo systemctl enable nginx --now
Créez et ouvrez le fichier /etc/nginx/conf.d/netdata.conf pour l’édition.
$ sudo nano /etc/nginx/conf.d/netdata.conf
Collez le code suivant.
# Définir l'upstream netdata
upstream netdata {
server 127.0.0.1:19999;
keepalive 64;
}
# Rediriger tout le non chiffré vers chiffré
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 "Zone Privée NetData";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Une fois terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Ouvrez le fichier /etc/nginx/nginx.conf pour l’édition.
$ sudo nano /etc/nginx/nginx.conf
Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Exécutez la commande suivante pour générer un fichier de mot de passe pour activer l’authentification HTTP.
$ sudo htpasswd -c /etc/nginx/.htpasswd netadmin
New password:
Re-type new password:
Adding password for user netadmin
Vérifiez la syntaxe du fichier de configuration 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
Redémarrez le service Nginx pour activer la nouvelle configuration.
$ sudo systemctl restart nginx
Étape 5 - Accéder et utiliser le tableau de bord Netdata
Vous devriez pouvoir accéder à Netdata via l’URL https://netdata.example.com. La première fois que vous y accédez, vous serez invité à entrer vos informations d’authentification HTTP.

Vous obtiendrez le tableau de bord suivant.

Cochez la case Se souvenir de mon choix et cliquez sur le bouton Plus tard, rester sur le tableau de bord de l’agent pour fermer la fenêtre contextuelle.
Vous pouvez mettre en pause, arrêter et démarrer la surveillance à tout moment en utilisant le bouton Lecture sur le tableau de bord.

Vous pouvez accéder à divers tableaux de bord en cliquant sur les options dans la barre latérale droite. Cliquez sur le bouton UTC et sélectionnez le bon fuseau horaire pour le changer.

Étape 6 - Configurer NetData
Netdata stocke sa configuration principale dans le fichier /etc/netdata/netdata.conf. Vous pouvez voir ces paramètres en visitant l’URL https://netdata.example.com/netdata.conf dans votre navigateur.

Le fichier est divisé en différentes sections, telles que [global], [web], [registry], et plus encore. La configuration par défaut est suffisante pour nous permettre de commencer. Netdata collecte des données à l’aide de deux types de plugins :
- Les plugins internes sont écrits en langage C et s’exécutent en tant que threads à l’intérieur du démon
netdata. - Les plugins externes sont écrits dans divers langages, y compris Python, Go, etc. et sont lancés en tant que processus indépendants de longue durée par le démon
netdata. Ils communiquent avec le démon Netdata à l’aide depipes.
Configurer l’utilisation de la mémoire NetData
L’utilisation de la RAM de NetData est décidée en fonction du temps que vous souhaitez conserver les données de graphique enregistrées avant qu’elles ne soient perdues.
- 3600 secondes ou 1 heure de rétention des données de graphique utilise 15 Mo de RAM.
- 7200 secondes ou 2 heures de rétention des données de graphique utilise 30 Mo de RAM.
- 14400 secondes ou 4 heures de rétention des données de graphique utilise 60 Mo de RAM.
Chaque fois que vous doublez le temps de rétention des données de graphique, l’exigence en RAM double également. Ces exigences en RAM sont basées sur le nombre de graphiques utilisés par le tableau de bord par défaut. Ajouter plus de graphiques et d’applications changera ces estimations.
Ouvrez le fichier de configuration Netdata.
$ sudo nano /etc/netdata/netdata.conf
Entrez la ligne history = 14400 sous la section [global].
[global]
..
history = 14400
..
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Désactiver la télémétrie
Par défaut, Netdata collecte des informations d’utilisation anonymes à l’aide d’une plateforme d’analyse de produits, Posthog. Chaque fois que le démon Netdata est démarré ou arrêté, Netdata utilise le script de statistiques anonymes pour collecter les informations système suivantes et les envoyer à lui-même.
- Version de Netdata
- Nom du système d’exploitation, version, id, id_like
- Nom du noyau, version, architecture
- Technologie de virtualisation
- Technologie de conteneurisation
- Informations supplémentaires sur les échecs du client Netdata.
Heureusement, vous pouvez vous désinscrire de cela. Créez un fichier vide appelé .opt-out-from-anonymous-statistics dans le répertoire Netdata.
$ sudo touch /etc/netdata/.opt-out-from-anonymous-statistics
Redémarrez Netdata pour activer le changement.
$ sudo systemctl restart netdata
Stockage à long terme
Netdata utilise la RAM et le disque de votre système pour stocker des données historiques par défaut. Le processus Netdata par défaut collecte environ 2000 métriques par seconde, ce qui signifie que la configuration par défaut stockera environ deux jours de métriques sur la RAM et le disque.
Pour stocker plus de métriques, vous avez les deux options suivantes :
- Configurer Netdata pour utiliser plus de RAM et d’espace disque
- Archiver les métriques dans une base de données externe
Nous ne discuterons que de la première option dans ce tutoriel. Pour la deuxième option, vous devriez vous référer à la documentation officielle de Netdata.
Configurer Netdata pour utiliser plus de RAM et d’espace disque
Ouvrez le fichier /etc/netdata/netdata.conf pour l’édition.
$ sudo nano /etc/netdata/netdata.conf
Collez les lignes suivantes sous la section [global].
[global]
...
memory mode = dbengine
page cache size = 32
dbengine disk space = 256
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
La taille du cache de page détermine la quantité de RAM utilisée, et l’espace disque dbengine détermine l’utilisation du disque. Par défaut, Netdata utilise 32 Mo de RAM et 256 Mo d’espace disque. Vous pouvez décommenter ces valeurs et changer l’une des deux valeurs à votre convenance.
Vous pouvez utiliser le calculateur de métriques de stockage de Netdata pour décider combien de RAM et d’espace disque vous avez besoin.
Réduire la fréquence de collecte
Vous pouvez optimiser les performances de Netdata en augmentant le temps entre les collectes de métriques. Par défaut, Netdata collecte des métriques chaque seconde.
Pour changer cela, ouvrez le fichier de configuration Netdata pour l’édition.
$ sudo nano /etc/netdata/netdata.conf
Entrez la ligne suivante sous la section [global]. Cela augmente la fréquence à 5 secondes.
[global]
...
update every = 5
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Étape 7 - Configurer les notifications Slack
La première étape consiste à créer une application Slack et à la connecter à un canal spécifique dans votre espace de travail pour configurer les notifications Slack.
Visitez la page API Slack et cliquez sur le bouton Créer une application pour commencer à créer une application.

Cliquez sur le lien À partir de zéro pour créer l’application.

Sélectionnez un nom pour votre application et choisissez l’espace de travail où vous souhaitez que votre application apparaisse. Si vous ne souhaitez pas associer votre application à l’espace de travail existant, vous pouvez en créer un autre et revenir à cette étape.

Ouvrez la page Webhook entrant en sélectionnant l’option sous le menu Fonctionnalités dans la barre latérale gauche, puis activez le webhook.

Cliquez sur le bouton Ajouter un nouveau webhook à l’espace de travail en bas de la page et sélectionnez votre espace de travail et le canal cible pour les notifications.

Cliquez sur le bouton Autoriser pour continuer. Retournez à la page Webhooks entrants et copiez l’URL du Webhook.

Retournez au terminal et passez au répertoire /etc/netdata.
$ cd /etc/netdata
Netdata fournit un script edit-config pour éditer et créer des fichiers de configuration Netdata. Exécutez le fichier suivant pour créer et ouvrir le fichier health_alarm_notify.conf en utilisant l’éditeur par défaut de votre système.
$ sudo ./edit-config health_alarm_notify.conf
Faites défiler vers le bas jusqu’à la section suivante.
# Activer la notification slack
SEND_SLACK="YES"
# Sélectionner le webhook slack
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/xxxxxxx"
# Canal par défaut pour la notification
DEFAULT_RECIPIENT_SLACK="notifications"
Assurez-vous que la variable SEND_SLACK est définie sur oui. Collez l’URL du webhook copiée dans la variable SLACK_WEBHOOK_URL. Entrez le nom de votre canal pour la variable DEFAULT_RECIPIENT_SLACK.
Si votre éditeur est Vim, appuyez sur la touche Échap pour quitter l’édition, tapez :x et appuyez sur la touche Entrée pour enregistrer le fichier et quitter l’éditeur.
Si votre éditeur est Nano, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Redémarrez Netdata pour appliquer les modifications.
$ sudo systemctl restart netdata
Configurer les notifications par e-mail
Netdata utilise sendmail par défaut pour envoyer des notifications par e-mail, mais gérer un serveur de messagerie n’est pas une tâche facile. Netdata ne prend pas en charge SMTP, mais vous pouvez installer un package appelé client msmtp. Cela vous permet d’envoyer des mails à un serveur SMTP.
Installez msmtp.
$ sudo dnf install msmtp
Créez et ouvrez le fichier de configuration pour msmtp.
$ sudo nano /etc/msmtprc
Collez le code suivant dedans.
# Définir les valeurs par défaut pour tous les comptes suivants.
defaults
# Utiliser le port de soumission de mail 587 au lieu du port SMTP 25.
port 587
# Toujours utiliser TLS.
tls on
# Le serveur SMTP de votre FAI
account ses
host email-smtp..amazonaws.com
from [email protected]
auth on
user
password
# Définir le compte par défaut sur isp
account default: ses
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Ouvrez le fichier /etc/netdata/health_alarm_notify.conf pour l’édition.
$ sudo nano /etc/netdata/health_alarm_notify.conf
Faites défiler vers le bas jusqu’à la section suivante et entrez le chemin vers le msmtp.
# commandes externes
# Le chemin complet vers la commande sendmail.
# Si vide, le système $PATH sera recherché pour cela.
# Si non trouvé, les notifications par e-mail seront désactivées (silencieusement).
sendmail="/usr/bin/msmtp"
Localisez la section suivante et entrez les détails de l’expéditeur et du destinataire et assurez-vous que l’envoi d’e-mails est activé.
# options de notification par e-mail globales
# plusieurs destinataires peuvent être donnés comme ceci :
# "[email protected] [email protected] ..."
# l'adresse e-mail envoyant des notifications par e-mail
# la valeur par défaut est l'utilisateur système sous lequel netdata s'exécute (généralement : netdata)
# Les formats suivants sont pris en charge :
# EMAIL_SENDER="user@domain"
# EMAIL_SENDER="User Name "
# EMAIL_SENDER="'User Name' "
# EMAIL_SENDER="\"User Name\" "
EMAIL_SENDER="Administrateur du serveur <[email protected]>"
# activer/désactiver l'envoi d'e-mails
SEND_EMAIL="YES"
# si un destinataire de rôle n'est pas configuré, un e-mail sera envoyé à :
DEFAULT_RECIPIENT_EMAIL="[email protected]"
# pour ne recevoir que des alarmes critiques, définissez-le sur "root|critical"
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Étape 8 - Tester les canaux de notification
Testons si les notifications Slack fonctionnent.
Connectez-vous en tant qu’utilisateur système netdata créé lors de l’installation.
$ sudo su -s /bin/bash netdata
Exécutez le script de notification d’alarme pour envoyer une notification de test.
$ /usr/libexec/netdata/plugins.d/alarm-notify.sh test
Quittez l’utilisateur.
$ exit.
Ouvrez votre application Slack, et vous devriez avoir reçu les alertes suivantes.

Vous devriez également recevoir trois e-mails concernant les avertissements de test.

Étape 9 - Configurer la surveillance du système
Maintenant que nous avons configuré et testé les notifications, configurons et testons les notifications pour le système, comme l’utilisation du CPU.
Exécutez les commandes suivantes pour créer et ouvrir le fichier de configuration CPU.
$ cd /etc/netdata
$ sudo ./edit-config health.d/cpu.conf
Changez les valeurs des options warn et crit sous 10min_cpu_usage comme indiqué ci-dessous.
warn: $this > (($status >= $WARNING) ? (60) : (70))
crit: $this > (($status == $CRITICAL) ? (75) : (85))
Enregistrez le fichier et quittez l’éditeur.
Le paramètre ci-dessus enverra un avertissement si l’utilisation du CPU se situe entre 60 et 70 % et un avertissement critique lorsque l’utilisation du CPU se situe entre 75 et 85 %.
Redémarrez le service Netdata.
$ sudo systemctl restart netdata
Testons le paramètre en installant l’application Stress.
$ sudo dnf install stress
Exécutez la commande suivante pour augmenter l’utilisation du CPU de votre serveur.
$ stress --cpu 2
Laissez la commande s’exécuter pendant 5 à 10 minutes, et vous recevrez des messages d’utilisation élevée du CPU. Une fois que vous avez reçu ces messages, retournez au terminal et quittez la commande en appuyant sur Ctrl + Z.
Après avoir arrêté le service, vous recevrez une notification de récupération du CPU sur Slack.

Étape 10 - Configurer la surveillance de Nginx
L’une des applications les plus couramment surveillées à l’aide de Netdata est le serveur et les packages SQL. Surveillons le serveur Nginx à l’aide de Netdata.
Pour activer la surveillance du serveur Nginx, nous devons utiliser le ngx_http_stub_status_module. Il est généralement préinstallé avec Nginx. Vous pouvez vérifier si le module est présent.
$ nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module
Si vous ne recevez aucune réponse, cela signifie que votre installation de Nginx ne prend pas en charge cette fonctionnalité. Vous devrez compiler Nginx dans ce cas.
Ouvrez le fichier de configuration par défaut de Nginx /etc/nginx/conf.d/default.conf pour l’édition. L’emplacement du fichier est différent car nous avons installé Nginx à partir de son dépôt officiel. Si vous installez Nginx à partir du dépôt de l’OS, alors l’emplacement du fichier sera /etc/nginx/nginx.conf.
$ sudo nano /etc/nginx/conf.d/default.conf
Entrez le code suivant à l’intérieur du bloc serveur avant la dernière accolade fermante.
# Activer le module stub_status
location /stub_status {
stub_status;
allow 127.0.0.1; # n'autoriser que les requêtes de localhost
deny all; # refuser tous les autres hôtes
}
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Vérifiez la configuration de 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
Redémarrez le serveur Nginx.
$ sudo systemctl restart nginx
Redémarrez le service Netdata.
$ sudo systemctl restart netdata
Vous devriez voir les détails de connexion Nginx dans votre tableau de bord Netdata.

Surveiller les journaux Nginx
Netdata peut également surveiller les journaux d’accès Nginx. Pour ce faire, passez au répertoire Netdata.
$ cd /etc/netdata
Exécutez la commande suivante pour générer un fichier de configuration pour surveiller les journaux d’accès.
$ sudo ./edit-config python.d/web_log.conf
Faites défiler jusqu’en bas du fichier et trouvez la section suivante.
# -------------------------------------------
# journal nginx sur diverses distributions
# 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'
Changez le chemin pour surveiller les fichiers journaux respectifs. Vous pouvez ajouter autant de sections que nécessaire pour surveiller autant d’hôtes et de fichiers journaux d’accès. Notre fichier de configuration ressemble à ceci.
# -------------------------------------------
# journal nginx sur diverses distributions
# 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'
Enregistrez et quittez l’éditeur.
Pour accéder aux fichiers journaux, Netdata a besoin de permissions pour accéder au répertoire. Par défaut, le groupe système adm a la permission d’accéder aux fichiers journaux. Pour donner accès à Netdata, nous devons ajouter l’utilisateur netdata au groupe adm.
$ sudo usermod -aG adm netdata
Redémarrez Nginx et le service Netdata.
$ sudo systemctl restart nginx netdata
Rechargez le tableau de bord Netdata pour voir vos données de fichiers journaux.

Étape 11 - Configurer la surveillance de MySQL/MariaDB
Nous allons installer MariaDB pour notre tutoriel. Les étapes restent les mêmes si vous utilisez un serveur MySQL.
Ajoutez le dépôt pour MariaDB 10.6.
$ sudo nano /etc/yum.repos.d/MariaDB.repo
Collez le code suivant dedans.
# Liste des dépôts MariaDB 10.6 CentOS - créée le 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
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Installez MariaDB.
$ sudo dnf install MariaDB-server
Activez le serveur MariaDB.
$ sudo systemctl enable mariadb
Démarrez le script d’installation sécurisée de MySQL. Le nom du fichier est différent dans le cas de MariaDB.
$ sudo mariadb-secure-installation
....
Entrez le mot de passe actuel pour root (appuyez sur Entrée pour aucun) : (Appuyez sur Entrée)
....
Passer à l'authentification unix_socket [Y/n] Y (Tapez Y et appuyez sur Entrée)
....
Changer le mot de passe root ? [Y/n] Y (Tapez Y et appuyez sur Entrée)
Nouveau mot de passe :
Ressaisissez le nouveau mot de passe :
Mot de passe mis à jour avec succès !
....
Supprimer les utilisateurs anonymes ? [Y/n] Y (Tapez Y et appuyez sur Entrée)
....
Interdire la connexion root à distance ? [Y/n] Y (Tapez Y et appuyez sur Entrée)
....
Supprimer la base de données de test et y accéder ? [Y/n] Y (Tapez Y et appuyez sur Entrée)
....
Recharger les tables de privilèges maintenant ? [Y/n] Y (Tapez Y et appuyez sur Entrée)
....
Tout est fait ! Si vous avez terminé toutes les étapes ci-dessus, votre installation de MariaDB devrait maintenant être sécurisée.
Merci d'utiliser MariaDB !
Ouvrez le fichier /etc/my.cnf.d/server.cnf pour l’édition.
$ sudo nano /etc/my.cnf.d/server.cnf
Trouvez la section [mariadb] dans le fichier et collez la ligne suivante comme indiqué ci-dessous pour activer le plugin Userstats. Ce paramètre ne fonctionne que sur MariaDB et non sur le serveur MySQL.
[mariadb]
userstat = 1
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Démarrez le serveur MariaDB.
$ sudo systemctl start mariadb
Redémarrez le service Netdata.
$ sudo systemctl restart netdata
Le tableau de bord MariaDB/MySQL devrait commencer à apparaître dans le tableau de bord Netdata.

Étape 12 - Configurer la surveillance de PHP-FPM
Vous pouvez surveiller une ou plusieurs instances de PHP-FPM à l’aide de Netdata. Pour notre tutoriel, nous allons installer PHP 8.0 puis activer sa surveillance.
Nous allons installer PHP en utilisant le dépôt Remi. Nous avons déjà installé le dépôt EPEL à l’étape 3. Installez le dépôt Remi.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Vérifiez les flux PHP disponibles.
$ dnf module list php -y
Dernière vérification d'expiration des métadonnées : 0:00:12 il y a le ven 03 déc. 2021 09:39:32 UTC.
Rocky Linux 8 - AppStream
Nom Flux Profils Résumé
php 7.2 [d] commun [d], devel, minimal Langage de script PHP
php 7.3 commun [d], devel, minimal Langage de script PHP
php 7.4 commun [d], devel, minimal Langage de script PHP
Dépôt modulaire de Remi pour Enterprise Linux 8 - x86_64
Nom Flux Profils Résumé
php remi-7.2 commun [d], devel, minimal Langage de script PHP
php remi-7.3 commun [d], devel, minimal Langage de script PHP
php remi-7.4 commun [d], devel, minimal Langage de script PHP
php remi-8.0 commun [d], devel, minimal Langage de script PHP
php remi-8.1 commun [d], devel, minimal Langage de script PHP
Indice : [d]éfaut, [e]nregistré, [x]désactivé, [i]nstallé
La version par défaut est 7.2. Activez le dépôt PHP 8.0 de Remi.
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.0
Ensuite, installez PHP et ses extensions requises par Firefly III. Le package php contient plusieurs dépendances requises par Firefly III, alors assurez-vous de les inclure.
$ 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
Vérifiez l’installation.
$ php --version
PHP 8.0.16 (cli) (construit : 15 fév. 2022 21:34:32) ( NTS gcc x86_64 )
Copyright (c) Le groupe PHP
Zend Engine v4.0.16, Copyright (c) Zend Technologies
avec Zend OPcache v8.0.16, Copyright (c), par Zend Technologies
Configurer PHP
Ouvrez le fichier /etc/php-fpm.d/www.conf.
$ sudo nano /etc/php-fpm.d/www.conf
Nous devons définir l’utilisateur/groupe Unix des processus PHP sur nginx. Trouvez les lignes user=www-data et group=www-data dans le fichier et changez-les en nginx.
...
; Utilisateur/groupe Unix des processus
; Remarque : L'utilisateur est obligatoire. Si le groupe n'est pas défini, le groupe par défaut de l'utilisateur sera utilisé.
; RPM : utilisateur apache choisi pour fournir l'accès aux mêmes répertoires que httpd
user = nginx
; RPM : Garder un groupe autorisé à écrire dans le répertoire de journal.
group = nginx
...
Faites défiler le fichier pour localiser l’option ;pm.status_path = /status. Décommentez la ligne en supprimant le point-virgule devant elle, comme indiqué ci-dessous.
; Remarque : Il existe une page web d'échantillon de surveillance de statut FPM en temps réel disponible
; Elle est disponible dans : @EXPANDED_DATADIR@/fpm/status.html
;
; Remarque : La valeur doit commencer par un slash (/) en premier.
; La valeur peut être n'importe quoi, mais il peut ne pas être judicieux d'utiliser l'extension .php ou cela
; peut entrer en conflit avec un vrai fichier PHP.
; Valeur par défaut : non définie
pm.status_path = /status
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Activez et démarrez le service PHP.
$ sudo systemctl enable php-fpm --now
Ajouter des paramètres PHP à Nginx
Ouvrez le fichier de configuration par défaut de Nginx /etc/nginx/conf.d/default.conf pour l’édition.
$ sudo nano /etc/nginx/conf.d/default.conf
Entrez le code suivant à l’intérieur du bloc serveur avant la dernière accolade fermante.
# définir la surveillance 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; # Dépend de la version de PHP et de la distribution OS
}
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Vérifiez la configuration de 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
Redémarrez le serveur Nginx.
$ sudo systemctl restart nginx
Redémarrez le service Netdata.
$ sudo systemctl restart netdata
Rechargez le tableau de bord Netdata, et vous devriez voir les statistiques PHP-FPM.

Étape 13 - Configurer la surveillance du moteur Docker et des conteneurs
Netdata peut surveiller à la fois le moteur Docker et les conteneurs Docker. Il peut également surveiller les applications s’exécutant à l’intérieur de ces conteneurs, mais nous ne le couvrirons pas dans ce tutoriel.
Commençons par installer 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
Activez et démarrez le service Docker.
$ sudo systemctl enable docker --now
Pour surveiller le moteur Docker, vous devez activer la fonctionnalité de métriques de Docker.
Créez et ouvrez le fichier /etc/docker/daemon.json pour l’édition.
$ sudo nano /etc/docker/daemon.json
Collez le code suivant dedans.
{
"metrics-addr" : "127.0.0.1:9323",
"experimental" : true
}
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Redémarrez les services Netdata et Docker.
$ sudo systemctl restart docker netdata
Chargez à nouveau le tableau de bord Netdata, et vous pouvez voir les statistiques Docker.

Vous verrez une autre entrée nommée Prometheus Metrics sur votre tableau de bord car l’option de métriques a été créée pour le tableau de bord Prometheus.

L’étape suivante consiste à surveiller le conteneur Docker. Netdata utilise des groupes de contrôle, appelés cgroups, pour surveiller les conteneurs Docker. Les groupes de contrôle sont une fonctionnalité de Linux qui limite et suit l’utilisation des ressources d’un ensemble de processus, dans ce cas, des conteneurs. Si vous avez des conteneurs Docker en cours d’exécution lorsque vous installez Netdata, ils sont automatiquement suivis. Cependant, si vous exécutez un conteneur après avoir installé Netdata, vous devez le redémarrer.
Exécutez un conteneur de test.
$ docker container run -d nginx
Vérifiez l’état du conteneur.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
938b2cf30927 nginx "/docker-entrypoint.…" 3 seconds ago Up 2 seconds 80/tcp pensive_lovelace
Le nom du conteneur est tender_murdock comme indiqué. Puisque le conteneur a été démarré après l’installation de Netdata, redémarrez le service.
$ sudo systemctl restart netdata
Chargez le tableau de bord, et vous devriez être en mesure de voir les statistiques du conteneur.

Conclusion
Cela conclut notre tutoriel sur l’installation et l’utilisation du système de surveillance Netdata pour surveiller diverses applications comme Nginx, MySQL, PHP-FPM et Docker sur un serveur Rocky Linux. Si vous avez des questions, postez-les dans les commentaires ci-dessous.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.