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 :


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

Définition

Nom de la métriqueUnitéDescriptionSeuil d'avertissementSeuil critique
WB_by_sB/s

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

--

--

RB_by_sB/s

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

--

--

proc2_W_by_sW/s

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

--

--

proc2_R_by_sR/s

Nombre de lectures par seconde ( NFS version 2 ).

--

--

proc3_W_by_sW/s

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

--

--

proc3_R_by_sR/s

Nombre de lectures par seconde ( NFS version 3 ).

--

--

proc4_W_by_sW/s

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

--

--

proc4_R_by_sR/s

Nombre de lectures par seconde ( NFS version 4 ).

--

--

Exemple

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éé.