Sommaire

Contexte

Le check Stats NFS by SNMPv3 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 une des lignes de commandes suivantes selon le modèle d'hôte utilisé :

Commande noAuthNoPriv
$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 "3"
    --user "$_HOSTLINUX-BY-SNMP__V3-LOGIN$"
    --level "noAuthNoPriv"
Commande authNoPriv
$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 "3"
    --user "$_HOSTLINUX-BY-SNMP__V3-LOGIN$"
    --auth_password "$_HOSTLINUX-BY-SNMP__V3-PASSPHRASE-AUTH$"
    --auth_protocol "$_HOSTLINUX-BY-SNMP__V3-PROTOCOL-AUTH$"
    --level "authNoPriv"
Commande authPriv
$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 "3"
    --user "$_HOSTLINUX-BY-SNMP__V3-LOGIN$"
    --auth_password "$_HOSTLINUX-BY-SNMP__V3-PASSPHRASE-AUTH$"
    --priv_passphrase "$_HOSTLINUX-BY-SNMP__V3-PASSPHRASE-PRIV$"
    --auth_protocol "$_HOSTLINUX-BY-SNMP__V3-PROTOCOL-AUTH$"
    --priv_protocol "$_HOSTLINUX-BY-SNMP__V3-PROTOCOL-PRIV$"
    --level "authPriv"

Données utilisées provenant des modèles

Données communes pour les checks des modèles

NomModifiable surUnitéDéfautValeur par défaut à l'installation de Shinken Description
LINUX-BY-SNMP__TIMEOUT

l'Hôte

( Onglet Données )

seconde5 5 Temps maximal en seconde pour réussir une connexion SNMP avant que le check ne renvoi une erreur INCONNU  ( La valeur doit être comprise entre 2 et 60 ).
LINUX-BY-SNMP__PORT

l'Hôte

( Onglet Données )

---

161161Port pour la connexion SNMP.
LINUX-BY-SNMP__V1V2-COMMUNITY

l'Hôte

( Onglet Données )

---public public

La Communauté SNMP v1/v2 défini sur votre linux :

  • En SNMP v1/v2, la communauté est un équivalent à un ID ou à un mot de passe pour se connecter aux équipements.


LINUX-BY-SNMP__V1V2-VERSION

l'Hôte

( Onglet Données )

---22

Sélectionne la version SNMP 1 ou 2 à utiliser.

Les données communes pour certain checks

Pour les checks suivants :

  • Network Interfaces by SNMPv1v2
  • Network Interfaces by SNMPv3
  • Stats Kernel by SNMPv1v2
  • Stats Kernel by SNMPv1v3
  • Stats NFS by SNMPv1v2
  • Stats NFS by SNMPv3
  • Stats Disks by SNMPv1v2
  • Stats Disks by SNMPv3


NomModifiable surUnitéDéfautValeur par défaut à l'installationDescription
LINUX-BY-SNMP__WORKING-FOLDER-BASE-PATH

l'Hôte

( Onglet Données )

--/tmp /tmp Chemin absolu où sera créé le dossier LINUX-BY-SNMP__WORKING-FOLDER-TMP-DIRNAME.
LINUX-BY-SNMP__WORKING-FOLDER-TMP-DIRNAME


l'Hôte

( Onglet Données )

--shinken shinken Nom de dossier temporaire où seront stockés les fichiers temporaires générés par les sondes.
Ne peut contenir uniquement des caractères alphanumériques, slash, antislash, espace, guillemet simple et double, tiret et tiret du bas.

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


Données globales

NomModifiable surUnitéDéfautValeur par défaut à l'installationDescription
USERPLUGINSDIR

Non modifiable

( Sauf Admin Shinken )

--/var/lib/shinken/libexec /var/lib/shinken/libexec

Chemin absolu contenant les sondes installés par Shinken.

LINUX-BY-SNMP__SHINKEN__VENDOR

Non modifiable

( Sauf Admin Shinken )

--shinken-additional-packs shinken-additional-packs

Dossier fournit par shinken.

LINUX-BY-SNMP__SHINKEN__PACKNAME

Non modifiable

( Sauf Admin Shinken )


linux-by-SNMP__shinken linux-by-SNMP__shinken

Dossier contenant les sondes.

LINUX-BY-SNMP__SHINKEN__PLUGINSDIR

Non modifiable

( Sauf Admin Shinken )

--
USERPLUGINSDIR/LINUX-BY-SNMP__SHINKEN_VENDOR/
LINUX-BY-SNMP__SHINKEN__PACKNAME
/var/lib/shinken-user/libexec/shinken-additional-packs/linux-by-SNMP__shinken

Chemin absolu du dossier contenant les sondes du pack linux-by-SNMP__shinken ( non modifiable ).



Propriétés de l'hôte

NomModifiable surUnitéDéfautValeur par défautDescription
HOSTADDRESS

l'Hôte

( Onglet Général )

--

Nom de l'hôte Nom de l'hôte

Adresse de l'hôte

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

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

--

--

Erreurs et pré-requis


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

MONITORED HOST - BAD STATE – 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éé.



Erreurs de connexion ( communes à tous les checks )

UNKNOWN – Session error: timeout

La connexion SNMP est configuré par défaut pour se couper si aucune réponse n'est perçu après cinq secondes ( paramétrable avec LINUX-BY-SNMP__TIMEOUT ).


Cette erreur peut intervenir lorsque :

  • Aucun accès réseau n'est disponible vers l'hôte.
  • En SNMP v1 ou v2, la communauté utilisée est incorrecte.
  • En SNMP v3, la clef privée ( LINUX-BY-SNMP__V3-PASSPHRASE-PRIV ) utilisée est incorrecte.

UNKNOWN – Failed to create SNMP session. Got error: failed to lookup address information: Name or service not known

La résolution DNS de l'hôte a échoué.

UNKNOWN – Session error: Socket receive error: host unreachable

La tentative de connexion à l'hôte a échoué à atteindre l'hôte.

Cette erreur peut être générée à cause d'une mauvaise configuration de pare-feu.

UNKNOWN – Session error: Socket receive error: connection refused


La tentative de connexion à l'hôte a été refusé.

Cette erreur peut intervenir lorsque :

  • Un pare-feu bloque la requête
  • Le service SNMP du serveur à supervisé n'est pas démarré.

UNKNOWN – Session error: Unexpected report: authentication failure

L'authentification SNMP v3 a échoué.

Cette erreur peut intervenir lorsque :

  • En SNMP v3, le mot de passe ( LINUX-BY-SNMP__V3-PASSPHRASE-AUTH ) utilisée est incorrecte.
  • En SNMP v3, la méthode de hachage ( LINUX-BY-SNMP__V3-PROTOCOL-AUTH ) utilisée est incorrecte.

UNKNOWN – Session error: Unexpected report: unknown user name

L'utilisateur SNMP v3 utilisé n'existe pas.


UNKNOWN – Session error: Unexpected report: unsupported security level.


L'authentification SNMP v3 a échoué. La méthode d'authentification n'est pas authorisé.



Cette erreur peut intervenir lorsque :

Erreurs de configuration de l'hôte à superviser ( communes à tous les checks )

Les erreurs suivantes peuvent arriver sur la version SNMPv2 et SNMPv3.

MONITORED HOST - BAD STATE – No [ ... ] data found. This might be due to :


Deux erreurs sont possibles :

  • La vue SNMP configuré n'a pas les droits suffisants.
  • La configuration SNMP n'inclus pas les options "extend" nécessaires au bon fonctionnement des checks.



RESOLUTION :

Il faut vérifier les deux étapes suivantes de la configuration :