Project

General

Profile

Wiki monitoring region

Installation d'une NOGIOS box pour le ROC France

= 1) Installation de base : =
a. Machine installée par les sysadmin du CC : OS + VOBOX + certificat

b. Accessible via gsissh (port 1975)

= 2) Action faite au préalable : =
a. Faire la demande pour que la machine soit autorisée à récupérer les SAM tests : https://gus.fzk.de/ws/ticket_info.php?ticket=55132

b. Autoriser la nagios box à récupérer les proxy en mode « retrieval », et stocker un proxy depuis une UI récuperable par la nagiosBOX voir [http://lcg.in2p3.fr/wiki/index.php/Nagios_regional#Annexe0 Annexe0]

c. Certificat utilisé pour :

i. Access to GOCDB PI for ROCS GOCDB PI level 2 required

ii. Recuperation de proxy pour les sondes locales

d. s'inscrire dans la mailing liste: (très réactive)

= 3) Installation de Nagios =
Reference : https://twiki.cern.ch/twiki/bin/view/EGEE/GridMonitoringNcgYaim
Installation des packages via yum, Ajout des repos suivant
a. mirrors-rpmforge (rpm rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm)
b. rpmforge-testing.repo
c. rpmforge.repo
d. glite-UI.repo
e. sa1-centos5-release.repo (rpm: sa1-release-2-1.el5.noarch.rpm)

Problèmes de dépendances rencontrées si besoin se référer [http://lcg.in2p3.fr/wiki/index.php/Nagios_regional#Annexe1 Annexe1] (mais j’avais dû oublier de faire un : yum install egee-NAGIOS)

Mysql

1. Installer la dernière version de Mysql (server + client) ;

2. configurer le mot de passe admin se référer [http://lcg.in2p3.fr/wiki/index.php/Nagios_regional#Annexe2 Annexe2a] ;

3. Configurer les users utiles à la nagios Box se référer [http://lcg.in2p3.fr/wiki/index.php/Nagios_regional#Annexe2 Annexe2b] ;

Configuration via yaim

1. Remplir /etc/ncg/ncg.localdb avec la liste des sites se referer [http://lcg.in2p3.fr/wiki/index.php/Nagios_regional#Annexe3 Annexe3]

2. Remplir le /opt/glite/yaim/site-info.def voir [http://lcg.in2p3.fr/wiki/index.php/Nagios_regional#Annexe4 Annexe4] ;

3. groupadd nagios

4. modif des uids/gids : /opt/glite/yaim/examples/edgusers.conf [http://lcg.in2p3.fr/wiki/index.php/Nagios_regional#Annexe5 Annexe5]

5. lancement de la configuration automatique via yaim :
/opt/glite/yaim/bin/yaim -s /opt/glite/yaim/site-info.def -c -n glite-NAGIOS
/opt/glite/yaim/bin/yaim -s /opt/glite/yaim/site-info.def -c -n glite-NRPE
/opt/glite/yaim/bin/yaim -s /opt/glite/yaim/site-info.def -c -n glite-UI -n glite-NAGIOS

Tuning the configuration

1. Verifier dans /etc/sysconfig/nagios:
LD_LIBRARY_PATH=/opt/classads/lib64:/opt/glite/lib64:/opt/globus/lib:/opt/c-ares/lib:/opt/classads/lib64

2. Desactiver les notifications, dans les fichiers de conf:
a. /etc/nagios/nagios.cfg, désactiver les notifications:enable_notifications=0 ;log_notifications=0
b. /etc/nagios/wlcg.d/host.templates.cfg
c. /etc/nagios/wlcg.d/service.templates.cfg

4. N’autoriser que les dteam/France à visualiser notre interface nagios : modifier le fichier :
/etc/voms2htpasswd.conf, avec : vomss://voms.cern.ch:8443/voms/dteam?/dteam/france
Plus utile site le site-info.def est défini correctement:
VO_DTEAM_VOMS_SERVERS='vomss://voms.cern.ch:8443/voms/dteam?/dteam/france'

ActiveMQ
/usr/sbin/msg-to-queue --prefix /queue/grid.probe.metricOutput.EGEE.a635834332381123c8b296d02b682f8f --broker-uri stomp://prod-grid-msg.cern.ch:6163

[root@cclcgvmli03 cron.hourly]# cat check_msg-to-queue.sh

Verifier les messages:
/usr/libexec/grid-monitoring/plugins/nagios/recv_from_queue -v

faire une update de perl-GridMon
The problem here is in the message handler
(/usr/lib/perl5/vendor_perl/5.8.8/GridMon/MsgHandler/MetricOutput.pm).
Probe on WN reports hostname localhost.localdomain and serviceURI CE
hostname. In the previous version message handler first checked hostname
value and then serviceURI. That is the reason why Christine is seeing
results for localhost.localdomain. However, we fixed this and the latest
version (1.0.34) parses messages correctly.

yum update perl-GridMon

= Annexe0 =

[cleroy@grid08 ~]$ grep cclcgvmli03 /opt/glite/etc/myproxy-server.conf
trusted_retrievers /O=GRID-FR/C=FR/O=CNRS/OU=CC-LYON/CN=cclcgvmli03.in2p3.fr
authorized_retrievers /O=GRID-FR/C=FR/O=CNRS/OU=CC-LYON/CN=cclcgvmli03.in2p3.fr
myproxy-init -c 336 -k nagios_roc_fr2-dteam -s myproxy.grif.fr -l nagios -x -Z "/O=GRID-FR/C=FR/O=CNRS/OU=CC-LYON/CN=cclcgvmli03.in2p3.fr"

= Annexe 1 =
rpm -ivh http://www.sysadmin.hep.ac.uk/rpms/egee-SA1/centos5/x86_64/sa1-release-2-1.el5.noarch.rpm
rpm -ivh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm

yum install atp
yum install bouncycastle
yum install broker
yum install broker-cache
yum install dcache-srmclient
yum install dummy-ca-certs
yum install egee-NAGIOS
yum install egee-NAGIOS egee-NRPE
yum install egee-NRPE
yum install fetch-crl
yum install fipscheck fipscheck-lib
yum install glite-UI
yum install glite-security-voms-clients
yum install glite-wms-ui-commands
yum install glite-yaim-core
yum install glite-yaim-nagios
yum install httpd
yum install jdk
yum install lcg-CA
yum install lcg-CA egee-NAGIOS
yum install lcg_util
yum install mddb
yum install msg-publish-simple
yum install myproxy
yum install mysql-client
yum install mysql-server
yum install nagios-proxy-refresh
yum install perl-Config-Tiny
yum install perl-DBD-MySQL
yum install perl-rrdtool-1.3.8-2.el5.rf.x86_64
yum install python-yaml
yum install sun-jaf
yum install uberftp-client
yum install vdt_globus_rm_client
yum update glite-yaim-clients
yum update glite-yaim-core
yum update glite-yaim-nagios
yum update mysql-server
yum update perl-DBI

= Annexe2 =
a)Mot de passe admin mysql :
Yum pour recupérer la derniere version de Mysql :
''MySQL-server-community'', ne pas oublier le client (pas de dépendance dessus)
Demmarrage de mysql avec --skip-grant-tables (pour ne pas avoir de mot de passe a rentrer)
mysqld_safe --skip-grant-tables &
[root@cclcgvmli03 ~]# mysql -u root
update user set password=PASSWORD where User='root';

b)creation des users pour le nagios regional:
[root@cclcgvmli03 ~]# mysql -u root -p
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON nagios.* TO 'ndouser''localhost' IDENTIFIED by 'ROCfr2009';
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON atp.* TO 'atpuser'
'localhost' IDENTIFIED by 'ROCfr2009';

= Annexe 3 =

[root@cclcgvmli03 ~]# cat /etc/ncg/ncg.localdb #
  1. Local Rules file to modify NCG configuration #
    SITE!AUVERGRID
    SITE!CGG-LCG2
    SITE!ESRF
    SITE!GRIF
    SITE!IBCP-GBIO
    SITE!IN2P3-CC
    SITE!IN2P3-CC-PPS
    SITE!IN2P3-CC-T2
    SITE!IN2P3-CPPM
    SITE!IN2P3-IPNL
    SITE!IN2P3-IRES
    SITE!IN2P3-LAPP
    SITE!IN2P3-LPC
    SITE!IN2P3-LPSC
    SITE!IN2P3-SUBATECH
    SITE!IPSL-IPGP-LCG2
    SITE!M3PEC
    SITE!MSFG
    SITE!MSFG-MULTI
    SITE!MSFG-OPEN
    SITE!OBSPM
    SITE!PARIS-UREC-IPV6
    SITE!SN-UCAD
    SITE!ROC-FR
    SITE!SOLEIL
    SITE!StratusLab
    [root@cclcgvmli03 ~]#

= Annexe 4 =

SITE_EMAIL=
SITE_NAME=ROC-FR
RB_HOST=node04.datagrid.cea.fr
WMS_HOST=node04.datagrid.cea.fr
PX_HOST=myproxy.grif.fr
BDII_HOST=topbdii.grif.fr
SITE_BDII_HOST=bdii.grif.fr
MON_HOST=node06.datagrid.cea.fr
VOS="dteam"
DTEAM_GROUP_ENABLE="dteam"
VO_DTEAM_SW_DIR=$VO_SW_DIR/dteam
VO_DTEAM_DEFAULT_SE=$SE_HOST
VO_DTEAM_STORAGE_DIR=$CLASSIC_STORAGE_DIR/dteam
VO_DTEAM_VOMS_SERVERS='vomss://voms.cern.ch:8443/voms/dteam?/dteam/'
VO_DTEAM_VOMSES="'dteam lcg-voms.cern.ch 15004 /DC=ch/DC=cern/OU=computers/CN=lcg-voms.cern.ch dteam 24' 'dteam voms.cern.ch 15004 /DC=ch/DC=cern/OU=computers/CN=voms.cern.ch dteam 24'"
VO_DTEAM_VOMS_CA_DN="'/DC=ch/DC=cern/CN=CERN Trusted Certification Authority' '/DC=ch/DC=cern/CN=CERN Trusted Certification Authority'"
NAGIOS_HOST=cclcgvmli03.in2p3.fr
NAGIOS_ADMIN_DNS="/O=GRID-FR/C=FR/O=CEA/OU=IRFU/CN=Christine Leroy","/O=GRID-FR/C=FR/O=CNRS/OU=CC-LYON/CN=Nadia Lajili","/O=GRID-FR/C=FR/O=CNRS/OU=LPC/CN=Emmanuel Medernach","/O=GRID-FR/C=FR/O=CNRS/OU=CPPM/CN=Juan Carlos Carranza"
NAGIOS_NCG_ENABLE_CONFIG=true
NAGIOS_NAGIOS_ENABLE_CONFIG=true
NCG_GOCDB_ROC_NAME=France
ROC_NAME=France
NCG_PROBES_TYPE=remote,native,local
NCG_VO=dteam
NAGIOS_MYPROXY_NAME=nagios_roc_fr2
NAGIOS_MYPROXY_USER=nagios
MSG_BROKER_CACHE_NETWORK=PROD
NAGIOS_ROLE=roc
NAGIOS_HTTPD_ENABLE_CONFIG=true
NAGIOS_SUDO_ENABLE_CONFIG=true
NAGIOS_CGI_ENABLE_CONFIG=true
NCG_LDAP_FILTER=GlueSiteOtherInfo=EGEE_ROC=France
NAGIOS_DB_PASS=x
NAGIOS_NSCA_PASS=x
MYSQL_ADMIN=x
ATP_DB_PASS=x
MDDB_DB_PASS=x
MS_DB_PASS=x
MYSQL_PASSWORD=x
MYEGEE_DB_PASS=x

= Annexe 5 =

[root@cclcgvmli03 ~]# cat /opt/glite/yaim/examples/edgusers.conf
11151:${DPMMGR_USER}:11151:${DPMMGR_GROUP}:DPM user:
11152:${EDG_USER}:11152,11156:${EDG_GROUP},${INFOSYS_GROUP}:EDG user:${EDG_HOME_DIR}
11153:${EDGINFO_USER}:11153,1156:${EDGINFO_USER},${INFOSYS_GROUP}:EDG info user:${EDGINFO_HOME_DIR}
11154:${RGMA_USER}:11154,1156:${RGMA_GROUP},${INFOSYS_GROUP}:RGMA user:${INSTALL_ROOT}/glite/etc/rgma
11155:${GLITE_USER}:11155:${GLITE_GROUP}:gLite user:${GLITE_HOME_DIR}
11156:${BDII_USER}:11158:${BDII_GROUP}:BDII user:${BDII_HOME_DIR}

Descriptions des sondes grilles délivrées par le projet

Description faite par le projet sur:
https://twiki.cern.ch/twiki/bin/view/LCG/SAMProbesMetrics

Les informations sur ces sondes sont disponibles [[https://twiki.cern.ch/twiki/bin/view/EGEE/OAT_EGEE_III 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 [[https://twiki.cern.ch/twiki/bin/view/LCG/GridMonitoringProbeSpecification|le 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"
  1. 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. === 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 === hr.srce.SRM1-Ping ===

$ /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).

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 \