RaspFR :: Forum

Forum de la communauté francophone de Raspberry PI.

Vous n'êtes pas identifié(e).

Annonce

Canal irc: #raspfr sur zeolia.net

#1 11-01-2017 11:45:54

Thibzy
Membre
Inscription : 07-07-2016
Messages : 11

Serveur Nagios sous Raspbian Jessie pas capable de récupérer le % CPU

Bonjour à tous,

J'ai installer sur mon Raspberry pi 3 (Raspbian Jessie) un serveur Nagios Core (dernière version) pour monitorer 2 PC sous Windows 7 64 bits professionnel(Pack 1,2009), en local.
Je souhaitait le faire sans rien installer sur mes PC Windows.
J'ai donc eu l'idée de le faire via les requête WMI.
Pour cela, j'ai installer un plugin sur le Check_WMI_plus celui-ci .
Apres son installation et le paramétrage de nagios, je suis capable de récupérer La mémoire RAM avec cette commande:

[== Indéfini ==]
usr/local/nagios/libexec/check_wmi_plus.pl -H HOST -u USER -p PASS -m checkmem

cette commande fonctionne correctement, je retrouve en sortie l'utilisation de la RAM de mes PC.
Mais pour les autres commandes proposé par le plugin je n'arrive pas à récupérer leur sortie, comme par exemple, l'utilisataion en % du CPU
Cette commande a besoin d'être compiler 2 fois pour retourné une valeur. En fait, elle fais la moyenne des 2 comme l'explique le créateur du plugin sur son site ici en enregistrant dans le /tmp un fichier.

[== Indéfini ==]
usr/local/nagios/libexec/check_wmi_plus.pl -H HOST -u USER -p PASS -m checkcpu

J'ai donc essayer de voir avec le debugger. Et celui ci me retourne un warning:

[== Indéfini ==]
 Creating '_AvgCPU' (WMIQuery:1, Row:0) using 'PERF_100NSEC_TIMER_INV' (Parameters: PercentProcessorTime,%.2f,100)

WARNING: The value in the requested field (PercentProcessorTime) does not look like a number - we got ''
   Setting _AvgCPU to CALC_FAIL

j'ai donc cherché sur mes PC Windows si la classe WMI spécifié existait et quel retournait une valeur.
La classe visée est la suivante:

[== Indéfini ==]
Win32_PerfRawData_PerfOS_Processor

Et les variable que je veux recupérer mais qui ne sont pas relever sont :

[== Indéfini ==]
PercentProcessorTime,Timestamp_Sys100NS  //dans leur totalité

Via une app (WMI explorer) et l'invite de commande. J''ai constater que ces valeurs existait belle et bien.
Je pense donc que le problème viens soit de la configuration Windows .. soit celle du Raspberry. En tout cas sa coince quelque part au moment de l'acquisition de la donnée. Je rencontre des problèmes similaires sur de nombreux check du plugin.

Pour la  configuration de Windows pour le bon fonctionnement du plugin j'ai utiliser ce tutto .

Je suis a votre disposition pour toute question, j'aimerai beaucoup réussir à faire marcher ce plugin.

Merci de votre attention ! smile


Et Voici le message complet venant du debugger pour les plus courageux:

[== Indéfini ==]
[email protected]:~ $ /usr/local/nagios/libexec/check_wmi_plus.pl -H
> 192.168.1.10 -u ***** -p ***** -m checkcpu -d Command Line (v1.61):
> /usr/local/nagios/libexec/check_wmi_plus.pl -H 192.168.1.10 -u USER -p 
> PASS -m checkcpu -d Base Dir: /usr/local/nagios/libexec Conf File Dir:
> /etc/check_wmi_plus Loaded Conf File
> /etc/check_wmi_plus/check_wmi_plus.conf
> WMI Ini Dir: /etc/check_wmi_plus/check_wmi_plus.d
> Starting Keep State Mode
> STATE FILE: /tmp/cwpss_checkcpu__192168110___.state
> Checking previous data's expiry - Timestamp 1483456739 vs Expiry After
> 1483453146 (Keep State Expiry setting is 3600sec) Using Existing WMI 
> DATA
> of:$VAR1 = [                               //on voit ici que dés la première compilation de la commande il ne relève rien pour PercentProcessorTime
>            [
>              {
>                '_ChecksOK' => 1,
>                '_KeepStateCreateTimestamp' => 1483456739,
>                '_ItemCount' => 0
>              }
>            ]
>          ];
> Round #2 of 2
> QUERY: /usr/bin/wmic '-U' 'USER%PASS' '--namespace' 'root/cimv2'
> '//192.168.1.10' 'select PercentProcessorTime,Timestamp_Sys100NS from 
> Win32_PerfRawData_PerfOS_Processor where Name="_Total"'
> OUTPUT:
> WMI DATA:$VAR1 = [
>            [
>              {
>                '_KeepStateCreateTimestamp' => 1483456739,
>                '_ItemCount' => 0,
>                '_ChecksOK' => 2,
>                '_KeepStateSamplePeriod' => 7
>              }
>            ],
>            [
>              {
>                '_ItemCount' => 0
>              }
>            ]
>          ];
> Storing new WMI results in the state file $VAR1 = [
>            [
>              {
>                '_ItemCount' => 0
>              }
>            ]
>          ];
> Copying predefined fields to the last WMI result set [0] to [1] NEW 
> WMI
> DATA:$VAR1 = [
>            [
>              {
>                '_ItemCount' => 0
>              }
>            ],
>            [
>              {
>                '_ItemCount' => 0,
>                '_KeepStateCreateTimestamp' => 1483456739,
>                '_ChecksOK' => 2,
>                '_KeepStateSamplePeriod' => 7
>              }
>            ]
>          ];
> Creating '_AvgCPU' (WMIQuery:1, Row:0) using 'PERF_100NSEC_TIMER_INV'
> (Parameters: PercentProcessorTime,%.2f,100)
> WARNING: The value in the requested field (PercentProcessorTime) does 
> not look like a number - we got ''
>     Setting _AvgCPU to CALC_FAIL
> Testing TEST VALUES $VAR1 = {
>            '_ItemCount' => 0,
>            '_KeepStateCreateTimestamp' => 1483456739,
>            '_AvgCPU' => 'CALC_FAIL',
>            '_ChecksOK' => 2,
>            '_KeepStateSamplePeriod' => 7
>          };
> WARNING SPECS: $VAR1 = undef;
> CRITICAL SPECS: $VAR1 = undef;
> ------------ Critical Check ------------
> ------------ Warning Check ------------
> ------------ End Check ------------
> Data Passed back from check: $VAR1 = {
>            '_DisplayMsg' => 'OK (Sample Period 7 sec)',
>            '_KeepStateSamplePeriod' => 7,
>            '_KeepStateCreateTimestamp' => 1483456739,
>            '_TestResult' => 0,
>            '_Triggers' => '',
>            '_AvgCPU' => 'CALC_FAIL',
>            '_ChecksOK' => 2,
>            '_ItemCount' => 0,
>            '_StatusType' => 'OK (Sample Period 7 sec)'
>          };
> ---------- Building Up Display
> Incoming Data $VAR1 = {
>            '_nodatamode' => '',
>            '_delay' => 7,
>            '_timeout' => '',
>            '_KeepStateSamplePeriod' => 7,
>            '_KeepStateCreateTimestamp' => 1483456739,
>            '_arg5' => undef,
>            '_savedbytefactor' => '',
>            '_arg1' => '',
>            '_StatusType' => 'OK (Sample Period 7 sec)',
>            '_mode' => 'checkcpu',
>            '_arg4' => undef,
>            '_DisplayMsg' => 'OK (Sample Period 7 sec)',
>            '_submode' => '',
>            '_arg3' => '',
>            '_TestResult' => 0,
>            '_host' => '192.168.1.10',
>            '_nodatastring' => 'WMI Query returned no data. The item 
> you were looking for may NOT exist or the software that creates the 
> WMI Class may not be running, or all data has been excluded.
> ',
>            '_arg2' => '',
>            '_Triggers' => '',
>            '_AvgCPU' => 'CALC_FAIL',
>            '_ChecksOK' => 2,
>            '_bytefactor' => 1024,
>            '_truncate_output' => 8192,
>            '_ItemCount' => 0,
>            '_nodataexit' => ''
>          };
> ------- Processing _DisplayMsg||~|~| - || Complex 
> Format:_DisplayMsg,,~,~, - ,, _DisplayMsg||~|~| - || ----> OK (Sample 
> Period 7 sec) -
> ------- Processing _AvgCPU|%|Average CPU Utilisation| |~|| Complex 
> Format:_AvgCPU,%,Average CPU Utilisation, ,~,, _AvgCPU|%|Average CPU
> Utilisation| |~|| ----> Average CPU Utilisation CALC_FAIL%
> ---------- Building Up Performance Data
> ------- Processing _AvgCPU|%|Avg CPU Utilisation Complex 
> Format:_AvgCPU,%,Avg CPU Utilisation Ignoring perf data since it is 
> not numeric
> ---------- Done
> OUT:OK (Sample Period 7 sec) - Average CPU Utilisation CALC_FAIL%
>
> OK (Sample Period 7 sec) - Average CPU Utilisation CALC_FAIL%

Hors ligne

Pied de page des forums