Contexte

Le check Stats NFS by SNMPv1v2 va récupérer les statistiques de votre NFS pour vous les renvoyer sous forme de métriques visibles dans l'interface de Visualisation.


Paramétrage

Le check utilise la ligne de commande suivante :


$LINUX-BY-SNMP__SHINKEN__PLUGINSDIR$/check_linux_health_by_snmp_rust --check check_stats_nfs
    -H "$HOSTADDRESS$"
    -p "$_HOSTLINUX-BY-SNMP__PORT$"
    -t "$_HOSTLINUX-BY-SNMP__TIMEOUT$"
    -F "$_HOSTLINUX-BY-SNMP__WORKING-FOLDER-BASE-PATH$/$_HOSTLINUX-BY-SNMP__WORKING-FOLDER-TMP-DIRNAME$"
    --snmp_version "2"
    --community "$_HOSTLINUX-BY-SNMP__V1V2-COMMUNITY$"

Données utilisées provenant des modèles

Données communes pour les checks des modèles

Les données communes pour certain checks

Données spécifiques pour ce check

Pas de données spécifiques pour ce check

Données DFE ( Duplicate Foreach )

Pas de données DFE pour ce check

Données utilisées provenant du check

Pas de données provenant du check pour ce modèle

Résultat

Exemple

Interprétation des données

Statut

  • Il peut prendre 3 valeurs  OK / CRITIQUE / INCONNU 

    • Voici un tableau récapitulatif du statut attendu suivant le retour de sonde :



Le texte de la colonne  "Affichage des seuils" montre les paramètres utilisés et leur valeur définie sur l'équipement supervisé.

 

Situation Statut Exemple
  • Les données ont bien étés collectés.
OK




Résultat

Le résultat contient un message indiquant le statut du check.

Résultat Long

Pas de résultat long.

Métriques

Nom de la métriqueDescription
WB_by_s

Quantité de données écrites par seconde ( B/s ).

RB_by_s

Quantité de données lues par seconde ( B/s ).

proc2_W_by_s

Nombre d'écritures par seconde ( NFS version 2 ).

proc2_R_by_s

Nombre de lectures par seconde ( NFS version 2 ).

proc3_W_by_s

Nombre d'écritures par seconde ( NFS version 3 ).

proc3_R_by_s

Nombre de lectures par seconde ( NFS version 3 ).

proc4_W_by_s

Nombre d'écritures par seconde ( NFS version 4 ).

proc4_R_by_s

Nombre de lectures par seconde ( NFS version 4 ).

Erreurs et pré-requis

Erreurs de configuration de l'hôte à superviser ( spécifique à ce check )

Permission denied: SNMP daemon (snmpd) cannot access /proc/net/rpc/nfsd

Le check va lire le fichier '/proc/net/rpc/nfsd' ce qui nécessite les droits de lecture.

RESOLUTION :

Cette erreur est très fréquemment générée par le module de sécurité SELinux.
Vous pouvez vérifier si SELinux est activé avec la commande :

sestatus

Vous devriez observer parmi le résultat les ligne suivante :

SELinux status:                 enabled
Current mode:                   enforcing


Si SELinux est bien activé et en mode 'enforcing' , vous pouvez alors rajouter des règles afin de permettre au service SNMP (snmpd) à accéder aux fichiers voulus.
Si un autre module de sécurité est installé sur votre hôte distante, il faudra le configurer de façon similaire.


RÉSOLUTION PAR SCRIPT :

Dans le script de configuration d'hôte livré dans le pack, une option permet de rajouter ces règles.
Déployez le dossier 'supervised-host' sur votre hôte (scp, ftp ..).
Sur l'hôte distante, exécutez :

cd supervised-host
./configure-host.sh --configure-selinux


RÉSOLUTION MANUELLE :

Sur l'hôte distante, exécutez les commandes suivantes :

mkdir -p /etc/selinux/shinken
vim /etc/selinux/shinken/linux-by-SNMP__shinken.te

Dans le fichier, remplissez et sauvegardez :

module linux-by-SNMP__shinken 1.0;
require {
    type snmpd_t;
    type sysctl_rpc_t;
    type faillog_t;
    class file { read open getattr };
    class dir { search };
}
# Rules for check Stats NFS by SNMPvXXX
# Allow snmpd to read /proc/net/rpc/nfsd
allow snmpd_t sysctl_rpc_t:file { read open getattr };
# Autorisation pour accéder au dossier /proc/net/rpc
allow snmpd_t sysctl_rpc_t:dir { search };

# Rules for check Connection Failed by SNMPvXXX
# Allow snmpd to read /var/log/btmp
allow snmpd_t faillog_t:file { read open getattr };


Puis exécutez :

checkmodule -M -m -o "/etc/selinux/shinken/linux-by-SNMP__shinken.mod" "/etc/selinux/shinken/linux-by-SNMP__shinken.te"
semodule_package -o "/etc/selinux/shinken/linux-by-SNMP__shinken.pp" -m "/etc/selinux/shinken/linux-by-SNMP__shinken.mod"
semodule -i "/etc/selinux/shinken/linux-by-SNMP__shinken.pp"

Ces commandes vont compiler, empaqueter et installer le module SELinux créé.

SNMP agent is not configured with extended exec 'shinken__linux-by-snmp__stats-nfs__nfsd'

Le check demande une configuration supplémentaire afin d'exécuter des commandes via des requêtes SNMP. Sans cette configuration, l'erreur suivante sera générée :

RESOLUTION :

Ouvrez le fichier de configuration SNMP. ( "/etc/snmp/shinken/linux-by-SNMP__shinken.conf" ou "/etc/snmp/snmpd.conf" selon votre configuration ).

vim /etc/snmp/shinken/linux-by-SNMP__shinken.conf
# vim /etc/snmp/snmpd.conf

Rajoutez cette ligne si elles n'y est pas :

extend shinken__linux-by-snmp__stats-nfs__nfsd /bin/sh -c "export LC_LANG=C && unset LANG && cat /proc/net/rpc/nfsd"

Il faudra ensuite redémarrer le serveur SNMP ( snmpd )

service snmpd restart
# Ou bien en utilisant systemctl
systemctl restart snmpd