Plugin Munin de verification du cache REDIS - Perl - Programmation
Marsh Posté le 04-03-2016 à 22:49:48
1) Il y a une release de Perl fonctionnelle sur la machine?
2) les modules appelés par une clause use, IO::Sockets et Switch, ont été installés? (a priori, ils ne le sont pas par défaut dans une installation basique de perl), sinon les installer.
3) Vous avez suivi les instructions?
Citation : ## 1. Download the plugin to your plugins directory (e.g. /usr/share/munin/plugins) |
A+,
Marsh Posté le 07-03-2016 à 09:39:54
1) oui
Code :
|
2) Je ne sais pas, c'est un peu le propos de ma question, j'ai essayé de simplifier le script au maximum et de l’exécuter, voila ce que ça donne :
Code :
|
=> Affiche bien "switch:test test"
Par contre
Code :
|
affiche :
Global symbol "$class" requires explicit package name at test-perl.pl line 15.
Global symbol "%options" requires explicit package name at test-perl.pl line 16.
Global symbol "$class" requires explicit package name at test-perl.pl line 17.
Global symbol "%options" requires explicit package name at test-perl.pl line 17.
Execution of test-perl.pl aborted due to compilation errors.
3) A priori oui, j'ai refait plusieurs fois les manips, et j'ai le même problème avec d'autres scripts sensé faire la même chose...
J'ai essayé de :
Code :
|
Marsh Posté le 07-03-2016 à 11:57:23
il va falloir installer le module IO::Socket.
L'article suivant: http://www.thegeekstuff.com/2008/0 [...] n-command/ dans sa seconde partie "Install Perl Modules using CPAN automatically" va vous expliquer très clairement la marche a suivre.
Bref vous installez cpan s'il n'est pas déjà installé, en suivant la procédure indiquée, puis vous faites
# cpan
....
cpan[1]> install "IO::Socket";
...
cpan[...]>quit
#
et ça devrait rouler (sauf erreur lors de l'installation du module par cpan, mais c'est relativement rare, en particulier pour des modules aussi basiques).
A+,
Marsh Posté le 07-03-2016 à 14:00:06
Code :
|
mais
Code :
|
=>
Code :
|
Marsh Posté le 07-03-2016 à 15:13:13
J'ai essayé de modifier un peu mon script de test en mettant "en dur" ma connexion, ça marche mieux :
Code :
|
=>
Code :
|
Du coups je me demande si l'autoconf de munin qui bug avec "Junk printed to stderr" vient ptet du fait qu'il utilise des variables parfois non initialisé, comment je pourrais régler ça, en faisant l’équivalent d'un isset() avant chaque print ?
Marsh Posté le 07-03-2016 à 18:39:31
mechkurt a écrit :
|
Ces erreurs me paraissent logique vue le code, il faut soit déclarer tout ses variables soit virer le use strict (mauvaise idée).
Marsh Posté le 07-03-2016 à 19:09:38
La il suffit juste de faire deux petites modifications avec un my en début de ligne:
my $class = "IO::Socket::INET";
my %options = (PeerAddr => $server,Proto => 'tcp');
A+,
Marsh Posté le 08-03-2016 à 10:14:20
me suis débrouillé en modifiant la fonction get_stats du script initial comme suit :
Code :
|
Et ça fonctionne, en tout cas j'ai des stats... ^^
Par contre maintenant je me bat avec le plugin Mysql car il faut une extension Cache::SharedMemoryCache, que je n'arrives pas à installer :
Code :
|
J'ai googlé un peu et pas mal de gens semblent avoir résolut le problème en installant IPC::ShareLite (via cpan ou paquet EPEL) mais ça ne fonctionne pas pour moi... :- /
Marsh Posté le 04-03-2016 à 15:58:53
Bonjour, je souhaites monitorer le cache de mon serveur (Cento 6.7) à l'aide de Munin, j'ai essayé plusieurs plugin dont celui-ci (conseillé sur la page officiel redis) https://gist.github.com/colinmollenhour/1177716
Impossible pourtant de le faire fonctionner
Doit je installer d'autres choses au niveau de perl ?
Le message d'erreur n'est pas d'un grande aide...
---------------
D3