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 jaugée permettant de voir quels processus sont les plus consommateurs.
Les processus sont accompagnés leur consommation CPU, ainsi que d’indicateurs en pourcentage ainsi qu'une jauge graphique pour facilement visualiser l'Average CPU % :
La somme des mesures individuelles de l'Average CPU% de chaque processus peuvent différer de CPU usage, car ces mesures ne peuvent pas être prises à un seul instant T. Comme ces mesures sont volatiles, on peut alors parfois observer des différences.
|
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. |
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ée | Modifiable sur | Unité | Valeur par défaut | Description | |
|---|---|---|---|---|---|
| l'Hôte ( Onglet Données ) | % | 90 % | Définit le pourcentage d'utilisation du processeur à partir duquel le check passe en CRITIQUE. | |
| l'Hôte ( Onglet Données ) | % | 80 % | Définit le pourcentage d'utilisation du processeur à partir duquel le check passe en ATTENTION. | |
| l'Hôte ( Onglet Données ) | -- | 10 | Définit le nombre de processus alarmant à afficher au maximum. |
Pas de données DFE pour ce check
Pas de données spécifiques pour ce check
|
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 :
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 | |
|---|---|---|---|
| CRITIQUE |
| |
| ATTENTION |
|
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.
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.
| Nom de la métrique | Unité | Description | Seuil d'avertissement | Seuil 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_( 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 ) :
|
|
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 |
Le check demande une configuration supplémentaire afin d'exécuter des commandes via des requêtes SNMP. Sans cette configuration, les erreurs suivantes pourront être générées :
Les instructions suivantes sont à exécuter sur l'hôte supervisé. |
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 ces lignes si elles n'y sont pas :
# check : Stats CPU by SNMP
extend shinken__linux-by-snmp__stats-cpu__processes-cpu-time /bin/sh -c "export LC_LANG=C && unset LANG && awk '{ut[\$1]=\$14; st[\$1]=\$15} END { system(\"sleep 1\"); for (p in ut) { getline < (\"/proc/\" p \"/stat\"); split(\$0, d, \" \"); printf \"%s %d %d %d %d\\n\", p, ut[p], st[p], d[14], d[15] } }' /proc/[0-9]*/stat"
extend shinken__linux-by-snmp__stats-cpu__processes-cpu /bin/sh -c "export LC_LANG=C && unset LANG && ps -eo pcpu,pid,args --sort=-pcpu --no-headers"
extend shinken__linux-by-snmp__stats-cpu__frequency /bin/sh -c "export LC_LANG=C && unset LANG && cat /proc/cpuinfo | grep 'cpu MHz' | uniq | cut -d ' ' -f 3"
extend shinken__linux-by-snmp__stats-cpu__mpstat /bin/sh -c "export LC_LANG=C && unset LANG && mpstat -P ALL 1 1" |