Monitorer ESXi dans Nagios/Cacti & Co

L’absence du service SNMP dans ESXi rend plus complexe la tache de monitoring des serveurs, gratuite en tout cas. Mais c’est sans compter sur la force communautaire de Nagios…

check_esx3 est un script perl, développé par OP5, exploitant les API VMware pour intéroger un ESX 3(i) via l’https. Pour vous en servir, il vous faudra d’abord installer le VI Perl Toolkit ainsi que le Nagios::Plugin CPAN module.

Ce script vous permettra d’obtenir toutes sortes de renseignement sur vos ESXi (CPU, MEM, NET, IO, VMFS, RUNTIME, …) et de faire de jolis graphs sans forcer :

CHECK_ESX3.PL OK – cpu usage=4006.00 MHz(10.43%) | cpu_usagemhz=4006.00Mhz;; cpu_usage=10.43%;;

CHECK_ESX3.PL OK – mem usage=27537.21 MB(42.02%), overhead=6028.16 MB, swapped=0.00 MB | mem_usagemb=27537.21MB;; mem_usage=42.02%;; mem_overhead=6028.16MB;; mem_swap=0.00MB;;

Bonus : template cacti + scripts perl

Tags: , ,

66 Responses to “Monitorer ESXi dans Nagios/Cacti & Co”

  1. Sympa le "tipce", est-ce que çà marche avec la gride ?

  2. Très interresante, ca…. Il y a du bulot sur Nagios dans les prochaines jours… -:)

    On va voir ça.
    Merci

  3. La commande permet aussi de remonter les infos de toutes les VM aussi :)

  4. Bonjour,

    Avez vous eu ce problème en voulant exécuter le plugin

    Can’t locate Nagios/plugin.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/i386-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl /usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/local/lib/perl5/site_perl .) at ./check_esx3 line 12.
    BEGIN failed–compilation aborted at ./check_esx3 line 12.

    J’ai bien installé les plugins de nagios mais je n’ai pas le Plugin.pm

    Pouvez vous m’aider

    Merci

  5. bonjour, vous avez bien installé le plugin CPAN ?

  6. Bonjour,
    J’aimerais savoir si il y a des templates dispo pour cacti pour utiliser le script check_esx3 ?

    J’ai beau essayer de me debrouiller tout seul, je rame :/

    HELP ?

  7. bonjour, voici un host template CPU/MEM/NET/VMFS : http://www.hypervisor.fr/wp-content/uploads/2009/01/esxi.xml
    Cela devrait vous aider :)

  8. merci, j’ai importer le template dans cacti et il fait reference a un script que je n’ai pas : esxi_cpu.pl, je n’ai a ma disposition que le check_esx3

    J’essai de bidouiller votre template pour prendre en compte le resultat de check_esx3, merci encore :)

  9. En effet, j’ai oublié les scripts : http://www.hypervisor.fr/wp-content/uploads/2009/01/esxi.zip

  10. FOR-MI-DA-BLE !! j’essai ça de suite :)

    MERCI BEAUCOUP !

  11. De rien :)

  12. bon, j’abandonne pour aujourd’hui, je lance les scripts a la mano et ça marche mais dans cacti j’ai aucune valeurs…

    je regarderais plus calmement demain…

    ça sux :’(

  13. Ça par contre, ça peu être plein raisons : droit d’exécution du compte cacti, chemin d’accès dans l’xml importé, etc…

  14. Bon, après être rentré tranquillou a la maison et avoir souffler un peu, cacti n’avais tout simplement pas les droits d’exécution des scripts :) maintenant ça marchouille !! encore merci !

  15. Pour moi, le soucis, c\’est que même au taquet, le plugin répond toujours OK

  16. OK c’est pas le status, c’est le bon retour de la commande :)

  17. OK … mais quoi qu\’il arrive, mon
    # echo $?
    me répond toujours
    0
    ne devrait-il pas changer pour la remontée vers Nagios ?

  18. lorsque vous lancez la commande en shell, quel est le retour ?

  19. Ca marche du toner par contre c’est vraiment très lent et cela sature mon serveur.

    saloperie d’ESX qui veut rien dire via SNMP

  20. J’ai eu aussi cet effet de lenteur pendant une periode, ca donnait des trous dans les graphs meme. Par contre, c’est revenu du jour au lendemain et je n’ai toujours pas trouvé pourquoi…
    Par contre, qu’entendez vous pas “sature” ?

  21. Thibaut Says:
    May 6th, 2009 at 13:59

    Bonjour à vous,

    Alors en ce qui me concerne j’ai un petit soucis avec ce plugin ==> check_esx3

    quand je lance la commande suivante (j’ai biensur enlevé des valeurs):
    - check_esx3 -H -u -p -l CPU
    J’ai un jolie petit message :
    - /usr/bin/perl: symbol lookup error: /usr/local/lib/perl/5.10.0/auto/XML/LibXML/Common/Common.so: undefined symbol: Perl_Tstack_sp_ptr

    Auriez vous une idée pour résoudre ce problème s’il vous plait car c’est un plugin qui convient parfaitement à mes attentes.

    Juste pour votre info j’ai suivis le tuto suivant :
    - http://www.artiflo.net/2009/02/monitor-esx35i-avec-nagios3-centreon2/comment-page-1/#comment-2004

    MERCI D’AVANCE :)

  22. Bonjour,
    Regardez ici : http://forums.fedoraforum.org/printthread.php?t=188639
    il semblerai que ce soit en rapport avec la version 5.10.0 de perl.

  23. Pour régler le problème de Thibaut, j\’ai fait la commande suivante :

    yum install perl-XML-LibXML perl-Crypt-SSLeay perl-Class-MethodMaker

    En ayant au préalable désinstaller le VI Perl Toolkit (je suis sur une fedora aussi, la commande ne sera certainement pas exactement la même).

    Par contre, j\’ai un problème pendant l\’exécution:
    CHECK_ESX3 CRITICAL – Error connecting to server at \’https://cosvgre06/sdk/webService\’: Login failed due to a bad username or password

    J\’utilise le login permettant de se connecter via VMWare infrastructure Client…

  24. Vous utilisez bien un compte local à l’ESX ?
    pouvez vous poster la commande complète ?

  25. ./check_esx3 -H -u -p -l CPU -s usage -w 80 -c 90

    A savoir que j’ai ESX(i) 3.5. L’utilsiateur est capable de se connecter en ssh, sur l’interface VMWare infrastructure Client. Il est membre du groupe “user”

  26. ./check_esx3 -H adresse -u user -p pass -l CPU -s usage -w 80 -c 90

  27. Essayez de le mettre dans le groupe root à tout hasard

  28. Cela ne fonctionne pas mieux. Ce qui me chagrine un peu c’est qu’il essaye de se connecter à la plage ‘https://cosvgre06/sdk/webService’ qui n’existe pas chez moi.

  29. Thibaut Says:
    May 7th, 2009 at 13:35

    Re ! :)

    Alors j’ai installé les modules propre à DEBIAN, désinstallé VI Perl Toolkit et réinstallation.
    Résultat : Toujours pareil ^^ :D

    Du coup, comme l’a dit admin, je vais voir pour installer une autre version de PERL, à moins que quelqu’un est une parade à cela, ou connaisse un correctif ou autres …?????

    Et pour le moment je ne peux pas t’aider nunki désolé car je n’arrive même pas à lancer la commande ^^ donc des que cela fonctionnera je te dirai ce que ça donne de mon côté, en attendant je suis preneur de toute tentative de solution :D

    En attendant bonne journée et je vous tiens au courant.

    Merci à vous.

  30. est-ce que ce plugin fonctionne pour un ESXi en version 3.5?

  31. Oui et probablement sur VMware Server 2.0.x aussi

  32. /!\: mettre autour de simple quote la valeur du mot de passe s’il contient le caractère $ ;)

  33. c’est jamais bon des caractères trop spéciaux dans les password :)

  34. nicolas Says:
    June 23rd, 2009 at 10:10

    Bonjour,

    J’utilise Cacti 0.8.7b, j’ai importé le template XML et mis les scripts .pl dans le répertoire qui va bien.
    Quand j’exécute les scripts manuellement, j’ai bien un retour dans ma console, par contre je n’ai aucun Graph.
    Lors de la création des graph, les fichiers rrd ne se sont pas créés (même après plusieurs essais), j’ai repris la commande dans “data source” de cacti pour créer les fichier à la mano, mais ils ne se remplissent pas (même avec les droits 777).
    J’ai besoin d’aide SVP.
    Merci.

  35. Bonjour,
    Il faut mettre le log de cacti en HIGH pour voir si vous avez une erreur. Il y a peut être un soucis de chemin d’accès au RRD…

  36. please help me to install plugin in ubuntu 9.04
    (This is perl, v5.10.0 built for i486-linux-gnu-thread-multi)
    i have install
    libssl-dev
    VMware-vSphere-SDK-for-Perl-4.0.0-161974.i386
    VMware-VmPerlAPI-2.3.2-39850
    but i have this error
    /usr/bin/perl: symbol lookup error: /usr/lib/perl/5.10/auto/Class/MethodMaker/MethodMaker.so: undefined symbol: Perl_Tstack_sp_ptr

    ls /usr/lib/perl/5.10/auto/Class/MethodMaker/MethodMaker.so
    /usr/lib/perl/5.10/auto/Class/MethodMaker/MethodMaker.so

    grazie

  37. http://wiki.secured.de/dokuwiki/vmware/viperl-lenny
    cpan install Class::MethodMaker

  38. bonjour,
    Etant assez faible en linux, je ne trouve pas le Nagios::Plugin CPAN module.

  39. Il faut déjà que vous ayez le module CPA sur votre distrib linux, ensuite les commandes pour l’utiliser son facilement trouvable sur google : http://www.perl.com/doc/manual/html/lib/CPAN.html

  40. [...] there is another method to monitor your free ESXi hosts. hypervisor.fr has published an excellent how to but it is in [...]

  41. [...] Ce billet était mentionné sur Twitter par tscalzott, raphael schitz. raphael schitz a dit: RT @tscalzott: Checking out Cacti << so check this out http://bit.ly/9HoXkV [...]

  42. Bonjour,
    J’aimerai savoir comment vous allimentez votre cacti ? ( via Nagios, qui rempli une base et cacti consulte cette base… Je pense à NPC )

    Merci pour votre retour.

  43. C’est le poller de cacti qui interroge les serveurs et alimente les RRD qui sont utilisés pour l’affichage des graphiques

  44. Bonjour,

    La mise en place du script check_esxi3 c’est très bien déroulé et fonctionne parfaitement. cependant mes graphs restent vide sous cacti avec les scripts fournit plus haut.

    Tous les scripts sont membres de root et lors de l’éxécution de perl ping.pl 127.0.0.1 j’ai bien un retour alors que lors de l’éxécution de perl esxi_cpu host pwd une ligne vide apparait et ce même si je met le mauvais mot de passe ou mauvaise ip.

    Avez-vous une idée ?

  45. J’ai trouvé tout seul la solution les scripts ne pointaient pas vers le script de référence :p Maintenant en manuel les scripts retourne bien les bonnes valeur mais il y a un soucis dans cacti :

    06/07/2010 01:30:01 PM – CMDPHP: Poller[0] Host[2] DS[10] WARNING: Result from CMD not valid. Partial Result: U
    06/07/2010 01:30:01 PM – CMDPHP: Poller[0] Host[2] DS[9] WARNING: Result from CMD not valid. Partial Result: U
    06/07/2010 01:30:01 PM – CMDPHP: Poller[0] Host[2] DS[8] WARNING: Result from CMD not valid. Partial Result: U
    06/07/2010 01:30:01 PM – POLLER: Poller[0] WARNING: Poller Output Table not Empty. Issues Found: 1, Data Sources: (DS[11])

  46. Mets ton poller log en debug pour voir ce qui ne va pas dans le retour et refais ton graph en totalité au cas ou

  47. Le poller n’indique aucune erreur sur les rrd de plus lorsque j’exécute les scripts en console j’ai bien le bon retour, du coup je ne comprend pas bien pourquoi cacti a une erreur lors de l’exécution de ceux-ci

  48. Euh je reviens sur le sujet, mais je comprends pas trop surement à cause de la fatigue, mais à la lecture de cet article j’ai l’impression de comprendre que le script qui est créé est exécuté par nagios et que cacti récupére les informations de collecté par nagios.

    Est ce que je me trompe complètement ?
    Dans ce cas là est ce qu’il serait possible d’avoir un petit d’escriptif sur le fonctionnement de l’ensemble ?

    Merci par avance.

  49. Complétement oui :)
    Ce script peut fonctionner sous cacti ou nagios mais tu peux effectivement le faire fonctionner par nagios et récup les infos avec cacti ou directement le faire exécuter par cacti sans nagios.

  50. D’accord, c’est vrai, j’oubliais que cacti pouvait exécuter des scripts :)

    Donc je suppose que tu n’utilises pas nagios + ndoutils + cacti + NPC ( cacti qui va donc en base prendre les valeurs que nagios récupére pour y créer des graphs )

    Actuellement j’installe nagios + centreon + nagvis + cacti mais je me trouve un peu bloqué, car j’aimerais utiliser cacti pour grapher mes valeurs récupéré par nagios…

    Si tu as une piste pour m’aider sur le sujet ca serait avec plaisir.

    Tiens si tu peux donner ton avis sur centreon :) ?

    Merci par avance.

  51. Tu peux essayer n2rrd : http://n2rrd.diglinks.com/cgi-bin/trac.fcgi et faire en sorte que cacti interroge les rrd sans faire de polling (je ne suis pas un expert de nagios donc je ne pourrais pas t’en dire plus)

    j’ai connu Centreon à l’époque où ca s’appelait Oreon, ils ont fait un super taff d’après ce que j’en vois mais à part te dire que ca me parait une bonne solution all-in-one, je ne l’utilise plus depuis longtemps.

  52. Thank you very much. Nice job easy to use.

    In EON we simply need to edit each .pl to change the path to cacti.

    Once again. Thank you.

    Athos10

  53. your welcome. we’ll soon provide cluster templates too :)

  54. [...] nous, à Hypervisor.fr, cacti c’est une grande passion ! Il y a presque 3 ans, quelques mois après la GA d’ESXi 3.5 (aka ESX 3i), nous avions publié …. Il permettait à l’époque de s’affranchir de SNMP, grand absent d’ESX 3i. [...]

  55. [...] Da VMware ESXi leider keine interessanten SNMP-Features in der freien Version bieten kann, musste ich mir eine andere Methode suchen, wie ich meinen Server überwachen kann. Auf meiner Suche bin ich auf folgende Seite gestoßen (leider in Französisch – jedoch gut leserlich mit Google-Translate): http://www.hypervisor.fr/?p=424 [...]

  56. [...] Monitorer ESXi dans Nagios/Cacti & Co [...]

  57. Bonjour,
    Merci pour ce bon tuto bien détaillé.
    J’utilise ce plugin depuis un petit moment mais j’ai quelques erreurs aléatoire. Plusieurs fois dans la journée j’ai un message d’erreur et le service passe en CRITICAL : SOAP request error – possibly a protocol issue: 500 Can’t read entity body: Resource temporarily unavailable. Ceci ce produit sur mes 4 esxi.
    Mes ESXi sont en version 4.1 update 2
    Quelqu’un aurait t’il une idée?
    Merci.

  58. @Yohann tu dois avoir des problèmes avec le webservice vcenter, regardes dans les logs pour voir si tu trouves des pistes

  59. Bonjour,

    Merci pour votre réponse.

    Ou se trouve les logs du webservice vcenter? J’ai la même réponse en checkant directement l’esxi ou en passant par le vcenter.

  60. J’ai trouvé ce type d’erreur dans le log vpxd-557.log si sa vous dit quelques choses

    error ‘SoapAdapter.HTTPService’] HTTP Transaction failed on stream TCPStreamWin32(socket=TCP(fd=6264) local=[::1]:8085, peer=[::1]:57988) with error class Vmacore::SystemException(An established connection was aborted by the software in your host machine. )

  61. Bonjour,

    Je tente de grapher mes Esxi avec cacti mais j’ai le message suivant dans mon log : CMD: perl /var/www/cacti/scripts/esxi_cpu.pl 172.16.1.101 password, output: U

    J’ai tenté de lancer la commande manuellement mais il me donne aucune valeur, il m’indique une erreur à cause de mon mot de passe qui contient un &.

    Pouvez-vous me dire si le & dans le mot de passe peut poser problème dans l’éxécution du script?

    Cordialement

    Erick

  62. Bonjour Erick,
    il y a des chances oui, testez avec un autre compte pour confirmer

  63. Bonjour,

    J’utilise les mêmes commandes dans Nagios et je reçois bien des valeurs

    Cordialement

    Erick

  64. bonjour,
    le problème c’est le formulaire php de cacti, il faut éviter les caractères spéciaux autres que “_” et “.”

  65. Bonjour,

    Merci pour ta réponse.

    Comment créer un compte de supervision sur mes esxi?

    Cordialement

    Erick

  66. Dans l’onglet “local Users & Groups” du client

Leave a Reply