Vous souhaitez pouvoir monitorer votre serveur, mais sans avoir à déployer une suite complète comme librenms ? Alors Netdata est fait pour vous !

C’est une solution de monitoring très légère qui affiche via un dashboard l’ensemble des informations sur l’usage des ressources de votre serveur. On y retrouve l’usage CPU, RAM, des disques avec chaque partitions mais également le détail des applications comme memcached, postfix ou redis.

Cependant, à la différence des autres solutions, Netdata ne liste absolument aucune information pouvant présenter un risque sur le plan sécurité. L’avantage est qu’il n’est pas nécessaire de limiter l’accès à la dashboard et cette dernière dispose de son propre web server qui ne démarre que lorsque vous consulter la page.

Vous pouvez utiliser le kickstart script pour installer netdata :

# Tous les systèmes linux bash <(curl -Ss https://my-netdata.io/kickstart.sh) all

Si vous choisissez l’installation manuelle, il faut d’abord installer les packages suivant :

# Debian / Ubuntu apt-get install zlib1g-dev uuid-dev libmnl-dev gcc make git autoconf autogen automake pkg-config curl jq nodejs # Centos / Fedora / Redhat yum install zlib-devel libuuid-devel libmnl-devel gcc make git autoconf autogen automake pkgconfig curl jq nodejs

Puis il vous suffit alors de cloner le dépôt github, puis d’exécuter netdata-installer.sh :

# download it - the directory 'netdata' will be created git clone https://github.com/firehol/netdata.git --depth=1 cd netdata # build it, install it, start it ./netdata-installer.sh

Vous pourrez alors accéder à netdata via l’adresse http://IP-DE-VOTRE-SRV:19999

Enfin pour ce qui est des mise à jour de netdata, vous pouvez ajouter un cron pour exécuter régulièrement le fichier netdata-updater.sh.

Monitorer nginx :

Pour monitorer nginx, il suffit d’autoriser l’accès à la page des status pour que netdata puisse récupérer les statistiques d’utilisation. La façon la plus simple de procéder est d’ajouter cette autorisation dans le vhost defaut. On modifie donc le fichier :

nano /etc/nginx/sites-available/default

Et on y ajoute l’emplacement :

# Status pages location /stub_status { stub_status on; access_log off; allow 127.0.0.1; deny all; }

Pour que netdata prennent en compte le changement, on redémarre le service.

service netdata restart

Et vous pourrez alors visualiser dans votre dashboard la section nginx local.

Netdata derrière un reverse-proxy

Si vous souhaitez accéder au panel netdata directement via votre domaine et/ou y accéder via https, il vous faudra mettre en place un reverse-proxy.

Ayant une préférence pour nginx, voici le fichier de configuration à créer pour utiliser netdata pour un domaine :

upstream backend { # the netdata server server 127.0.0.1:19999; keepalive 64; } server { # the virtual host name of this server_name netdata.example.com; 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; } }

Et la configuration si vous préférez accéder à netdata via un sous-dossier :

upstream netdata { server 127.0.0.1:19999; keepalive 64; } server { # the virtual host name of this subfolder should be exposed #server_name netdata.example.com; location /netdata { return 301 /netdata/; } location ~ /netdata/(?.*) { proxy_redirect off; proxy_set_header Host $host; 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_http_version 1.1; proxy_pass_request_headers on; proxy_set_header Connection "keep-alive"; proxy_store off; proxy_pass http://netdata/$ndpath$is_args$args; gzip on; gzip_proxied any; gzip_types *; } }

Utiliser les badges

Une des raisons pour lesquelles vous allez probablement utiliser un reverse-proxy est la possibilité d’afficher en temps réel des badges avec les informations de votre serveur.

Example avec quelques statistiques de mon serveur :



Dont le code est :

<img src="https://status.virtubox.net/netdata/api/v1/badge.svg?chart=system.cpu&alarm=10min_cpu_usage&refresh=auto"/> ><img src="https://status.virtubox.net/netdata/api/v1/badge.svg?chart=system.ram&alarm=ram_in_use&refresh=auto" /> ><img src="https://status.virtubox.net/netdata/api/v1/badge.svg?chart=disk_util.sda&alarm=10min_disk_utilization&refresh=auto" /> ><img src="https://status.virtubox.net/netdata/api/v1/badge.svg?chart=nginx_local.connections&refresh=auto" />

Vous pouvez trouver plus d’informations à propos de netdata dans la documentation officielle.

Edit du 22/07/2017 :

J’ai commencé la réalisation d’une dashboard custom basée sur un template bootstrap 4, que vous pouvez voir sur la page de demo et dont le code est disponible sur github.