Bonjour tout le monde! dans ce nouveau tutoriel, je vais vous montrer une manière plutôt sympa d’avoir des tas de statistiques de son serveur à l’aide d’une interface web : NETDATA! (j’adore les graphiques :3)

Tout d’abord on va expliquer un peu plus en détail le fonctionnement de cet outil!

Netdata est un outil web développé dans le but d’obtenir des statistiques en temps réel. Il permet de mesurer nombre de variables comme l’utilisation du CPU, de la mémoire ram, du disque, des partitions, etc.

Partie 1 : Installation de dépendances

vu que ca fait pas de mal on fait un petit

apt-get update
apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make git autoconf autogen automake pkg-config

et si il ne sont pas déjà installés:

apt-get install curl jq nodejs

Partie 2 : Installation de Netdata

Vu qu’on a tout ce qu’il nous faut! on peut maintenant installer le logiciel à partir de Github:

mkdir /opt #Si il est déjà existant il va y avoir un message d'erreur (normal!)
cd /tmp
git clone https://github.com/firehol/netdata.git --depth=1
cd netdata && ./netdata-installer.sh --install /opt

Normalement, tout est bon! mais si pendant l’installation vous avec une erreur concernant des dépendances inexistantes vous pouvez recommencer en utilisant une option dédiée à ce problème:

Erreur :

Sorry! NetData failed to build...
You many need to check these:
1. The package uuid-dev (or libuuid-devel) has to be installed.
If your system cannot find libuuid, although it is installed
run me with the option: --libs-are-really-here
2. The package zlib1g-dev (or zlib-devel) has to be installed.
If your system cannot find zlib, although it is installed
run me with the option: --libs-are-really-here
3. You need basic build tools installed, like:
gcc make autoconf automake pkg-config
Autoconf version 2.60 or higher is required.
If you still cannot get it to build, ask for help at github:
https://github.com/firehol/netdata/issues

Solution :

cd /opt/netdata/
./netdata-installer.sh --install /opt --libs-are-really-here

Une fois que tout est installé, la bête est lancée. Pour le moment elle n’est accessible depuis l’adresse suivante :

http://127.0.0.1:19999 OU http://nom-de-domaine.tld:19999.

Partie 3 : mise en place du service web

A partir d’ici, deux solutions:

  • Vous voulez utiliser un sous-domaine, comme par exemple : http://netdata.domaine.tld suivez la partie 3.1.
  • Vous voulez utiliser une URI de votre nom de domaine : http://domaine.tld/netdata? Je ne réaliserai pas encore cette partie malheureseument. Mais je reste à votre service pour vous aider.

Partie 3.1 : mise en place d’un sous-domaine

Tout d’abord, vous devez avoir configuré un sous-domaine depuis le panel de gestion de votre sous-domaine chez votre registar. Pour cela différents tutoriels existe.

Le principe des création d’un sous domaine est simple. votre domaine principal (exemple : domaine.tld) peut avoir un sous domaine : exemple.domaine.tld. Ca vous évite d’avoir 35 pages dans un dossier de votre serveur.

Ca a de nombreux avantages mais aussi des inconvénients. Pour faire clair c’est une entité à part entière de votre nom de domaine.

Comme vous l’avez fait pour votre serveur, il faut faire pointer votre sous-domaine (netdata.domaine.tld) sur l’adresse ip de votre serveur (AAA.BBB.CCC.DDD). Une fois cette opération effectuée, validez les changements et attendez un peu le temps que les modifications opèrent.

Une fois ces modifications effectuées, on retourne sur l’interface ssh de notre serveur pour mettre en place le service web correspondant. Pour cela on se dirige dans le dossier où sont contenus les fichiers de configuration web:

cd /etc/nginx/sites-enabled/
nano netdata.conf

et on colle:

upstream backend {
server 127.0.0.1:19999;
keepalive 64;
}
server{
listen 80;
server_name netdata.domaine.tld;
return 301 https://$server_name$request_uri;
}
server {
listen 443 http2;
server_name netdata.domaine.tld;
charset utf-8;
#ssl on;
#ssl_certificate /home/cert/0001_chain.pem;
#ssl_certificate_key /home/cert/privkey.pem;
#include /etc/nginx/conf.d/ssl.conf;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
}
}

Il parait logique qu’il faut remplacer domaine.tld par votre réel nom de domaine.

Une fois cette action effectuée on redémarre le serveur web:

service nginx restart

et voila pour ceux qui veulent c’est accessible à l’adresse suivante :

http://netdata.domaine.tld OU https://netdata.domaine.tld

La redirection du http vers le https se fait automatiquement.

 

Partie 4 : Daemonisation de netdata

La daemonisation d’un logiciel correspond au fait de le rendre exécutable au démarrage. Il répondra aussi à la commande

service XX stop/start/restart

Pour cela les étapes sont assez simples.

On arrête les instances de netdata au cas où elles tournent encore, et on copie le fichier directement depuis la source de netdata.

killall netdata
cd /tmp/netdata/system
cp system/netdata.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable netdata
#on demarre netdata
service netdata start

Et voila! Tout fonctionne normalement et vous pouvez aller voir vos différentes stats à l'adresse suivant : http://netdata.domaine.tld.

Si vous avez des question n'hésitez pas à me contacter par mp ou commentez ce tuto! 😉