Sommaire

Contexte

Vous retrouverez dans cette page les erreurs fréquentes liées à une mauvaise configuration, authentification ou problèmes de connexion.

Les Erreurs

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 :

Disks Usage by SNMPvX

UI CONFIGURATION - PARAMETER ISSUE – Found [...] mounted partitions on the host, but none is matching the filtering parameters. 

  • Aucun point de montage ne correspond aux paramètres d'inclusions ou d'exclusions :
    • LINUX-BY-SNMP__DISKS-USAGE__INCLUDE-MOUNTPOINTS 
    • LINUX-BY-SNMP__DISKS-USAGE__EXCLUDE-MOUNTPOINTS



RESOLUTION :

Les paramètres suivants doivent être mise à jour :

  • LINUX-BY-SNMP__DISKS-USAGE__INCLUDE-MOUNTPOINTS 
  • LINUX-BY-SNMP__DISKS-USAGE__EXCLUDE-MOUNTPOINTS


Afin de mieux régler les paramètres de filtre, la commande suivante permet de lister les partitions disponibles sur le linux supervisé :

Les instructions suivantes sont à exécuter sur l'hôte supervisée.

df -TP

MONITORED HOST - BAD STATE – No disks data found.

Le serveur SNMP doit être configuré pour autoriser la récupération des informations des disques. S'il n'est pas configuré, vous obtiendrez l'erreur suivante :



Résolution :

Les instructions suivantes sont à exécuter sur l'hôte supervisé.


Arrêtez le service SNMP.

service snmpd stop


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

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


Vérifiez que cette ligne est présente, ou ajoutez la : includeAllDisks 10%

includeAllDisks 10%


Redémarrez le service SNMP  :

service snmpd start

Stats CPU by SNMPvX

MONITORED HOST - BAD STATE – Command 'mpstat' not found. Please ensure that the 'sysstat' package is installed.

Ce check dépend de la commande mpstat, qui fait partie du paquet sysstat. Assurez-vous que ce paquet soit installé pour que la commande fonctionne correctement.

RESOLUTION :

Les instructions suivantes sont à exécuter sur l'hôte supervisé.

# Ubuntu, Debian
apt-get install sysstat

# Centos, Fedora, OpenSUSE
yum -y install sysstat

# Arch
pacman -Rs sysstat

Ntp Sync by SNMPvX

MONITORED HOST - BAD STATE – NTP tools and daemon are not installed

Il est nécessaire que le service ntpd soit installé pour le bon fonctionnement du check. Sans cela, l'erreur suivante sera générée :

Il est possible que le serveur de temps installé et configuré sur votre serveur Linux soit chrony ( chronyd ) et non NTP ( ntpd ).

Par exemple, sur les distributions basé sur RedHat ( comme RHEL, Alma, Rocky, Centos ) :

  • Dans la version 7, ntpd est déprécié en faveur de chronyd
  • À partir de la version 8, ntpd n'est plus supporté et chronyd est le serveur de temps par défaut.


Alors, il faut accrocher le modèle Modèle chrony-by-SNMP du pack linux-by-SNMP__shinken à l'hôte, afin de superviser le bon service de temps.



RESOLUTION :

Les instructions suivantes sont à exécuter sur l'hôte supervisée.

Installez et activez le service ntpd sur l'hôte supervisée.


Démarrer le service ntpd stoppera les autres services NTP, comme chronyd.

Il est possible que le package ntp et son démon ntpd ne soient pas disponible pour votre machine ( ex : Centos, Alma, Rocky ) alors il est possible d'utiliser le démon chronyd et de le superviser en accrochant Modèle chrony-by-SNMP du pack linux-by-SNMP__shinken.



# Debian, Ubuntu
sudo apt install ntp

# Fedora, OpenSUSE
sudo yum install ntp

# Arch
sudo pacman -S ntp


sudo service ntpd restart

MONITORED HOST - BAD STATE – NTP daemon seems to be shutdown.

Il est possible que le service ntpd ne soit pas allumé. L'erreur suivante sera générée :

RESOLUTION :

Les instructions suivantes sont à exécuter sur l'hôte supervisée.

Le service ntpd doit être activé et démarré :

sudo service ntpd restart

MONITORED HOST - BAD STATE – No NTP source server found.

Une fois lancé, le service ntpd va choisir le serveur NTP, parmi un ou plusieurs configurés, qui sera utilisé pour la synchronisation NTP. Cette opération prend quelques secondes une fois le service démarré. Sans cela, l'erreur suivante sera générée :

RESOLUTION :

Il suffit d'attendre quelques secondes.
Si le problème persiste, vérifiez le bon fonctionnement du service ntpd et de sa configuration. Cliquez ici pour un guide de configuration ntpd.

Ntp Sync Chrony by SNMPvX

MONITORED HOST - BAD STATE – Chrony daemon seems to be shutdown.

Il est possible que le service chronyd ne soit pas allumé. L'erreur suivante sera générée :


RESOLUTION :

Le service ntpd doit être activé et démarré :

sudo service ntpd restart

MONITORED HOST - BAD STATE – Chrony daemon is not installed

Il est nécessaire que le service chronyd soit installé pour le bon fonctionnement du check. Sans cela, l'erreur suivante sera générée :

RESOLUTION :

Installez et activez le service chronyd sur l'hôte supervisée.

# Debian, Ubuntu
sudo apt install chrony

# RHEL, Alma, Rocky, Centos, Fedora, OpenSUSE
sudo yum install chrony

# Arch, Manjaro
sudo pacman -S chrony 




sudo service chronyd restart

MONITORED HOST - BAD STATE – Chrony daemon is not synchronized

Une fois lancé, le service chronyd va choisir un ou plusieurs serveurs NTP, parmi ceux configurés, qui seront utilisés pour la synchronisation NTP. Cette opération prend quelques secondes une fois le service démarré. Sans cela, l'erreur suivante sera générée :

RESOLUTION :

Il suffit d'attendre quelques secondes.
Si le problème persiste, vérifiez le bon fonctionnement du service chronyd et de sa configuration. Cliquez ici pour un guide de configuration chronyd.

Connection Failed by SNMPvX

MONITORED HOST - BAD STATE – The command 'lastb' is not found. This check may not work with your Linux distribution.

Le check va exécuter à distance la commande 'lastb' mais qui n'est pas disponible sur votre machine.


Les commandes 'lastb' et 'last' permettent de récupérer les dernières connexions réussies et échouées à une machine.
Ces commandes sont fournies par le paquet 'util-linux', installé par défaut sur la plupart des distributions Linux.
Cependant, sur certaines distributions récentes, 'lastb' n'est plus distribué et 'last' a été remplacé par une implémentation d'un nouveau paquet : 'wtmpdb'.
Alors le check ne supporte pas la supervision des hôtes aillants les distributions suivantes :

  • >= Debian 12
  • >= Ubuntu 22
  • >= FreeBSD 13
  • >= OpenSuse 13

MONITORED HOST - BAD STATE – Permission denied: SNMP daemon (snmpd) cannot access /var/log/btmp using 'lastb' command.

Le check va exécuter à distance la commande 'lastb' qui nécessite les droits de lecture sur le fichier '/var/log/btmp'.

RESOLUTION :
RHEL, centOS 7 et RHEL / Alma / Rocky 8 et 9

Cette erreur est très fréquemment généré 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éé.

Debian 13

Sur Debian, un utilisateur est créé spécifiquement pour le serveur snmpd de l'hôte supervisé : "Debian-snmp". Il suffit de lui ajouter les droits nécessaires en l'ajoutant dans le groupe "utmp", qui a accès aux fichiers demandés.

RÉSOLUTION MANUELLE :

usermod -a -G utmp Debian-snmp
service snmpd restart

MONITORED HOST - BAD STATE – No connection logs data found.

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 elle n'y est pas :

extend shinken__linux-by-snmp__connection-failed__lastb /bin/sh -c "export LC_LANG=C && unset LANG && lastb -F -w"

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

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

Stats NFS by SNMPvX

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 configuration du poller shinken

Erreurs communes à certains checks


POLLER - BAD STATE – Failed to compute average [ ... ] Got 'Permission denied (os error13)

POLLER - BAD STATE – Failed to create sample storage

Les checks concernés sont :

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


Le poller qui exécutera les checks nécessite un droit d'écriture et de lecture dans le répertoire décrit par LINUX-BY-SNMP__WORKING-FOLDER-BASE-PATH/LINUX-BY-SNMP__WORKING-FOLDER-TMP-DIRNAME, par défaut /tmp/shinken.

Vous pouvez obtenir les erreurs suivantes :


Résolution


Remarque

Cette série de commandes ne peut être effectuée qu'en ayant les droits root.

Donc en étant connecté au compte root ou en ayant fait la commande "su" au préalable.

Les instructions suivantes sont à exécuter sur vos pollers

Utilisation
shinken_tmp_dirname="shinken"
mkdir --parents /tmp/$shinken_tmp_dirname
chown -R root:shinken /tmp/$shinken_tmp_dirname
chmod -R g+rwx /tmp/$shinken_tmp_dirname


Explication


1.  La commande mkdir --parents /tmp/$shinken_tmp_dirname crée un récursivement un répertoire.

2. La commande chown -R root:shinken /tmp/$shinken_tmp_dirname modifie le groupe du dossier /tmp/shinken.

  • Cela garantit que des droits peuvent être appliqués au groupe shinken sur ce dossier.

3. La commande chmod -R g+rwx /tmp/$shinken_tmp_dirname applique immédiatement les droits nécessaires au dossier /tmp/shinken pour le groupe shinken.

  • Les droits de lecture, d'écriture et d'exécution sont ajoutés au dossier. Cela permet aux sondes de créer et lire des fichiers dans le dossier /tmp/shinken.


Il est nécessaire d'adapter la variable shinken_tmp_dirname si vous avez modifié l'un des deux variables suivantes :

  • LINUX-BY-SNMP__WORKING-FOLDER-BASE-PATH
  • LINUX-BY-SNMP__WORKING-FOLDER-TMP-DIRNAME