Outils pour utilisateurs

Outils du site


doc:formations:hebergement:serveur:monitorix

Monitorix: statistiques de charge de vos serveurs

Détail du service pour la section "observer" du wiki.

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, car ce faisant, vous sortez de la gestion par apt):

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>: activez enabled = y pour sécuriser l'accès
  • Et vous pouvez changer port vers un port moins standard que 8080 (ex. 18890) pour moins l'exposer
  • dans la section <net> et <tc> remplacez eth0 par le nom de votre interface réseau que vous obtenez avec la commande ifconfig (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 apache:

<Location "/monitorix-cgi">
  ProxyPass http://127.0.0.1:18890/monitorix-cgi
  Allow from all;
</Location>
<Location "/monitorix">
  ProxyPass http://127.0.0.1:18890/monitorix
  Allow from all;
</Location>

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)

Retour à la page "observer".

doc/formations/hebergement/serveur/monitorix.txt · Dernière modification : 2021/03/05 01:02 de jeremie