Déscription des sondes grilles

Un article de lcgwiki.
Jump to: navigation, search

Cette page décrit les sondes grilles délivrées par le projet (WLCG Monitoring Working group).

Les informations sur ces sondes sont disponibles [sur le Wiki de l'OAT].

Structure et syntaxe des sondes

Les sondes délivrés par le projet ne sont pas limités qu'à une utilisation dans Nagios, elles ont été développés de façon à pouvoir être intégré dans d'autres outils de monitoring (Lemon,...).

Le projet a donc défini des spécifications pour l'écriture de ces sondes. Ces spécifications sont disponibles sur [Wiki du WLCG Monitoring Working Group].

Les sondes développés en suivant ces spécifications intègrent des options standard :

  • -h|--help : affiche l'aide sur l'utilisation de la sonde.
  • -l : Liste les "métriques" testé par la sondes. Une seule et même sonde peut intégrer plusieurs métriques, c'est à dire des tests différents.
  • -m : Spécifie la "métrique" à invoquer.
  • -x : Chemin vers le fichier de proxy.
  • -n : Affiche le résultat de la sonde au format Nagios (résultat sur 1 seule ligne + valeur de retour).
  • -u : URI du service à tester (dans le cas de sondes non locale).

Par défaut, le résultat d'exécution de la sonde est affiché au format WLCG.

$ /usr/libexec/grid-monitoring/probes/hr.srce/GridProxy-probe -x $X509_USER_PROXY 
serviceType: GridProxy
metricName: hr.srce.GridProxy-Valid
metricStatus: OK
timestamp: 2008-11-27T11:38:49Z
summaryData: Grid proxy is valid. Certificate will expire in 10.85 hours (Nov 27 22:30:05 2008 GMT).
hostName: cclcgsrvli01
EOT

L'exécution de la sonde renvoi deux codes retour possibles (qui sont différent de ceux de nagios) :

  • 0 : La sonde a effectué sont traitement correctement (même si le metricStatus est CRITICAL)
  • 1 : La sonde n'a pas pu effectuer sont traitement correctement (échec de connexion au service par exemple).

L'option -n permet d'exécuter ces sondes avec une sortie formaté pour nagios.

$ /usr/libexec/grid-monitoring/probes/hr.srce/GridProxy-probe -x $X509_USER_PROXY -n
Grid proxy is valid. Certificate will expire in 10.85 hours (Nov 27 22:30:05 2008 GMT).
$ echo $?
0

Pagkages RPM

4 packages RPM contiennent les sondes et les outils nécessaire à l'exécution de ces sondes :

nagios-proxy-refresh-1.7-3.noarch
grid-monitoring-probes-hr.srce-0.10.1-1.noarch
grid-monitoring-probes-ch.cern-0.12.0-1.x86_64
grid-monitoring-fm-nagios-local-0.11.1-1.noarch

Le nom des packages de sondes contient le nom de l'organisme délivrant les sondes (pour le moment uniquement cern.ch et srce.hr).

Package nagios-proxy-refresh

Ce paquet contient le mécanisme de renouvellement de proxy.

Le fichier de configuration est /etc/nagios-proxy-refresh.conf. Le renouvellement de proxy est effectué toute les 4 heures par le script cron /etc/cron.d/nagios-proxy-refresh. Ce script ne s'exécute que si le service est démarré. Le script de démarrage du service est /etc/init.d/nagios-proxy-refresh. Ce dernier positionne un fichier de lock qui autorise ou non le script cron a s'exécuter.

Le proxy généré est stocké dans le fichier /etc/nagios/globus/userproxy.pem. L'accès à ce fichier n'est autorisé que pour l'utilisateur nagios.

Par défaut, le proxy est récupéré en s'authentifiant sur le serveur myproxy avec le certificat machine (/etc/grid-security/hostcert.pem; /etc/grid-security/hostkey.pem). Il faut que la commande /usr/sbin/nagios-proxy-refresh soit appelé sous l'identité root.

Le proxy préalablement déposé sur le serveur myproxy doit donc explicitement authoriser le DN du certificat machine a générer des certificat.

$ myproxy-init -c 336 -k NagiosRetrieve-ccegeevmli10.in2p3.fr-dteam -s myproxy.grif.fr -l nagios -x -Z "/O=GRID-FR/C=FR/O=CNRS/OU=CC-LYON/CN=ccegeevmli10.in2p3.fr"
# avec des Expression rationelles
$ myproxy-init -c 336 -k NagiosRetrieve-ccegeevmli10.in2p3.fr-dteam -s myproxy.grif.fr -l nagios -x -Z "/O=GRID-FR/C=FR/O=CNRS/OU=CC-LYON/CN=ccegeevm*"

Package grid-monitoring-fm-nagios-local

Ce package contient ne contient pas de sondes mais 2 utilitaires :

  • check_wlcg : un wrapper permettant de positionner l'environnement prealablement à l'exécution des sondes grilles.
  • nagios-run-check : programme permettant d'éxécuter un test de service sur un host à partir de la configuration nagios. Cette commande doit être éxécuté sous l'identité root:
#  nagios-run-check cclcgceli01.in2p3.fr hr.srce.GridFTP-Transfer
Upload to remote computer succeeded. Download from remote computer succeeded. File successfully removed from remote computer. Received file is valid.

Package grid-monitoring-probes-cern

Ce package contient des sondes fournies par le CERN. Elle sont installés dans le répertoire /usr/libexec/grid-monitoring/probes/ch.cern/.

FTS-probe

Cette sonde test le service FTS en se connectant sur le serveur TOMCAT du service et en récupérant la liste des canaux ouvert. Elle ne contient qu'un seul module (ch.cern.FTS-ChannelList).


$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/ch.cern/FTS-probe -m ch.cern.FTS-ChannelList -u cclcgftsprod.in2p3.fr -x $X509_USER_PROXY -n
OK - Found 74 channels

LFC-probe

Cette sonde permet de tester un Service LFC. La particularité de cette sonde est qu'elle ne supporte pas le format de sortie Nagios (option -n) et quelle est écrite en Python. Elle contient 4 modules.

ch.cern.LFC-Write

Ce module écrit une entrée dans le répertoire /grid/VO d'un serveur LFC donné en utilisant l'API python.

$ /usr/libexec/grid-monitoring/probes/ch.cern/LFC-probe -m ch.cern.LFC-Write -u lfc-prod.in2p3.fr  -v dteam -x $X509_USER_PROXY serviceType: glite-LFC
gatheredAt: ccegeevmli10
metricStatus: OK
timestamp: 2009-01-21T10:09:15.330553
voName: dteam
summaryData: OK
serviceURI: lfc-prod.in2p3.fr
metricName: ch.cern.LFC-Write
EOT
$ /usr/libexec/grid-monitoring/plugins/nagios/check_wlcg -m ch.cern.LFC-Write-u lfc-prod.in2p3.fr -P /usr/libexec/grid-monitoring/probes/ch.cern/LFC-probe -o "-v dteam" -x $X509_USER_PROXY
OK

ch.cern.LFC-Read

Ce module lie l'entrée précédemment crée par le module ch.cern.LFC-Write dans le répertoire /grid/VO d'un serveur LFC donné en utilisant l'API python.

$ /usr/libexec/grid-monitoring/probes/ch.cern/LFC-probe -m ch.cern.LFC-Write -u lfc-prod.in2p3.fr  -v dteam -x $X509_USER_PROXY serviceType: glite-LFC
gatheredAt: ccegeevmli10
metricStatus: OK
timestamp: 2009-01-21T10:09:15.330553
voName: dteam
summaryData: OK
serviceURI: lfc-prod.in2p3.fr
metricName: ch.cern.LFC-Write
EOT
$ /usr/libexec/grid-monitoring/plugins/nagios/check_wlcg -m ch.cern.LFC-Read -u lfc-prod.in2p3.fr -P /usr/libexec/grid-monitoring/probes/ch.cern/LFC-probe -o "-v dteam" -x $X509_USER_PROXY
OK

ch.cern.LFC-ReadDli

Ce module vérifie la présence d'une entrée précédemment crée par le module ch.cern.LFC-Write en se connectant sur le serveur TOMCAT du service.

$ /usr/libexec/grid-monitoring/probes/ch.cern/LFC-probe -m ch.cern.LFC-ReadDli -u lfc-prod.in2p3.fr  -v dteam -x $X509_USER_PROXY 
serviceType: glite-LFC
gatheredAt: ccegeevmli10
metricStatus: OK
timestamp: 2009-01-21T10:17:58.569287
voName: dteam
summaryData: Found 1 PFN
serviceURI: lfc-prod.in2p3.fr
metricName: ch.cern.LFC-ReadDli
EOT
$ /usr/libexec/grid-monitoring/plugins/nagios/check_wlcg -m ch.cern.LFC-ReadDli -u lfc-prod.in2p3.fr -P /usr/libexec/grid-monitoring/probes/ch.cern/LFC-probe -o "-v dteam" -x $X509_USER_PROXY
Found 1 PFN

ch.cern.LFC-Readdir

Cette sonde lit les entrée d'un répertoire LFC et affiche le temps d'exécution de la commande.

$ /usr/libexec/grid-monitoring/probes/ch.cern/LFC-probe -m ch.cern.LFC-Readdir -u lfc-prod.in2p3.fr  -v dteam -x $X509_USER_PROXY 
serviceType: glite-LFC
gatheredAt: ccegeevmli10
metricStatus: OK
timestamp: 2009-01-21T10:19:07.828381
voName: dteam
summaryData: 0.053
serviceURI: lfc-prod.in2p3.fr
metricName: ch.cern.LFC-Readdir
EOT
$ /usr/libexec/grid-monitoring/plugins/nagios/check_wlcg -m ch.cern.LFC-Readdir -u lfc-prod.in2p3.fr -P /usr/libexec/grid-monitoring/probes/ch.cern/LFC-probe -o "-v dteam" -x $X509_USER_PROXY
0.048

RGMA-probe

Cette sonde permet de tester le service MON Box. Elle se connecte sur le serveur TOMCAT de la machine et récupère le status du service. Elle contient 2 modules

ch.cern.RGMA-CertLifetime

Ce module teste la validité du certificat serveur du service RGMA.

$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/ch.cern/RGMA-probe -m ch.cern.RGMA-CertLifetime -u cclcgmoli01  -n
Certificate will expire in 253.99 days (Aug 14 14:01:00 2009 GMT).

ch.cern.RGMA-ServiceStatus

Vérifie le status du service RGMA.

$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
./RGMA-probe -m ch.cern.RGMA-ServiceStatus -u cclcgmoli01 -n -x /etc/nagios/globus/userproxy.pem
OK

Package grid-monitoring-probes-hr.srce

Ce package contient des sondes fournies par SRCE. Elle sont installés dans le répertoire /usr/libexec/grid-monitoring/probes/hr.srce/.


CAdist-probe

Cette sonde permet de tester si la version des CA distribué par le projet sur une machine donnée est bien à jour.

La sonde télécharge la version des CA courante sur les site de l'IGTF et du respository LCG et les compare de deux façon possible :

  • Soit localement en extrayant les données du fichier /etc/grid-security/certificates/policy-igtf-classic.info
  • Soit à distance (si un nom de Host est passé en paramètre) en transférant ce même fichier par gridftp

Utilisation

$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/hr.srce/CAdist-probe -m hr.srce.CAdist-Version -n

DPM-probe

Cette sonde permet de tester un serveur DPM.

Elle contient un seul module hr.srce.DPM-Query qui effectue une commande dpm-qryconf

DPNS-probe

Cette sonde permet de tester le service DPNS.

Elle contient un seul module hr.srce.DPNS-List qui exécute une command dpns-ls.

GRAM-probe

Cette sonde permet de tester des services (essentiellement les CEs) en utilisant la couche Globus GRAM (Globus Resource Allocation Manager). Les services GRAM sont utilisé coté client pour s'authentifier auprès d'un service et effectuer des action (telles que la soumission de job).

Cette sonde contient 3 modules :

hr.srce.GRAM-CertLifetime

Ce module permet de tester la validité d'un certificat en se connectant sur la port du service (2119 par défaut.

$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/hr.srce/GRAM-probe -m hr.srce.GRAM-CertLifetime -u ccsrm:8443 -n
Certificate will expire in 253.99 days (Aug 14 14:01:00 2009 GMT).

hr.srce.GRAM-Auth

Ce module permet de tester l'authentification auprès du service Gatekeeper d'un CE et voir ainsi si le service reconnaît le DN du proxy.

$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/hr.srce/GRAM-probe -m hr.srce.GRAM-Auth -u cclcgvmli03 -n
GRAM Authentication test successful

hr.srce.GRAM-Command

Ce module permet de soumettre un job sur un CE via la commande "globus-job-run". Le paramètre -u (URL) permet de spécifier le jobmanager que l'on souhaite utiliser. En cas de soumission sur le système de batch, il faut spécifier l'option -t (timeout) avec un valeur minimale de 600 secondes.

  • Soumission sur la queue jobmanager-fork
$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/hr.srce/GRAM-probe -m hr.srce.GRAM-Command -u cclcgceli03:2119/jobmanager-fork -n
GRAM OK: Command successfully executed. Output is: "1228755558 ". Result matches the expected result.
  • Soumission sur le batch systeme, queue jobmanager-pbs
$ /usr/libexec/grid-monitoring/probes/hr.srce/GRAM-probe -m hr.srce.GRAM-Command -u grid63.lal.in2p3.fr:2119/jobmanager-pbs  -o "(queue=dteam)" -n 
GRAM OK: Command successfully executed. Output is: "1232541226 ". Result matches the expected result.

GridFTP-probe

Cette sonde permet de tester un service GridFTP en effectuant un transfert (écriture/lecture/suppression). Il est possible de spécifier des paramètres optionnels tels que :

  • -vo : Nom de la Vo utilisé pour faire le test
  • -t : timeout (par défaut 600 s)
  • --path= : répertoire de destination (par défaut /tmp)
$ /usr/libexec/grid-monitoring/probes/hr.srce/GridFTP-probe -m hr.srce.GridFTP-Transfer -u cclcgceli01 -n
Upload to remote computer succeeded. Download from remote computer succeeded. File successfully removed from remote computer. Received file is valid. 

$ /usr/libexec/grid-monitoring/probes/hr.srce/GridFTP-probe -m hr.srce.GridFTP-Transfer -u gsiftp://cclcgseli01:2811 --path=/grid/dteam -n
Upload to remote computer succeeded. Download from remote computer succeeded. File successfully removed from remote computer. Received file is valid. 


GridProxy-probe

Cette sonde teste si un proxy est valide. Elle est utilisé pour tester le proxy utilisé par Nagios :

$ /usr/libexec/grid-monitoring/probes/hr.srce/GridProxy-probe -x /etc/nagios/globus/userproxy.pem -n -v dteam
Grid proxy is valid. Certificate will expire in 9.15 hours (Dec 09 02:30:03 2008 GMT).

MyProxy-probe

Cette sonde permet de tester la validité du proxy stocké sur le serveur MyProxy. Cette sonde contient 3 modules

hr.srce.MyProxy-CertLifetime

Ce module teste la validité du certificat serveur du service MyProxy.

$ /usr/libexec/grid-monitoring/probes/hr.srce/MyProxy-probe -m hr.srce.MyProxy-CertLifetime -u myproxy.grif.fr -n 
Certificate will expire in 147.85 days (Jun 17 14:00:37 2009 GMT).

hr.srce.MyProxy-ProxyLifetime

Ce module test la validité du proxy longue durée déposé sur le serveur MyProxy. L'authentification sur le serveur myproxy est faite en utilisant le certificat préalablement chargé.

$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/hr.srce/MyProxy-probe -m hr.srce.MyProxy-ProxyLifetime -u myproxy.grif.fr -x $X509_USER_PROXY -n
Certificate will expire in 8.83 days (Jan 29 13:35:21 2009 GMT).

hr.srce.MyProxy-Store

Ce module permet de tester que le service Myproxy fonctionne bien. Il crée un nouveau proxy à partir du proxy courant, le dépose sur le serveur myproxy, affiche les informations puis le supprime en fin de test

$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/hr.srce/MyProxy-probe -m hr.srce.MyProxy-Store -u myproxy.grif.fr --verbose -n
INFO: getting proxy certificate info
COMMAND: /opt/globus/bin/grid-proxy-info 2>&1
COMMAND: /opt/globus/bin/myproxy-init -x -S -k nagios -l nagios -c 1 -s myproxy.grif.fr -p 7512 -r "/O=GRID-FR/C=FR/O=CNRS/OU=CC-LYON/CN=Pierre-Emmanuel Brinette" 
COMMAND: /opt/globus/bin/myproxy-info -l nagios -s myproxy.grif.fr -p 7512
COMMAND: /opt/globus/bin/myproxy-destroy -k nagios -l nagios -s myproxy.grif.fr -p 7512
MyProxy credential created. Querying stored credential succeeded. MyProxy credential destroyed. 

ResourceBroker-probe

Cette sonde permet de tester un Ressource Broker. Elle contient 2 modules

hr.srce.ResourceBroker-CertLifetime

Ce module teste la validité du certificat serveur du service Ressource Broker.

$ /usr/libexec/grid-monitoring/probes/hr.srce/ResourceBroker-probe -m hr.srce.ResourceBroker-CertLifetime -u rb104.cern.ch -n
Certificate will expire in 66.65 days (Mar 28 09:27:28 2009 GMT).

hr.srce.ResourceBroker-RunJob

Ce module permet de tester un Ressource Broker en soumettant un job et en récupérant le résultat. Les options utiles sont :

  • -v : Nom de la vo utilisé pour soumettre le job
  • --ce : Force le hostname d'un CE de déstination
  • -t (timeout) : Par défaut 600s, nécessite peut-etre d'être augmenté.

Le résultat de cette sonde est considéré comme valide lorsque le job s'est exécuté et que l'output de job a bien été récupéré.

$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/hr.srce/ResourceBroker-probe -m hr.srce.ResourceBroker-RunJob -u rb104.cern.ch -v dteam  --ce cclcgceli02.in2p3.fr -n -x $X509_USER_PROXY
Job https://rb104.cern.ch:9000/LHRfaNYfsybHGqNWwsKkmw successfully submitted. Job successfully finished. Job output successfully retrieved. Received file is valid.

SRM-probe

Cette sonde permet de tester les services SRMv1 et SRMv2. Elle contient 4 modules:

hr.srce.SRM1-CertLifetime

Ce module teste la validité du certificat serveur du service SRMv1

$ /usr/libexec/grid-monitoring/probes/hr.srce/SRM-probe -m hr.srce.SRM1-CertLifetime -u ccsrm.in2p3.fr -n
Certificate will expire in 205.83 days (Aug 14 14:01:00 2009 GMT).

hr.srce.SRM1-Ping

Teste si l'interface du service SRM répond à une requete SRM-ping.

$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/hr.srce/SRM-probe -m hr.srce.SRM1-Ping -u ccsrm.in2p3.fr -n -x $X509_USER_PROXY
SRM ping successful.

hr.srce.SRM2-CertLifetime

Ce module teste la validité du certificat serveur du service SRMv2.

$ /usr/libexec/grid-monitoring/probes/hr.srce/SRM-probe -m hr.srce.SRM2-CertLifetime -u ccsrm.in2p3.fr -n
Certificate will expire in 205.83 days (Aug 14 14:01:00 2009 GMT).

hr.srce.SRM-Transfer

Effectue un transfert d'un fichier sur le serveur SRM. Les options utiles sont :

  • --path  : spécifie le répertoire de déstination (par défault /tmp)
  • -t  : Timeout de la commande (par défaut 600s)
$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/hr.srce/SRM-probe -m hr.srce.SRM-Transfer -x $X509_USER_PROXY -u ccsrm02  --path /pnfs/in2p3.fr/data/dteam/ -n
Upload to remote computer succeeded. Download from remote computer succeeded. File successfully removed from remote computer. Received file is valid. 

WMProxy-probe

Cette sondes et le pendant de la sonde ResourceBroker-probe pour le WMS. Elle permet de tester un WMS en soumettant un job.

Elle contient 2 modules :

hr.srce.WMProxy-CertLifetime

Ce module teste la validité du certificat serveur du service WMS:

$ /usr/libexec/grid-monitoring/probes/hr.srce/WMProxy-probe -m hr.srce.WMProxy-CertLifetime -u wms114.cern.ch -n
Certificate will expire in 210.86 days (Aug 19 15:32:13 2009 GMT).

hr.srce.WMProxy-RunJob

Ce module permet de tester un WMS en soumettant un job et en récupérant le résultat. Les options utiles sont :

  • -v : Nom de la vo utilisé pour soumettre le job
  • --ce : Force le hostname d'un CE de déstination
  • -t (timeout) : Par défaut 600s, nécessite peut-etre d'être augmenté.

ATTENTION Les WMS sont particulièrement sensible au décalage d'horloges. Si la machine qui exécute la sondes à quelques secondes d'avance sur l'horloge des WMS vous obtenez le message:

 Proxy exception: Proxy validity starting time in the future

Le résultat de cette sonde est considéré comme valide lorsque le job s'est exécuté et que l'output de job a bien été récupéré.

$ export X509_USER_PROXY=/etc/nagios/globus/userproxy.pem
$ /usr/libexec/grid-monitoring/probes/hr.srce/WMProxy-probe -m hr.srce.WMProxy-RunJob -x $X509_USER_PROXY -u wms114.cern.ch -v dteam  -t 3600 --ce cclcgceli02.in2p3.fr -n 
Job https://wms114.cern.ch:9000/dqlZqLb2bdXRxPEC9eRSuQ successfully submitted. Job successfully finished. Job output successfully retrieved. Received file is valid.


WMS-probe

Cette sonde est similaire à la sonde VMProxy-probe. Elle utilise les commande glite-job-* qui on disparu du middleware. Cette sonde n'est plus utilisé

refresh_proxy

Ce n'est pas une sonde ! Ce script est utilisé par la commande /usr/sbin/nagios-proxy-refresh pour obtenir un proxy préalablement déposé sur le serveur Myproxy. Pour pouvoir utiliser le certificat machine pour s'authentifier (/etc/grid-security/hostcert.pem; /etc/grid-security/hostkey.pem), , ce script doit être éxécuté sous l'identité root afin de pouvoir lire la clé privé.

      /usr/libexec/grid-monitoring/probes/hr.srce/refresh_proxy \
     -x $OUTPUT_PROXY \
     -m hr.srce.GridProxy-Get \
     -u $MYPROXY_HOST  \
     --myproxyuser $MYPROXY_USER \
     --name $MYPROXY_NAME \
     --localuser $LOCALUSER   \
     --vo $NAGIOS_VO \