Monitoring

Voici quelques possibilités pour surveiller la charge de votre serveur.

systat

Systat est présent par défaut dans OpenBSD. Vous pouvez obtenir des informations sur le système en temps réel en saisissant la commande systat vm. Vous aurez alors des informations sur l’utilisation de la mémoire, des processeurs, des disques…

Pour avoir des informations sur le débit montant et descendant, tapez systat ifstat. Vous observerez en temps réel la quantité de données entrantes (IBYTES) et sortantes (OBYTES).

Pour des informations concernant la température du matériel (si vous craignez la surchauffe!), tapez systat sensors.

cpu0.temp0          51.00 degC
acpitz0.temp0       26.80 degC      zone temperature

À chaque fois, appuyez sur la touche q pour quitter.

vmstat

Lui aussi présent par défaut, vmstat donne un aperçu rapide sur la charge du système :

$ vmstat
 procs    memory       page                    disks    traps          cpu
 r   s   avm     fre  flt  re  pi  po  fr  sr sd0 sd1  int   sys   cs us sy id
 1 274 1500M   1253M  657   0   0   0   0   0   1   4  190 15482 1826  2  1 97

symon

Symon va vous permettre d’obtenir des statistiques sur les ressources utilisées par votre serveur et de les consulter sur une page web.

Commençons par installer le nécessaire :

# pkg_add symon symux syweb

On modifie ensuite la configuration de symon qui va surveiller le système. Pour cela, on modifie le fichier /etc/symon.conf et on garde les informations qui nous intéressent :

monitor { cpu(0),  mem,
          if(lo0),
          if(re0),
          pf,
          mbuf,
          sensor(cpu0.temp0),
          proc(httpd),
          io(wd0),
          io(wd1),
          df(sd1b)
} stream to 127.0.0.1 2100

De la même façon, on configure symux qui va analyser les données recueillies par symon. On édite le fichier /etc/symux.conf :

mux 127.0.0.1 2100

source 127.0.0.1 {
  accept { cpu(0),  mem,
      if(lo0),
      if(re0),
      pf,
      mbuf,
      sensor(cpu0.temp0),
      proc(httpd),
      io(wd0),
      io(wd1),
      df(sd1b)
  }

  datadir "/var/www/symon/rrds/localhost"
}

On ne fait que reproduire les mêmes éléments que dans /etc/symon.conf. Attention à bien indiquer le chemin vers les données datadir. On va d’ailleurs le créer dès maintenant :

# mkdir -p -m 0755 /var/www/symon/rrds/localhost

On crée maintenant les fichiers rrd :

# /usr/local/share/examples/symon/c_smrrds.sh all

Puisque le serveur web est dans un chroot, il faut lancer la commande suivante pour installer l’outil d’analyse des données et ses dépendances (rddtool) :

# /usr/local/share/examples/rrdtool/rrdtool-chroot enable

Une fois ceci fait, il faut préciser dans la configuration de syweb où trouver l’outil rrdtool. Dans le fichier /var/www/htdocs/syweb/setup.inc, modifiez si nécessaire la ligne contenant $symon['rrdtool_path'] ainsi :

$symon['rrdtool_path']='/usr/local/bin/rrdtool';

Reste une dernière modification à apporter. Puisque le serveur web est en chroot, il faut lui donner accès au shell /bin/sh afin que PHP puisse lancer rrdtool qui génère les graphiques :

# mkdir -p /var/www/bin
# cp /bin/sh /var/www/bin

On recharge tous les nouveaux démons après les avoir activés :

# rcctl enable symon
# rcctl enable symux
# rcctl start symon
# rcctl start symux

On ajoute la configuration convenable pour le serveur http, dans le fichier /etc/httpd.conf :

server "statistiques.chezmoi.tld" {
        listen on * port 80  
        root "/htdocs/syweb"
        directory index index.php

        location "*.php*" {
                fastcgi socket "/run/php-fpm.sock"
        }
}

Reste à recharger ce dernier avec # rcctl reload httpd puis à aller sur le site définit pour voir les beaux graphiques.

symon

monit

Monit est un outil léger open source (licence AGPL) permettant de superviser un système Unix. Il est capable d’exécuter des actions en cas de détection de défaillance ou de dépassement de seuil. Une interface web permet de superviser en temps réel les différents services paramétrés.

Installation

Commençons par installer le nécessaire et activer le démon monit :

# pkg_add monit
# rcctl enable monit

Configuration

Ensuite, la configuration centrale de Monit se fait au sein du fichier monitrc localisé sous /etc/. Dans ce fichier, vous pouvez notamment modifier l’adresse email qui recevra les alertes.

Enfin, les configurations complémentaires sont dans le répertoire /etc/monit.d/.

Nous allons maintenant configurer le serveur d’administration sur un socket TCP local. Éditez le fichier /etc/monitrc puis décommentez tout en bas la ligne

include /etc/monit.d/*

Nous pouvons maintenant procéder à la configuration en ajoutant des fichiers dans le dossier /etc/monit.d qu’il faut créer :

# mkdir -p /etc/monit.d

Placez dans ce dossier un fichier que l’on appellera par exemple admin.conf.

set daemon  60 with start delay 240
set logfile syslog facility log_daemon
set mailserver localhost
set mail-format {
from: monit@$HOST
subject: Monit Alert -- $SERVICE $EVENT --
message:
Hostname:       $HOST
Service:        $SERVICE
Action:         $ACTION
Date/Time:      $DATE
Info:           $DESCRIPTION
}

set alert root@localhost

L’instruction “set daemon” permet de définir la durée d’un “cycle” monit. Un cycle correspond à l’intervalle (en secondes) entre deux vérifications. Dans cet exemple, il commence à analyser votre serveur toutes les minutes après un délai de 4 minutes.

Cette partie permet de préciser que monit devra enregistrer ses journaux dans les logs système. Ensuite, on configure l’apparence du mail que monit enverra à l’adresse root@localhost. Assurez-vous d’avoir fait en sorte de recevoir les mails que votre serveur est susceptible de vous envoyer.

Avant de lancer Monit, vérifiez bien que la syntaxe des fichiers de configuration est bonne avec la commande :

# monit -t

Vous devez obtenir une belle réponse « Control file syntax OK ».

En cas de dysfonctionnement, Monit vous enverra un mail d’alerte (attention à bien configurer votre mail et serveur dans le fichier monitrc).

Lancement de monit

Le démarrage de monit est simple :

# rcctl start monit

Utilisation

La commande suivante permet d’obtenir le status détaillé de votre serveur :

# monit status
Monit uptime: 0m
System 'openheb.fritz.box'
  status                       Running
  monitoring status            Monitored
  monitoring mode              active
  on reboot                    start
  load average                 [0.08] [0.11] [0.08]
  cpu                          0.1%us 0.1%sy
  memory usage                 81.1 MB [4.0%]
  swap usage                   0 B [0.0%]
  uptime                       2d 21h 30m
  boot time                    Tue, 14 Mar 2017 19:06:34
  data collected               Fri, 17 Mar 2017 16:37:25

Il est possible de consulter l’interface web de Monit sur votre serveur car il intègre un petit service http. Cependant, ce n’est pas très pratique car cela suppose que vous ouvrez les ports de votre serveur vers Monit…

À la place, je vous propose de passer par un tunnel SSH. Sur votre ordinateur de bureau, créez un tunnel qui va “relier” le port de Monit vers le port 9999 de votre ordinateur (le port d’écoute du serveur SSH est le 222 dans l’exemple) :

$ ssh -L 9999:127.0.0.1:2812 -p 222 toto@chezmoi.tld

Vous pouvez maintenant ouvrir dans un navigateur sur votre ordinateur la page http://127.0.0.1:9999 afin de consulter Monit.

Configuration avancée des alertes

Monit peut aussi envoyer des e-mails d’alerte en cas d’utilisation de ressources anormales, comme une mémoire vive faible ou un taux d’utilisation du CPU trop important.

Nous allons maintenant compléter notre configuration afin de surveiller la charge de notre serveur. Pour cela, nous allons ajouter les lignes suivantes à notre fichier de configuration:

check system localhost
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if swap usage > 25% then alert
    if cpu usage (user) > 70% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert

Puis, il faut recharger la configuration :

# rcctl reload monit

Ainsi, une alerte par courriel sera envoyée dès que le système utilisera plus de 30% des capacités du ou des processeurs.

Plus d’infos, sur le site de Monit. L’ensemble des applications de votre serveur peuvent être facilement monitorées. Regardez les exemples à la fin du document.


Page suivante →