Catégories
Supervision

Installer Netdata – Outil de Monitoring Debian 9 Stretch

Netdata est un outil dynamique de monitoring Instantané pour Linux. Netdata se présente sous la forme d’un panel siteweb, ergonomique et en direct qui s’actualise en permanence.
J’insiste bien sur le mot Instantané, car Netdata n’a pas pour vocation de vous donner la fréquentation de votre Siteweb du mois dernier ou de l’année passé, dans ce cas-là il est préférable d’utiliser Munin, (d’autant plus qu’il permet les instances master and slave, j’en ferait un mémo à l’ocaz’).

« Monitoré » ces serveurs, fait partie des bonnes pratique indispensable d’un SysAdmin. Cela permet principalement de connaître et de mesurer le niveau de charge de votre serveur, est bien évidemment de garder un œil sur le bon fonctionnement de votre serveur en un coup d’œil.

Je l’utilise au quotidien à titre personnel depuis plus de 6 mois, est j’en suis plus que franchement amoureux. La combinaison avec Munin est recommandée, car disons que l’un ne replace pas l’autre malheureusement.


Je vous invite à faire un petit tour sur leur Site ou sur leur Git qui propose une documentation suffisamment exhaustive a mon goût, mais malheureusement disponible seulement en anglais.

Netdata ne requière aucun serveur web, il possède sont propre serveur web embarqué. Il est cependant possible d’y accéder par un reverse proxy via apache ou nginx.

Installation des paquets pré-requis

Quelques pré-requis pour le bon fonctionnement de Netdata. Le détail de l’utilité de chacun des paquets ne serait pas intéressant a développer ici, je vous invite à vous référé à la documentation officielle de Netdata.

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

Installation de Netdata

Rien de plus simple Netdata s’installe presque tous seul.

git clone https://github.com/firehol/netdata.git --depth=1

cd netdata

./netdata-installer.sh

Il est également livré avec un fichier à simplement exécuté pour faire les mise à jours de Netdata.

./netdata-updater.sh

Vous pouvez bien évidement automatiser les mises à jour avec une tache cron.

# Edition de la crontab
crontab -e

# Ajout d'une cron tab. Ici nous allons mettre à jour netdata tous les jours à 6:00AM
0 6 * * * /netdata/netdata-updater.sh

Utiliser Netdata derrière Apache

Pour cela rien de bien insurmontable. Il suffit de posséder et d’activer deux modules.
Si vous avez suivi mon tutoriel pour installer un serveur LAMP sous Debian 9, vous n’aurez qu’à les activer.

# installation des mod_proxy de apache si ce n'est pas déjà fait
apt-get install libapache2-mod-proxy-html

# Activation des deux modules nécessaires
a2enmod proxy
a2enmod proxy_http

Ensuite, il suffit juste de créer ou de modifier un virtualhost existant.

<VirtualHost *:80>
	RewriteEngine On
	ProxyRequests Off
	ProxyPreserveHost On
	
	ServerName netdata.domain.tld

	<Proxy *>
		Require all granted
	</Proxy>

	ProxyPass "/" "http://localhost:19999/" connectiontimeout=5 timeout=30 keepalive=on
	ProxyPassReverse "/" "http://localhost:19999/"

	ErrorLog ${APACHE_LOG_DIR}/netdata-error.log
	CustomLog ${APACHE_LOG_DIR}/netdata-access.log combined
</VirtualHost>

Utiliser Netdata derrière Nginx

Même chose que pour apache rien de bien insurmontable, pour Nginx pas besoin de module à activer ou installer.

upstream backend {
    # the netdata server
    server 127.0.0.1:19999;
    keepalive 64;
}

server {
    # nginx listens to this
    listen 80;

    # 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;
    }
}

Désactivation des notifications par mail

Comme vous l’aurez devinez Netdata est un vrai couteau Suisse, il permet même d’envoyer des mail lorsqu’il y a un souci.

Ces notifications par mail, peuvent être un avantage comme un inconvénient selon nos besoins. Je vais donc vous montrer comment les désactiver.
Il suffit simplement de changer « YES » en « NO » dans le fichier de configuration des notifications.

# Modifier SEND_EMAIL="YES" en SEND_EMAIL="NO"

Utilisation de l’API avec les Badges


Les badges sont bien utiles et sympas, pour présenter quelques statistiques de votre serveur sur vos sites web.
L’API de Netdata nous permet beaucoup de possibilités.
Il existe de nombreux paramètre, il serait difficile pour moi de tous les expliquer sans en oublier, je vous conseille de vous rendre dans la documentation.

<a href="#">
     <img src="https://registry.my-netdata.io/api/v1/badge.svg?chart=system.cpu"></img>
</a>

Conclusion

Vous avez à présent un dashboard dynamique très ergonomique, fonctionnel et beau. Pour avoir un bon suivis de vos serveurs, il ne vous reste plus que a installer Munin qui permet un suivi sur le long terme.
Je ferais probablement un long article dédié à Munin prochainement pour compléter celui-là, car je l’utilise depuis la nuit des temps sur mes serveurs. Comme dis au début de cet article, je pense que l’un ne remplace pas l’autre, mais les deux sont de très bon compagnons du Sysadmin.

Sources :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.