Sommaire

Contexte

Le check Stats CPU by SNMPv1v2  va utiliser des commandes à travers votre serveur SNMP pour rechercher des informations sur votre CPU, tel que le nombre de cœurs, la fréquence, le pourcentage d'utilisation du processeur au cours de la dernière seconde et pour finir, si votre utilisation du processeur est trop importante, les X processus consommant le plus de CPU ( X étant la donnée CPU_MAX_PROCESS modifiable dans la configuration ) avec une notation "étoile" permettant de voir quels processus sont les plus consommateurs.

Le seuil choisi pour la consommation d'un processus sera la valeur du processus le plus consommateur et fera office de base pour trouver quels processus sont les plus consommateurs. En effet, nous n'affichons pas le pourcentage de CPU utilisé par chaque processus, car ceux-ci ne représentent que l'utilisation globale à un instant T.

Le nombre d’étoiles ( correspondant à la consommation du CPU ) de chaque processus sera déterminé en fonction du processus le plus consommateur au moment du check. Le processus ayant 5 étoiles n'est donc pas obligatoirement un processus qui surcharge votre CPU, il s'agit uniquement du plus consommateur au moment du check.

Si vous souhaitez voir en détail l'algorithme de calcul de consommation, rendez-vous en bas de page pour lire les schémas d'explication de l'algorithme.


Note : Le check CPU Stats SNMPv1v2 utilise le paquet SysStat. Si votre serveur Linux ne dispose pas de cette librairie, il faudra l'installer ( yum install sysstat )

Afin de récupérer le pourcentage d'utilisation du CPU au cours d'une seconde, le check attendra au moins une seconde, lui permettant de calculer le pourcentage au niveau de celle-ci.

Paramétrage

Le check utilise la ligne de commande suivante :

$LINUX-BY-SNMP__SHINKEN__PLUGINSDIR$/check_linux_health_by_snmp_rust --check check_stats_cpu
	-H "$HOSTADDRESS$"
	-p "$_HOSTLINUX-BY-SNMP__PORT$"
	-t "$_HOSTLINUX-BY-SNMP__TIMEOUT$"
	-w "$_HOSTLINUX-BY-SNMP__STATS-CPU__WARN$"
	-c "$_HOSTLINUX-BY-SNMP__STATS-CPU__CRIT$"
	-m "$_HOSTLINUX-BY-SNMP__STATS-CPU__MAX-PROCESS$"
	--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

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.

Données spécifiques pour ce check

DonnéeModifiable surUnitéValeur par défautDescription
LINUX-BY-SNMP__STATS-CPU__CRIT

l'Hôte

( Onglet Données )

%

90 %Définit le pourcentage d'utilisation du processeur à partir duquel le check passe en CRITIQUE.
LINUX-BY-SNMP__STATS-CPU__WARN

l'Hôte

( Onglet Données )

%

80 %Définit le pourcentage d'utilisation du processeur à partir duquel le check passe en ATTENTION.
LINUX-BY-SNMP__STATS-CPU__MAX-PROCESS

l'Hôte

( Onglet Données )

--

10Définit le nombre de processus alarmant à afficher au maximum.

Données DFE ( Duplicate Foreach )

Pas de données DFE pour ce check

Données utilisées provenant du check

Pas de données spécifiques pour ce check

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 quatre valeurs  OK / CRITIQUE / ATTENTION / INCONNU .

  • Le statut va dépendre du retour de sonde et de la configuration spécifique du check pour les données suivantes :

    • LINUX-BY-SNMP__STATS-CPU__CRIT
    • LINUX-BY-SNMP__STATS-CPU_WARN
  • 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 charges dépassent la valeur de LINUX-BY-SNMP__STATS-CPU__CRIT

CRITIQUE

  • Les charges dépassent la valeur de LINUX-BY-SNMP__STATS-CPU_WARN.

ATTENTION

Résultat

Le résultat contient un message indiquant le statut ainsi que l'utilisation du CPU en pourcentage, valeur correspondant à la métrique cpu__all_usage.

Résultat Long

Le résultat long contient un tableau qui liste les X processus les plus consommateurs ( le X correspond à la donnée CPU_MAX_PROCESS ), ainsi qu'une indication sur leur impact.

Métriques

Définition

Nom de la métriqueUnitéDescriptionSeuil d'avertissementSeuil critique
cpu_all_usage%Retourne le pourcentage de temps CPU actif au cours de la dernière seconde ( Correspond au % afficher dans le résultat du check ).

LINUX-BY-SNMP__STATS-CPU_WARN

LINUX-BY-SNMP__STATS-CPU__CRIT

cpu_all_usr%Retourne le pourcentage de temps CPU actif en espace utilisateur (tous CPU confondus) au cours de la dernière seconde.

--

--

cpu_all_nice%Retourne le pourcentage de temps CPU utilisé par les processus avec priorité ajustée (nice), tous CPU confondus, au cours de la dernière seconde. 

--

--

cpu_all_sys%Retourne le pourcentage de temps CPU utilisé en mode noyau (système), tous CPU confondus, au cours de la dernière seconde. 

--

--

cpu_all_iowait%Retourne le pourcentage de temps CPU passé en attente d'opérations d'entrée/sortie (I/O), tous CPU confondus, au cours de la dernière seconde. 

--

--

cpu_all_irq%Retourne le pourcentage de temps CPU consacré au traitement des interruptions matérielles (IRQ), tous CPU confondus, au cours de la dernière seconde. 

--

--

cpu_all_soft%Retourne le pourcentage de temps CPU consacré au traitement des interruptions logicielles (softirq), tous CPU confondus, au cours de la dernière seconde. 

--

--

cpu_all_steal%Retourne le pourcentage de temps CPU "volé" par l'hyperviseur pour d'autres machines virtuelles, tous CPU confondus, au cours de la dernière seconde. 

--

--

cpu_all_guest%Retourne le pourcentage de temps CPU utilisé pour l'exécution de CPU virtuels (machines virtuelles invitées), tous CPU confondus, au cours de la dernière seconde. 

--

--

cpu_all_idle%Retourne le pourcentage de temps CPU inactif (sans charge), tous CPU confondus, au cours de la dernière seconde. 

--

--

cpu_( NUMERO_CPU )_usr%Retourne le pourcentage de temps CPU utilisé par les processus en espace utilisateur au cours de la dernière seconde.----
cpu_( NUMERO_CPU )_priv%Retourne le pourcentage de temps CPU utilisé par les processus en mode noyau au cours de la dernière seconde.----
cpu_( NUMERO_CPU )_idle%Retourne le pourcentage de temps CPU inactif au cours de la dernière seconde.----
cpu_( NUMERO_CPU )_irq%Retourne le pourcentage de temps CPU consacré au traitement des interruptions matérielles (périphériques physiques) au cours de la dernière seconde.----
cpu_( NUMERO_CPU )_dpc%Retourne le pourcentage de temps CPU utilisé par les DPC (Deferred Procedure Calls) — routines différées généralement utilisées par les pilotes pour finaliser le traitement d’interruptions au cours de la dernière seconde.

--

--


Toutes les métriques contenant le mot (numerocpu) dans le tableau ci-dessus seront dupliquées en fonction du nombre de CPUs présents sur le serveur supervisé.

Exemple ( pour 2 CPUs ) :

  • cpu_0_sys
  • cpu_0_usr
  • ...
  • cpu_1_sys
  • cpu_1_usr
  • ...

Exemple

Pré-requis et Erreurs fréquentes

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

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

# Alma, Rocky, Centos, Fedora, OpenSUSE
yum -y install sysstat

# Arch, Manjaro
pacman -Rs sysstat

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 :