Monitorer Windows avec Nagios / Centreon : PARTIE II

Requete WMI

Dans la PARTIE I : Monitorer Windows avec Nagios par WMI (check_wmi_plus & wmi-1.3.16) : PARTIE I, nous avons vu comment installer les composants nécessaires à l’utilisation de Check_wmi_plus.
Dans cette partie nous allons le faire fonctionner pour Centreon.

Nous allons tout d abord ajouter des ” ressources ” à Nagios, pour cela, rendez-vous dans : configuration, Nagios, puis ” resources ” :

Ajouter deux ressources :

Name         : $WMIU$
Values        : Username
Description : Windows User for WMI request
Status        : Enabled

Name         : $WMIP$
Values        : password
Description : Windows pwd for WMI request
Status        : Enabled

Prenez de préférence un user non-administrateur qui possède les droits pour faire des requêtes WMI :

Nous allons maintenant créer tous les commandes nécessaires au plugin ( attention, il y a des choses que SNMP fait très bien, pour moins de trafic réseau ), pour le rentrer dans Centreon, allez configuration, command, add, les lignes qui suivent sont organisé de la façon suivante :

—- >>>>>>>>>>>

Check_win_uptime

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkuptime  -u $WMIU$ -p $WMIP$

 

Check_win_drive

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkdrivesize  -u $WMIU$ -p $WMIP$ -a $ARG1$

 

Check_win_io

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -u $WMIU$ -p $WMIP$ -m checkio -s physical

 

check_win_filesize

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkfilesize -u $WMIU$ -p $WMIP$ -a $ARG1$ -w $ARG2$ -c $ARG3$

 

check_win_fileage

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkfileage -u $WMIU$ -p $WMIP$ -a ‘$ARG1$’ -w $ARG2$ -c $ARG3$

 

check_win_disk

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkdrivesize -u $WMIU$ -p $WMIP$ -a $ARG1$ -w $ARG2$ -c $ARG3$

 

check_win_volume

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkvolsize -u $WMIU$ -p $WMIP$ -a $ARG1$ -w $ARG2$ -c $ARG3$

 

check_win_cpuq

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkcpuq -u $WMIU$ -p $WMIP$ -w $ARG1$ -c $ARG2$ $ARG3$

 

check_win_cpu

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkcpu -u $WMIU$ -p $WMIP$ -w $ARG1$ -c $ARG2$ $ARG3$

 

check_win_cpudetail

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkeachcpu -u $WMIU$ -p $WMIP$ -w $ARG1$ -c $ARG2$ $ARG3$

 

check_win_network

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checknetwork -u $WMIU$ -p $WMIP$ -a ‘$ARG1$’ $ARG2$ $ARG3$

 

check_win_service

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkservice -u $WMIU$ -p $WMIP$ -a ‘$ARG1$’ -o ‘$ARG2$’ $ARG3$

 

check_win_uptime

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkuptime -u $WMIU$ -p $WMIP$ -w $ARG1$ -c $ARG2$ $ARG3$

 

check_win_mem

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkmem -u $WMIU$ -p $WMIP$ -w $ARG1$ -c $ARG2$ $ARG3$

 

check_win_page

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkpage -u $WMIU$ -p $WMIP$ $ARG1$ $ARG2$ $ARG3$

 

check_iis

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkiis -u $WMIU$ -p $WMIP$ -s $ARG1$ -a $ARG2$ $ARG3$

 

check_exchange

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkexchange -u $WMIU$ -p $WMIP$ -s $ARG1$ -a $ARG2$ $ARG3$

 

check_sql

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checksql -u $WMIU$ -p $WMIP$ -s $ARG1$ -a $ARG2$ $ARG3$

 

check_sql_express

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checksqlex -u $WMIU$ -p $WMIP$ -s $ARG1$ -a $ARG2$ $ARG3$

 

check_win_proc

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkproc -s $ARG1$ -u $WMIU$ -p $WMIP$ -a $ARG2$ $ARG3$

 

check_win_dns

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkdns -s $ARG1$ -u $WMIU$ -p $WMIP$ $ARG2$ $ARG3$

 

check_win_dhcp

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkdhcp -s $ARG1$ -u $WMIU$ -p $WMIP$ $ARG2$ $ARG3$

 

check_win_dhcpv6

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkdhcpv6 -s $ARG1$ -u $WMIU$ -p $WMIP$ $ARG2$ $ARG3$

 

check_win_print

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkprint -s $ARG1$ -u $WMIU$ -p $WMIP$ $ARG2$ $ARG3$

 

check_win_users

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkusers -s $ARG1$ -u $WMIU$ -p $WMIP$ $ARG2$ $ARG3$

 

check_win_power

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkpower -s $ARG1$ -u $WMIU$ -p $WMIP$ $ARG2$ $ARG3$

 

check_ad

$USER1$/check_wmi_plus.pl -H $HOSTADDRESS$ -m checkad -s $ARG1$ -u $WMIU$ -p $WMIP$ $ARG2$ $ARG3$

 

Une fois les commandes créées, nous allons ajouter les services :

 Services pour MSSQL :

Check_mssql_buffermanager
ARGS : !buffermanager!

( Chaque ! <- correspond à un argument -> !Buffermanager = !$Arg1$ )

Check_mssql_cache
ARGS : !cache!

 

Check_mssql_general
ARGS: !general!

 

Check_mssql_listdb
ARGS : !listdb!

 

Check_mssql_memory
ARGS : !memory!

 

Check_mssql_waits
ARGS : !waits!

 

Services pour IIS :

Check_IIS_connections_Total
ARGS : !connections!_Total

 

Check_IIS_connections_Default-Web-Site
ARGS : !connections!” Default-Web-Site”

 

Check_IIS_transferts
ARGS  : ! transferts!_Total ( ou “Default-Web-Site)

 

Check_IIS_errors
ARGS  : ! errors!_Total ( ou “Default-Web-Site)

 

Check_IIS_users
ARGS  : ! users!_Total ( ou “Default-Web-Site)

 

Check_IIS_requests
ARGS  : ! requests!_Total ( ou “Default-Web-Site)

Services pour DNS :

Check_dns_arecords
ARGS :  !arecords!

 

Check_dns_cnamerecords
ARGS :  !cnamerecords!

 

Check_dns_ptrrecords
ARGS :  !ptrrecords!

 

Check_dns_stats
ARGS :  !stats!

 

Services pour Exchange :

check_exch_DB
!listDBInstances

 

check_exch_ListSmtpSend
!listSmtpSendTransports

 

check_exch_ListSmtpRec
!listSmtpReceiveTransports

 

check_exch_Hub_tr
!HubTransportServer

 

check_exch_Tr_Queue
!TransportQueues

 

check_exch_SmtpRec
!SmtpReceive!_Total

 

check_exchange
!SmtpSend!_Total

Services pour Windows :

check_win_power
!state!-a “%”

 

check_win_fileage
!c:/windows/winhelp.exe!4wk!8wk

 

check_win_network
!Intel[R] PRO_1000 MT Network Connection

 

check_win_process
!svchost.exe!!1:10!1:20

 

check_win_io
!C:

 

check_win_eventlog
!application!2!1!50!100

 

check_win_mem
!90!95

 

check_win_page
!-a auto

 

check_win_print
!spooler!-a _Total

 

check_win_cpu
!80!90

 

check_win_filesize
!c:/pagefile.sys!1500m!2g

 

check_win_fileage
!c:/documents and settings/all users/ntuser.dat!1wk:!2wk:

 

check_win_fileage
!c:/pagefile.sys!10min:!30min:

 

check_ts
!sessioninfo!-a console

 

check_win_proc
!memory!svchost%

Il n’y a plus qu’a assigné ces différents services à vos Host et à admirer le résultat.

Vous pouvez maintenant utiliser check_wmi_plus pour monitorer vos services windows.

Pour toutes questions / remarques n’hésitez pas à laisser un commentaire.

About Alexandre Nogard

Check Also

Bash Scripting : Creation de vhosts automatisés avec Certificat Lets Encrypt

Bonjour à tous, Il y a quelques temps, j’avais posté un script bash permettant de …

Centreon : EventHandler Restart de Borne Wifi / DECT automatique Cisco & Ascom

Vous est il déjà arrivé d’avoir des bornes Wifi / DECT qui perdent la connexion, …

CentOs / RHEL : Rollback de mise à jour avec Yum history

Une mise à jour de php ou d’apache qui tourne mal, ça nous est déjà …

18 comments

  1. Nice article, thanks! Centreon isn’t nagios though, they forked nagios.

  2. bonjour,
    j’ai suivi tte les étapes cités dans la partie 2 du tuto Monitorer Windows avec Nagios / Centreon.
    j’au eu des problèmes au niveau des arguments, je les ai saisi comme ils ont écrits, mais quand j’ai revérifié j’ai trouvé qu’elle sont tous incorretes!! comment je peux faire pour résoudre ce pb!!!
    et j’ai eu une erreur au niveau du plugin “Return code of 127 is out of bounds – plugin may be missing”, puisque j’ai installé le fan Fully Automated Nagio sau début j’au cru que tt les plugins liés à Centreon sont déja installés. je pense mnt le réinstaller.

    Mercii bcp pour votre aide, je suis vrm coincée

  3. Sympa comme article mais comme toujours il manque la config principale cad celle.du windows car si on suit ton tuto à la lettre ba ca ne fonctionne pas. Bonne continuation.

    • Bonjour, merci,

      Pour pouvoir utiliser WMI, vous devez l’activer, pour windows server 2008, aller dans les features et ajouter SNMP & WMI.
      Ensuite vérifier que le service WMI est activé !
      Si vous avez encore des problèmes, n’hésitez pas ;).

  4. Bonjour,

    Comment renseigner les arguments dans la configuration d’un service ? Notamment lorsque plusieurs arguments sont nécessaires. Exemple:pour la configuration du serviuce Check_IIS_connections_Total,J’ai renseigné ARGS 1 avec la valeur !connections!_Total et ARG$2,ARG$3 laissés à vide.Résultat, il me demande de renseigner des valeurs pour ARG$2 et ARG$3. Que dois je renseigner svp ?
    Merci pour votre aide et merci pour ce tuto.

    • $ARG2$ et $ARG3$ sont précédés de -w et -c qui correspondent à Warning & Critical.
      Il faut que tu entres ces valeurs, ou si tu ne sais pas trop ou te situer,enlève les pour les remettre plus tard, quand tu connaitras les valeurs de warning & critical (une fois le compteur mis en place)

  5. Bonjour,
    Tout d’abord merci pour votre retour cela fonctionne.
    je rencontre par contre un problème avec les 2 variables $WMIU$ et $WMIP$
    utilisées en paramètre dans le check. Il ne les prend pas et me retourne des problèmes de mot de passe.En mettant le login et password en dure dans le check cela fonctionne.
    Les 2 variables sont bien activés.J’ai fait des essais après export vers nagios et même problème.
    Auriez vous une idée ?
    merci.

  6. Bonjour :)
    Merci bien pour cet exellent tuto!
    J’ai déja testé pour superviser la CPU, la RAM et le DNS et ça marche bien :D Je me demandais concernant la commande checkad, elle supervise quoi exactement sur Active Directory et quels sont ses arguments?
    cordialement :)

  7. Bonjour je suis sous FAN 2.4

    j’ai un probleme .. vraiment stupide je ne trouve pas ou je peux aller creer mes “ressources” $USERS1$ etc ..

    merci de bien vouloir m’orienter je sens que je l’ai en plein millieu du visage mais .. bon fin de semaine approche je dois être un peu lent !

    • Bonjour Alex,

      Je viens de voir que tu utilises FAN et j’aimerai savoir comment tu as fait pour implémenter WMI.
      Merci.

  8. Salut, je me permets de te contacter pour ce plugin. En effet, je l’ai mis en place, j’ai créé un fichier ini pour Exchange 2003, je dois checker les queue du Local Delivery. Tout fonctionne bien si je passe le user ./check_wmi_plus.pl -u DOMAIN\user -p password…
    Par contre, si je fais un fichier d’authentification, et utilise la commande -A avec le meme user, etc, cela ne passe pas.
    Ce user est un compte du domain, administrateur local du serveur à gérer.
    Le fichier d’authentification ressemble à ça:
    username=user
    password=password
    domain=DOMAIN

    Cela ne fonctionne pas avec un user du domain, mais si je mets l’accompte local admin du serveur, cela marche très bien.
    Tu aurais une idée?
    Merci

  9. Bonjour,
    J’aimerai savoir si ce pluggin fonctionne avec un Raspberry pi, comme il existe une versions de nagios sur Raspberry pi.. cela devrai être possible ?
    Je cherche a monitorer à l’aide des commandes WMI un PC Windows7 avec un Raspberry pi 3.

    • Bonjour,

      J’ai un problème au niveau de centreon, losrque je met la commande sur centreon elle ne fonctionne pas et me retourne un état “CRITICAL” avec “No output returned from plugin” alors que ça marche très bien en ligne de commande sur mon serveur. j’utilise une CES 3.3.

      Merci pour votre réponse.

      • Execute la commande en CLI, avec l’utilisateur que tu as configuré pour centreon, généralement, c’est centreon :

        su centreon
        execution de la commande

        Donne moi le résultat.

        • Bonjour,

          Même avec l’utilisateur centreon j’ai les mêmes résultats que en root:
          “OK (Sample periode 4 sec) -Average CPU utilisation 10.66%”

        • Bonjour,

          J’ai réglé le problème au niveau de Centreon en supervisant mon PC, et j’ai voulu faire un test sur un serveur distant mai ça n’a pas marché, jai le message d’erreur suivant: “UNKNOWN – The WMI query had problems. The error text from wmic is: [wmi/wmic.c:196:main()] ERROR: Login to remote object”

  10. salut et merci pour le tuto,

    j’ai pas forcément de soucis sur mon centreon, mais sur mon client windows 2008R2, je pense que j’ai des soucis de conf de wmi. voici le message que j’ai quand j’exécute ma commande :

    ./check_wmi_plus.pl -H 192.168.50.12 -m checkuptime -u user -p password

    UNKNOWN – Plugin Timed out (15 sec). There are multiple possible reasons for this, some of them include – The host 192.168.50.12 might just be really busy, it might not even be running Windows.

    Sur un windows 10 j’ai bien un retour positif. par contre sur mon 2008 R2 j’ai ce message.
    Pour info, si je mets un mauvais mot de passe, j’ai un autre message.
    Et le user utilisé est administrateur local du serveur.

    Merci de ton retour.

Leave a Reply

Your email address will not be published. Required fields are marked *