Ceci est une ancienne révision du document !
Table des matières
Monitorix: statistiques de charge de vos serveurs
C'est un "démon" qui tourne en tache de fond sur votre serveur et qui vous présente des graphes d'usage et de charge selon différents critères. Il peut "monitorer" aussi des serveurs tiers, afin de rassembler vos graphes.
Il vient avec son propre petit serveur HTTP pour présenter ses résultats.
Installation
Si monitorix n'est pas disponible sur votre distribution (pas assez récente), vous pouvez installer un repo dédié (évitez cela si ce n'est pas nécessaire):
echo 'deb http://apt.izzysoft.de/ubuntu generic universe' > /etc/apt/sources.list.d/monitorix.list wget http://apt.izzysoft.de/izzysoft.asc apt-key add izzysoft.asc apt update
Enfin:
apt install monitorix apache2-utils
Configuration locale
Ensuite, configurez le fichier /etc/monitorix/monitorix.conf
, pour les champs suivants:
title
hostname
: le nom complet de votre serveur (ex.stats.tecrd.com
)- Section
<auth>
: activezenabled = y
pour sécuriser l'accès - Et vous pouvez changer
port
vers un port moins standard que8080
(ex.18890
) pour moins l'exposer - dans la section
<net>
et<tc>
remplacezeth0
par le nom de votre interface réseau que vous obtenez avec la commandeifconfig
(ex.enp0s1
)
Enfin, créez vos identifiants d'accès:
htpasswd -d -c /var/lib/monitorix/htpasswd jeremie
Et relancez le service:
service monitorix restart
Pour y accéder, vous devrez aller sur "http://stats.tecrd.com:8080/monitorix"
Configuration avancée
Doc complète: https://www.monitorix.org/documentation.html
Dans la section <graph_enable>
vous pouvez activer ou surtout désactiver certains graphiques. Afin de vous concentrer sur les plus utiles, je vous conseille de retirer les plus techniques ou certains qui ne sont pas très utiles à moins d'avoir plusieurs utilisateurs loggués sur la machine:
kern
,proc
(sauf pour un serveur de calcul, SIG etc),netstat
,serv
,port
(sauf à vouloir détecter quel protocole réseau vous prend la bande passante),int
,user
(à moins d'avoir plusieurs utilisateurs sur votre serveur)
Dans le bloc <graph>
vous pouvez désactiver certain sous-graphes (qui disparaitront de l'affichage "multi serveur", ci-dessous). Il suffit d'ajouter un #
en tête des lignes suivantes:
_system4 = Entropy
_fs3 = Inode usage
_fs4 = Time spent in I/O activity
_net3 = Network errors
Ajouter des serveurs externes
Monitorix peut observer les autres serveurs que vous avez, enfin de centraliser la chose. Pour cela vous devrez l'installer sur chacun de ce serveurs, mais leur dire de "pousser" les statistiques vers votre central.
Sécurisation par HTTPS
Vous pouvez servir les graphes via un proxying du serveur web en place, et donc bénéficier de l'HTTPS. Sous nginx, c'est un simple bloc dans la configuration du site comme ci-dessous (ex. sauvez le sous /root/monitorix.conf
et ajoutez un include /root/monitorix.conf
de ce bloc de configuration dans votre /etc/nginx/local.conf
):
location /monitorix { include proxy_params; proxy_pass http://127.0.0.1:18890/monitorix; allow 127.0.0.0/8; location ~ ^/monitorix/(.+\.png)$ { alias /var/lib/monitorix/www/$1; } }
Comme monitorix discute par défaut sous un protocole non crypté (HTTP), une fois le proxy ci-dessus en place vous pouvez indiquer host: localhost
dans la section <httpd_builtin>
de /etc/monitorix/monitorix.conf
et le relancer avec service monitorix restart
. Ainsi il n'écoutera que localement sur le serveur et ne fournira plus d'accès externe. Le proxy fonctionnant en interne, le problème est réglé.
si vous installez ce service en addition d'un serveur mailinabox, ce dernier regénère la configuration nginx à 3h du matin tous les jours. Vous pouvez ajouter une crontab de ce type pour remettre l'include en place:
15 3 * * * root (cd /etc/nginx/conf.d && grep -q monitorix.conf local.conf || sed -i '/# Roundcube Webmail configuration./i include "/root/monitorix.conf"; # added by cron' local.conf && service nginx restart)