munin:accueil

Ceci est une ancienne révision du document !


Munin

apt install munin-node munin-plugins-extra

Il est possible de visualiser l'état des plugins (données collectées):

munin-node-configure

En rajoutant --suggest, il est possible de savoir quels plugins il est pertinent d'activer et lesquels posent problème.

L'activation d'un plugin se fait en faisant un lien symbolique de /usr/share/munin/plugins/<plugin> vers /etc/munin/plugins/.

Pour les plugins qui proposent plusieurs infos (signalés par un plus dans la liste), il faut créer le lien symbolique en ajoutant un underscore et le nom du sous-plugin.

Après chaque modification, il faut redémarrer le service munin-node.

Plugins

Nginx

Pour Nginx, il faut installer le paquet libwww-perl et ajouter dans la partie server du fichier /etc/nginx/conf.d/default.conf:

    location /nginx_status {
        stub_status on;    # return basic status information
        access_log off;
        allow 127.0.0.1;   # restrict access to local only
        deny all;
    }
MySQL

Pour MySQL, il faut installer le paquet libcache-cache-perl.

PiHole

Plugin pour monitorer PiHole: https://github.com/Rauks/MuninPiholePlugins mais préférer le fork https://github.com/RenWal/MuninPiholePlugins qui contient un graphe en plus.

Il faut créer un token depuis l'interface d'administration de PiHole et l'utiliser :

  • /admin/api.php?summary&auth=$envtoken, il faut ensuite supprimer le séparateur des milliers :
    stats=$(echo $apicall | sed 's/[{}"]//g' | sed -E "s/([0-9]),([0-9])/\1\2/g" | tr "," "\n")
  • /admin/api.php?getQueryTypes&auth=$envtoken
Débit Internet

Pour monitorer le débit de la connexion Internet, utiliser l'outil de Ookla : https://www.speedtest.net/apps/cli. Il est ensuite possible de stocker le résultat de la commande suivante dans un fichier :

speedtest --accept-license --accept-gdpr --format=json-pretty

et ensuite utiliser les deux plugins suivants :

latency
#!/bin/bash
 
case $1 in
	config)
	echo "graph_category network"
	echo "graph_title Latency"
	echo "graph_args -l 0"
	echo "graph_vlabel ms"
	echo "graph_scale no"
	echo "latency.label Latency"
	echo "latency.type GAUGE"
	echo "latency.draw LINE1"
	echo "graph_info Graph of Internet Connection Latency"
	exit 0;;
esac
 
OUTPUT=$(jq .ping.latency speedtest.out)
 
echo "latency.value $OUTPUT"
speedtest
#!/bin/bash
 
case $1 in
	config)
	echo "graph_category network"
	echo "graph_title Speedtest"
	echo "graph_args --base 1000 -l 0"
	echo "graph_vlabel DL / UL"
	echo "graph_scale no"
	echo "down.label DL"
	echo "down.type GAUGE"
	echo "down.draw LINE1"
	echo "up.label UL"
	echo "up.type GAUGE"
	echo "up.draw LINE1"
	echo "graph_info Graph of Internet Connection Speed"
	exit 0;;
esac
 
DOWNLOAD=$(jq ".download.bandwidth*8/1e6" speedtest.out)
UPLOAD=$(jq ".upload.bandwidth*8/1e6" speedtest.out)
 
echo "down.value $DOWNLOAD"
echo "up.value $UPLOAD"

== Taille de dossiers

du_
#!/bin/bash
 
: <<=cut
 
=head1 NAME
 
du - Size of directories
 
=head1 CONFIGURATION
 
Put this file in `/usr/local/share/munin/plugins/du_`. Then, create a symbolic
link to this file called, for instance, `du_work`. `work` will be the name of
the graph.
 
The configuration should look like the following:
```
[du_work]
    env.directories /path/to/dir1 /path/to/dir2
    env.prefix /path/to/
    env.critical 1073741824
```
- `directories` contains a space-separated list of directories to report size of.
- `prefix` (optionnal) is the prefix of directories to hide in graph labels.
- `critical` (optionnal) is the critical size (in bytes) for all directories.
 
=cut
 
GRAPH_NAME=${0##*du_}
DIRECTORIES=${directories:-UNSET}
CRITICAL=${critical:-UNSET}
PREFIX=${prefix:-UNSET}
 
 
case $1 in
    config)
        echo "graph_title Directory size $GRAPH_NAME"
        echo "graph_category disk"
        echo "graph_args --base 1024 -l 0"
        echo "graph_vlabel Size"
        echo "graph_info Graph of size occupied by directories"
 
        for d in $DIRECTORIES
        do
            slug=$(echo $d | sed 's/\//_/g')
 
            if [ "$PREFIX" != "UNSET" ]; then
                echo "${slug}.label ${d#"$PREFIX"}"
            else
                echo "${slug}.label $d"
            fi
            echo "${slug}.type GAUGE"
            echo "${slug}.draw LINE1"
 
            if [ "$CRITICAL" != "UNSET" ]; then
                echo "${slug}.critical $CRITICAL"
            fi
        done
 
        exit 0;;
esac
 
for d in $DIRECTORIES
do
    slug=$(echo $d | sed 's/\//_/g')
    echo "${slug}.value $(du -sb $d | cut -f 1)"
done
Données SMART d'un disque dur

Installer et activer les données SMART du disque dur.

Copier le plugin smart_<disque dur>, même si Munin ne le suggère pas.

Il est possible de désactiver les avertissements en désactivant la variable report_warnings directement dans le script.

Données des disques durs montés dans un sous-dossier de /home

Il faut ajouter ProtectHome=false à la surcharge du service (voir Autoriser les plugins à accéder au dossier temporaire) (Source)

SSH

https://github.com/munin-monitoring/contrib/blob/master/plugins/ssh/sshd_log

[sshd_log]
user root
group root
env.logfile /var/log/auth.log
env.type DERIVE
Autoriser les plugins à accéder au dossier temporaire

Surcharger le service munin-node avec le contenu suivant:

[Service]
PrivateTmp=false

Source

Debuguer

Il est possible d'exécuter la commande suivante pour simuler la réponse que recevra Munin en interrogeant le plugin:

sudo munin-run <plugin>

Une façon plus sûre de tester (pour vraiment voir ce que va obtenir le serveur Munin):

nc localhost 4949
# munin node at <hostname>
fetch <plugin>
# ... réponse ...

apt install munin

Les noeuds dont il faut récolter les données sont définis dans le fichier /etc/munin/munin.conf.

Il est possible de spécifier le port d'écoute des noeuds (par défaut Munin communique sur le port 4949, ne pas oublier de l'ouvrir sur les pare-feus !):

[host]
    address 127.0.0.1
    port 4950
    use_node_name yes

Pour préciser les groupes, visibles dans l'interface web:

[groupe;host]

Les fichiers de l'interface web sont générés dans le dossier /var/cache/munin/www.

Changer le thème

Déplacement des données vers un nouveau serveur

Il faut copier tous les fichiers *.rrd du répertoire /var/lib/munin/.

Source

  • munin/accueil.1735125736.txt.gz
  • Dernière modification : 2024/12/25 12:22
  • de phsw