Difference between revisions of "Installer Nagios NCG sans YAIM"
(20 intermediate revisions by the same user not shown) | |||
Ligne 2: | Ligne 2: | ||
L'installation et la configuration des packages NCG avec Yaim présentent des inconvénients majeurs. La distribution Nagios+NCG est actuellement testée par l'OAT comme un composant d'un système de monitoring régional distribué. Cette distribution évolue assez rapidement et intègre régulièrement de nouveaux composants qui ne sont pas utiles, et peuvent même être génant pour un système de monitoring de site. Par exemple: | L'installation et la configuration des packages NCG avec Yaim présentent des inconvénients majeurs. La distribution Nagios+NCG est actuellement testée par l'OAT comme un composant d'un système de monitoring régional distribué. Cette distribution évolue assez rapidement et intègre régulièrement de nouveaux composants qui ne sont pas utiles, et peuvent même être génant pour un système de monitoring de site. Par exemple: | ||
− | * | + | * L'accès à la page de status de nagios pour n'importe quelle personnes appartenant aux VOs ops ou dteam |
* L'envoi des résultat d'éxécution des sondes par Active MQ "quelque part" | * L'envoi des résultat d'éxécution des sondes par Active MQ "quelque part" | ||
* Le stockage des informations dans une base de donnée mysql (NDOTools) | * Le stockage des informations dans une base de donnée mysql (NDOTools) | ||
Ligne 36: | Ligne 36: | ||
* egee-SA1 | * egee-SA1 | ||
# wget http://www.sysadmin.hep.ac.uk/rpms/egee-SA1/sl4/egee-SA1.repo | # wget http://www.sysadmin.hep.ac.uk/rpms/egee-SA1/sl4/egee-SA1.repo | ||
− | + | ||
=== Installation les packages nécessaire === | === Installation les packages nécessaire === | ||
Ligne 47: | Ligne 47: | ||
* Configuration de la couche 'UI' de la machine | * Configuration de la couche 'UI' de la machine | ||
− | + | Modifier le '''site-info.def''' afin configurer une UI. | |
BDII_HOST=cclcgtopbdii01.in2p3.fr | BDII_HOST=cclcgtopbdii01.in2p3.fr | ||
Ligne 62: | Ligne 62: | ||
# yum install nagios nagios-plugins httpd | # yum install nagios nagios-plugins httpd | ||
− | * Installation des sondes et de | + | * Installation des sondes et de NCG |
− | # yum install nagios-proxy-refresh grid-monitoring-probes-hr.srce grid-monitoring-probes-ch.cern | + | # yum install nagios-proxy-refresh grid-monitoring-probes-hr.srce grid-monitoring-probes-ch.cern grid-monitoring-probes-org.bdii |
− | # yum install grid-monitoring-config-gen grid-monitoring-fm-nagios-local grid-monitoring-fm-nagios-remote | + | # yum install grid-monitoring-config-gen grid-monitoring-fm-nagios-local grid-monitoring-fm-nagios-remote |
− | == Configuration | + | == Configuration des services == |
=== Rafraîchissement de proxy === | === Rafraîchissement de proxy === | ||
+ | Ce mécanisme n'est utilisé qu'en cas d'utilisation des sondes '''"local"''' nécessitant un proxy. | ||
+ | |||
+ | Il faut au préalable déposer un proxy longue durée sur le serveur MyProxy. '''Attention''' le serveur MyProxy que vous allez utiliser doit explicitement autoriser le DN du certificat machine à récupérer des proxy (Variable '''TRUSTED_RETREIVERE'''). | ||
− | + | Depuis un machine interactive, lancer la commande suivante : | |
$ export GT_PROXY_MODE=old | $ export GT_PROXY_MODE=old | ||
$ 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" | $ 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" | ||
Ligne 96: | Ligne 99: | ||
=== Configuration de HTTPd === | === Configuration de HTTPd === | ||
− | + | '''Rappel''': Les utilisateurs autorisés à se connecter à l'interface Web nagios sont définit dans le fichier /etc/nagios/cgi.cfg. L'authentification de l'utilisateur est faite par apache. L'utilisateur par défaut est '''nagiosadmin'''. | |
+ | * Création du mot de passe de l'utilisateur 'nagiosadmin' autorisé à se connecter à la console de Nagios. | ||
# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin | # htpasswd -c /etc/nagios/htpasswd.users nagiosadmin | ||
New password: | New password: | ||
Ligne 113: | Ligne 117: | ||
=== Configuration de NCG === | === Configuration de NCG === | ||
− | Le fichier de configuration principal de NCG est '''/etc/ncg/ncg. | + | Le fichier de configuration principal de NCG est '''/etc/ncg/ncg.conf'''. Il inclut le fichier '''/etc/ncg/ncg.localdb''' permettant de personnaliser la configuration générée. |
− | Le fichier principal est découpé en | + | Le fichier principal est découpé en sections. Le début du fichier permet de renseigner des variables 'globales' utilisées dans la suite du fichier. |
Les variables à renseigner en entête de fichier sont : | Les variables à renseigner en entête de fichier sont : | ||
− | * SITENAME : Le nom du site pour lequel générer la configuration | + | * SITENAME : Le nom du site grille pour lequel générer la configuration. |
− | * MYPROXY_SERVER : Serveur myproxy utilisé pour stocker le proxy longue durée | + | * MYPROXY_SERVER : Serveur myproxy utilisé pour stocker le proxy longue durée. |
− | * BDII : hostname du ''' | + | * BDII : hostname du '''sitebdii''' du site à superviser. |
* MAIN_DB_FILE=/etc/ncg/ncg.localdb : fichier contenant les définitions locales de la configuration. | * MAIN_DB_FILE=/etc/ncg/ncg.localdb : fichier contenant les définitions locales de la configuration. | ||
Ligne 130: | Ligne 134: | ||
MAIN_DB_FILE=/etc/ncg/ncg.localdb | MAIN_DB_FILE=/etc/ncg/ncg.localdb | ||
− | Le fichier est en suite découpé en | + | Le fichier est en suite découpé en sections correspondant aux modules perl utilisés pour générer la configuration |
Dans la section '''<NCG::ConfigGen>''' il faut renseigner les valeurs : | Dans la section '''<NCG::ConfigGen>''' il faut renseigner les valeurs : | ||
Ligne 136: | Ligne 140: | ||
<Nagios> | <Nagios> | ||
MYPROXY_SERVER=${MYPROXY_SERVER} # utilise la variable déclaré précédement) | MYPROXY_SERVER=${MYPROXY_SERVER} # utilise la variable déclaré précédement) | ||
− | PROBES_TYPE=local,remote,native # type configuration nagios à générer | + | PROBES_TYPE=local,remote,native # type de configuration nagios à générer |
− | # Emplacement des | + | # Emplacement des répertoires à utiliser, ne pas modifier pour une install SL4 |
TEMPLATES_DIR = /usr/share/grid-monitoring/config-gen/nagios | TEMPLATES_DIR = /usr/share/grid-monitoring/config-gen/nagios | ||
OUTPUT_DIR = /etc/nagios/wlcg.d | OUTPUT_DIR = /etc/nagios/wlcg.d | ||
Ligne 159: | Ligne 163: | ||
# Liste des VOs pour lesquels récupérer les tests SAM | # Liste des VOs pour lesquels récupérer les tests SAM | ||
SAM_VOS=OPS | SAM_VOS=OPS | ||
− | # nom de la | + | # nom de la VO utilisée pour passer les tests locaux: |
VO=dteam | VO=dteam | ||
</Nagios> | </Nagios> | ||
</NCG::ConfigGen> | </NCG::ConfigGen> | ||
− | '''Attention''' : la syntaxe des noms des VOs utilisée par la variable '''SAM_VOS''' n'est pas la même que celle définie dans le CIC portal. De plus il faut respecter la casse. Pour récupérer la liste des VOs | + | '''Attention''' : la syntaxe des noms des VOs utilisée par la variable '''SAM_VOS''' n'est pas la même que celle définie dans le CIC portal. De plus il faut respecter la casse. Pour récupérer la liste des VOs déclarées dans la base de SAM, il suffit de lancer depuis le serveur nagios la commande : |
$ wget -q -O - http://lcg-sam.cern.ch:8080/same-pi/vo_names.jsp | xmllint --format - | $ wget -q -O - http://lcg-sam.cern.ch:8080/same-pi/vo_names.jsp | xmllint --format - | ||
− | Dans la section '''<NCG::SiteInfo>''' on peut spécifier des | + | Dans la section '''<NCG::SiteInfo>''' on peut spécifier des informations complémentaires |
− | * Ajouter les | + | * Ajouter les noeuds présents dans le BDII mais non déclaré dans la GOCDB: |
# NCG modules for gathering site information | # NCG modules for gathering site information | ||
<NCG::SiteInfo> | <NCG::SiteInfo> | ||
Ligne 175: | Ligne 179: | ||
<LDAP> | <LDAP> | ||
LDAP_ADDRESS=$BDII | LDAP_ADDRESS=$BDII | ||
− | ADD_HOSTS= | + | ADD_HOSTS=1 |
</LDAP> | </LDAP> | ||
[...] | [...] | ||
− | La dernière section '''<NCG::RemoteMetrics>''' permet de spécifier les actions | + | La dernière section '''<NCG::RemoteMetrics>''' permet de spécifier les actions concernant SAM en utilisant les variables déclarés plus haut. |
<NCG::RemoteMetrics> | <NCG::RemoteMetrics> | ||
# Values of parameters will be taken from | # Values of parameters will be taken from | ||
Ligne 199: | Ligne 203: | ||
REMOVE_HOST!hostname_de_la_machine | REMOVE_HOST!hostname_de_la_machine | ||
* Supprimer un groupe de service sur une machine | * Supprimer un groupe de service sur une machine | ||
− | REMOVE_SERVICE! | + | REMOVE_SERVICE!hostname_de_la_machine!org.glite.LocalLogger |
− | D'autres exemples sont | + | D'autres exemples sont commenté dans '''/etc/ncg/ncg.localdb.example''' |
=== Génération de la configuration === | === Génération de la configuration === | ||
Ligne 209: | Ligne 213: | ||
NCG génère la configuration Nagios en plusieurs passe : | NCG génère la configuration Nagios en plusieurs passe : | ||
− | * Récupération des informations | + | * Récupération des informations déclarées dans la GOC-DB au travers de la SAM-PI. |
− | * Récupération des informations dans le Site BDII | + | * Récupération des informations dans le Site BDII. |
* Croisement des données générés. | * Croisement des données générés. | ||
* Génération de la configuration nagios dans '''/etc/nagios/wlcg.d''' | * Génération de la configuration nagios dans '''/etc/nagios/wlcg.d''' | ||
Ligne 229: | Ligne 233: | ||
wlcg.nagios.cfg | wlcg.nagios.cfg | ||
− | '''ATTENTION ! Ne pas modifier ces fichiers, il seront écrasés au prochain appel NCG''' | + | '''ATTENTION ! Ne pas modifier ces fichiers, il seront écrasés au prochain appel de NCG''' |
=== Modification de la configuration de Nagios === | === Modification de la configuration de Nagios === | ||
Ligne 251: | Ligne 255: | ||
service_check_timeout=900 | service_check_timeout=900 | ||
− | '''ATTENTION''' : Nagios ne supporte pas que des | + | '''ATTENTION''' : Nagios ne supporte pas que des objets soient dupliqués dans la configuration. |
− | Pour tester la configuration, faut exécuter la commande suivante: | + | Pour tester la configuration, il faut exécuter la commande suivante: |
# /usr/bin/nagios -v /etc/nagios/nagios.cfg | # /usr/bin/nagios -v /etc/nagios/nagios.cfg | ||
Ligne 261: | Ligne 265: | ||
Puis à se connecter sur l'interface Web '''http://srv_nagios/nagios/''' avec le login/mot de passe crée précédemment. | Puis à se connecter sur l'interface Web '''http://srv_nagios/nagios/''' avec le login/mot de passe crée précédemment. | ||
− | == | + | == Exemples de configuration == |
− | |||
− | |||
− | + | === Générer une configuration "Remote Only" pour un site donné === | |
+ | La configuration NCG "Remote Only" permet de générer une configuration de nagios affichant le résultat des tests SAM. | ||
− | + | * Renseigner les variables globales dans le fichier '''/etc/ncg/ncg.conf''' | |
− | * Renseigner les variables globales dans le fichier '''/etc/ncg/ncg. | ||
# Exemple | # Exemple | ||
SITENAME=MON-SITE | SITENAME=MON-SITE | ||
Ligne 289: | Ligne 291: | ||
# /etc/init.d/nagios restart | # /etc/init.d/nagios restart | ||
− | === Générer | + | === Générer une configuration utilisant les sondes grilles pour un site donné === |
La configuration NCG "remote,local,native" permet de générer une configuration de nagios affichant le résultat des tests SAM et effectuant des tests sur les services. | La configuration NCG "remote,local,native" permet de générer une configuration de nagios affichant le résultat des tests SAM et effectuant des tests sur les services. | ||
− | * Vérifier que le service de renouvellement de proxy est bien | + | * Vérifier que le service de renouvellement de proxy est bien actif. |
# /etc/init.d/nagios-proxy-refresh status | # /etc/init.d/nagios-proxy-refresh status | ||
Cron nagios-proxy-refresh is enabled. | Cron nagios-proxy-refresh is enabled. | ||
− | * Forcer le renouvellement d'un proxy | + | * Forcer le renouvellement d'un proxy. |
# /usr/sbin/nagios-proxy-refresh | # /usr/sbin/nagios-proxy-refresh | ||
MyProxy credential retrieved. VOMS credential retrieved. | MyProxy credential retrieved. VOMS credential retrieved. | ||
− | * Renseigner les variables globales dans le fichier '''/etc/ncg/ncg. | + | * Renseigner les variables globales dans le fichier '''/etc/ncg/ncg.conf''' |
# Exemple | # Exemple | ||
SITENAME=MON-SITE | SITENAME=MON-SITE | ||
Ligne 320: | Ligne 322: | ||
REMOVE_SERVICE!monce03.mondomaine.fr!org.glite.LocalLogger | REMOVE_SERVICE!monce03.mondomaine.fr!org.glite.LocalLogger | ||
REMOVE_SERVICE!monce04.mondomaine.fr!org.glite.LocalLogger | REMOVE_SERVICE!monce04.mondomaine.fr!org.glite.LocalLogger | ||
+ | |||
+ | * Suppression de sondes inutiles. La configuration générée inclue 2 services qui ne sont pas utilisé dans notre cas: | ||
+ | ** '''org.egee.SendToMsg''': Mécanisme de publication des résultats des sondes locale par ActiveMQ | ||
+ | ** '''hr.srce.GridProxy-Get''': Sonde ''obsolète'' permettant de rafraichir le proxy. | ||
+ | |||
+ | Ces deux services sont définis dans les '''templates''' de configuration. Pour les enlever, il faut '''commenter les entrées''' dans les fichiers : | ||
+ | '''/usr/share/grid-monitoring/config-gen/nagios/wlcg.nagios/gridproxy.template''' | ||
+ | # define service{ | ||
+ | # use ncg-generic-service | ||
+ | # host_name <NAGIOS_SERVER> | ||
+ | # service_description hr.srce.GridProxy-Get | ||
+ | ... | ||
+ | # } | ||
+ | |||
+ | # define servicedependency{ | ||
+ | # host_name <NAGIOS_SERVER> | ||
+ | # dependent_host_name <NAGIOS_SERVER> | ||
+ | # service_description hr.srce.GridProxy-Get | ||
+ | # dependent_service_description hr.srce.GridProxy-Valid | ||
+ | ... | ||
+ | # } | ||
+ | |||
+ | '''/usr/share/grid-monitoring/config-gen/nagios/wlcg.nagios/sendtomsg.template''' | ||
+ | #define service{ | ||
+ | # use ncg-generic-service | ||
+ | # host_name <NAGIOS_SERVER> | ||
+ | # service_description org.egee.SendToMsg | ||
+ | ... | ||
+ | #} | ||
* Générer la configuration | * Générer la configuration | ||
Ligne 326: | Ligne 357: | ||
* Redémarrer nagios | * Redémarrer nagios | ||
# /etc/init.d/nagios restart | # /etc/init.d/nagios restart | ||
+ | |||
+ | |||
+ | === Ajouter des services non décrit dans NCG dans la configuration nagios === | ||
+ | |||
+ | '''Rappel''' : Nagios ne supporte que des '''noms d'objets uniques'''. Si un objet appairait plus d'une fois, cela génère des erreurs qui empêchent le daemon de démarrer et affiche le message suivant. | ||
+ | Running configuration check... CONFIG ERROR! Restart aborted. Check your Nagios configuration. | ||
+ | |||
+ | Le test de validité de la configuration se fait par la commande : | ||
+ | # nagios -v /etc/nagios/nagios.cfg | ||
+ | [...] | ||
+ | Warning: Duplicate definition found for contact 'nagiosadmin' (config file '/etc/nagios/wlcg.d/wlcg.nagios.cfg', starting on line 49) | ||
+ | Error: Could not add object property in file '/etc/nagios/wlcg.d/wlcg.nagios.cfg' on line 50. | ||
+ | [...] | ||
+ | |||
+ | Toute la configuration de NCG est générée dans '''/etc/nagios/wlcg.d'''. NCG génère l'ensemble des objets utiles à nagios. La plupart des noms des objets manipulés ont été redéfinis sont préfixés par '''ncg-''' afin qu'il n'y ai pas de collisions dans le nom. Par exemple : | ||
+ | * ncg-host-notify-by-email | ||
+ | * ncg-check-tcp | ||
+ | * ncg-24x7 | ||
+ | * ... | ||
+ | |||
+ | Par défaut, le seul objet qui rentre en '''conflit''' est le '''contact 'nagiosadmin''''. Il faut donc le supprimer de la configuration Nagios par défaut. Le fichier est : | ||
+ | '''/etc/nagios/objects/contacts.cfg'''. | ||
+ | #define contact{ | ||
+ | # contact_name nagiosadmin ; Short name of user | ||
+ | # use generic-contact ; Inherit default values from generic-contact template (defined above) | ||
+ | # alias Nagios Admin ; Full name of user | ||
+ | # email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** | ||
+ | # } | ||
+ | |||
+ | |||
+ | Pour ajouter des tests spécifiques au site, la meilleur façon de procéder consiste à rajouter des sous répertoires à l'arborescence nagios. Par exemple : | ||
+ | /etc/nagios/local_template/ | ||
+ | /etc/nagios/contacts/ | ||
+ | |||
+ | /etc/nagios/storage_server/ | ||
+ | /etc/nagios/network_server/ | ||
+ | |||
+ | Puis créer les fichiers '''hosts.cfg''' et '''services.cfg''' à l'intérieur des répertoires de services. Il faut toutefois garder à l'esprit que le contact '''nagiosadmin''' et le groupe de contacts '''nagios-admins''' sont déjà définis par NCG. | ||
+ | |||
+ | Il est maintenant possible de rajouter les objets par défaut et les sous répertoires contenant les configurations locale dans '''/etc/nagios/nagios.cfg'''. | ||
+ | '''/etc/nagios/nagios.cfg''' | ||
+ | # objet par défauts | ||
+ | cfg_file=/etc/nagios/objects/commands.cfg | ||
+ | cfg_file=/etc/nagios/objects/contacts.cfg | ||
+ | cfg_file=/etc/nagios/objects/timeperiods.cfg | ||
+ | cfg_file=/etc/nagios/objects/templates.cfg | ||
+ | # repertoire specifique | ||
+ | /etc/nagios/local_template/ | ||
+ | /etc/nagios/contacts/ | ||
+ | /etc/nagios/storage_server/ | ||
+ | /etc/nagios/network_server/ | ||
+ | |||
+ | === Utiliser une authentification par certificat sur l'interface Web de Nagios === | ||
+ | |||
+ | Voir la section '''"Configure the nagios Web Interface"''' sur la page suivante: | ||
+ | https://twiki.cern.ch/twiki/bin/view/LCG/GridMonitoringNcg | ||
+ | |||
+ | = Documentations et liens utiles = | ||
+ | |||
+ | * Tutorial sur nagios et NCG : | ||
+ | https://twiki.cern.ch/twiki/bin/view/EGEE/GridMonitoringNcgYaimTutorial | ||
+ | |||
+ | * Présentation de Nagios et tutorial NCG à EGEE'08 | ||
+ | http://indico.cern.ch/contributionDisplay.py?contribId=239&sessionId=54&confId=32220 | ||
+ | http://indico.cern.ch/sessionDisplay.py?sessionId=54&slotId=0&confId=32220#2008-09-24 | ||
+ | |||
+ | * Guide d'installation de Nagios NCG avec YAIM | ||
+ | https://twiki.cern.ch/twiki/bin/view/EGEE/GridMonitoringNcgYaim | ||
+ | * Guide d'installation de Nagios NCG sans Yaim | ||
+ | https://twiki.cern.ch/twiki/bin/view/LCG/GridServiceMonitoringInfo | ||
+ | * Description du fonctionnement de NCG | ||
+ | https://twiki.cern.ch/twiki/bin/view/EGEE/GridMonitoringNcgOverview | ||
+ | * Astuces de configuration pour NCG | ||
+ | https://twiki.cern.ch/twiki/bin/view/EGEE/GridMonitoringNcgRecipes | ||
+ | |||
+ | * Page de l'OAT | ||
+ | https://twiki.cern.ch/twiki/bin/view/EGEE/OAT_EGEE_III | ||
+ | * Page de WLCG Monitoring Wokring Group | ||
+ | https://twiki.cern.ch/twiki/bin/view/LCG/GridServiceMonitoringInfo |
Latest revision as of 13:50, 23 janvier 2009
Sommaire
- 1 Installer Nagios NCG sans YAIM
- 1.1 Prérequis
- 1.2 Installation de la machine
- 1.3 Configuration des services
- 1.4 Exemples de configuration
- 1.4.1 Générer une configuration "Remote Only" pour un site donné
- 1.4.2 Générer une configuration utilisant les sondes grilles pour un site donné
- 1.4.3 Ajouter des services non décrit dans NCG dans la configuration nagios
- 1.4.4 Utiliser une authentification par certificat sur l'interface Web de Nagios
- 2 Documentations et liens utiles
Installer Nagios NCG sans YAIM
L'installation et la configuration des packages NCG avec Yaim présentent des inconvénients majeurs. La distribution Nagios+NCG est actuellement testée par l'OAT comme un composant d'un système de monitoring régional distribué. Cette distribution évolue assez rapidement et intègre régulièrement de nouveaux composants qui ne sont pas utiles, et peuvent même être génant pour un système de monitoring de site. Par exemple:
- L'accès à la page de status de nagios pour n'importe quelle personnes appartenant aux VOs ops ou dteam
- L'envoi des résultat d'éxécution des sondes par Active MQ "quelque part"
- Le stockage des informations dans une base de donnée mysql (NDOTools)
- (ce qui vous agasse dans yaim) ...
Prérequis
NCG nécessite d'avoir accès à la SAM Programatic Interface (SAM-PI) afin de pouvoir générer la configuration et surtout récupérer les résultats des tests SAM. Pour obtenir un accès, il faut créer un ticket GGUS avec comme sujet:
SAM-PI Access request as profile "EGEE-SA1 Monitoring Profile"
Dans le message du ticket, il faut spécifier l'IP et/ou le Hostname de la machine qui accédera à la base SAM.
Installation de la machine
Configuration matérielle
- 256 Mo de RAM
- 5 Go de disque
- SL 4.5 i386/x86_64
- Installation minimale du système
Configurer les repository
Ajouter les repository suivant dans /etc/yum.repos.d/
- LCG-CA
- DAG
- jpackage (pour glite-UI)
- glite-UI
# cd /etc/yum.repos.d/ # wget http://grid-deployment.web.cern.ch/grid-deployment/glite/repos/[nom du repository].repo
- egee-SA1
# wget http://www.sysadmin.hep.ac.uk/rpms/egee-SA1/sl4/egee-SA1.repo
Installation les packages nécessaire
- installer la couche UI
# yum install LCG-CA # yum install glite-UI # yum install gcc-c++
- Configuration de la couche 'UI' de la machine
Modifier le site-info.def afin configurer une UI.
BDII_HOST=cclcgtopbdii01.in2p3.fr VOS="ops dteam" PX_HOST=myproxy.grif.fr GLOBUS_TCP_PORT_RANGE=20000,250000
- Configuration avec YAIM
# /opt/glite/yaim/bin/yaim -c -s site-info.def -n glite-UI
- Installation de Nagios:
# yum install nagios nagios-plugins httpd
- Installation des sondes et de NCG
# yum install nagios-proxy-refresh grid-monitoring-probes-hr.srce grid-monitoring-probes-ch.cern grid-monitoring-probes-org.bdii # yum install grid-monitoring-config-gen grid-monitoring-fm-nagios-local grid-monitoring-fm-nagios-remote
Configuration des services
Rafraîchissement de proxy
Ce mécanisme n'est utilisé qu'en cas d'utilisation des sondes "local" nécessitant un proxy.
Il faut au préalable déposer un proxy longue durée sur le serveur MyProxy. Attention le serveur MyProxy que vous allez utiliser doit explicitement autoriser le DN du certificat machine à récupérer des proxy (Variable TRUSTED_RETREIVERE).
Depuis un machine interactive, lancer la commande suivante :
$ export GT_PROXY_MODE=old $ 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"
Cette commande permet de générer un proxy valide 14 jours.
- Le login ( -l) : nagios
- Le "Credential" (-k) : NagiosRetrieve-"hostname de nagios + domaine"-"VO"
- Le DN de la machine autorisé de récupéré le proxy (-Z) : le DN du certificat machine du serveur nagios.
Il est possible d'autoriser plusieurs machine à récupérer ce proxy, le paramètre -Z autorise les expressions rationnelles (regexp):
-Z "/O=GRID-FR/C=FR/O=CNRS/OU=CC-LYON/CN=ccegeevmli[0-3][0-9].in2p3.fr"
Le fichier de configuration du service est: /etc/nagios-proxy-refresh.conf
MYPROXY_HOST=myproxy.grif.fr NAGIOS_VO=dteam MYPROXY_USER=nagios LOCALUSER=nagios MYPROXY_NAME=NagiosRetrieve-`hostname -f`-${NAGIOS_VO} OUTPUT_PROXY=/etc/nagios/globus/userproxy.pem
- Démarrage du service de renouvellement de proxy
# /etc/init.d/nagios-proxy-refresh start
Configuration de HTTPd
Rappel: Les utilisateurs autorisés à se connecter à l'interface Web nagios sont définit dans le fichier /etc/nagios/cgi.cfg. L'authentification de l'utilisateur est faite par apache. L'utilisateur par défaut est nagiosadmin.
- Création du mot de passe de l'utilisateur 'nagiosadmin' autorisé à se connecter à la console de Nagios.
# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin New password: Re-type new password: Adding password for user nagiosadmin
- Ajouter l'utilisateur apache au groupe nagios afin que le serveur web puisse envoyer dans commandes à nagios via un FIFO
# usermod -G nagiocmd apache # usermod -G nagios apache
- Démarrer le service
# /etc/init.d/httpd start
Configuration de NCG
Le fichier de configuration principal de NCG est /etc/ncg/ncg.conf. Il inclut le fichier /etc/ncg/ncg.localdb permettant de personnaliser la configuration générée.
Le fichier principal est découpé en sections. Le début du fichier permet de renseigner des variables 'globales' utilisées dans la suite du fichier.
Les variables à renseigner en entête de fichier sont :
- SITENAME : Le nom du site grille pour lequel générer la configuration.
- MYPROXY_SERVER : Serveur myproxy utilisé pour stocker le proxy longue durée.
- BDII : hostname du sitebdii du site à superviser.
- MAIN_DB_FILE=/etc/ncg/ncg.localdb : fichier contenant les définitions locales de la configuration.
# Exemple SITENAME=IN2P3-CC MYPROXY_SERVER=myproxy.grif.fr BDII=cclcgip01.in2p3.fr SAM_VOS=OPS MAIN_DB_FILE=/etc/ncg/ncg.localdb
Le fichier est en suite découpé en sections correspondant aux modules perl utilisés pour générer la configuration
Dans la section <NCG::ConfigGen> il faut renseigner les valeurs :
<NCG::ConfigGen> <Nagios> MYPROXY_SERVER=${MYPROXY_SERVER} # utilise la variable déclaré précédement) PROBES_TYPE=local,remote,native # type de configuration nagios à générer # Emplacement des répertoires à utiliser, ne pas modifier pour une install SL4 TEMPLATES_DIR = /usr/share/grid-monitoring/config-gen/nagios OUTPUT_DIR = /etc/nagios/wlcg.d NRPE_OUTPUT_DIR = /etc/nagios/nrpe/ RESOURCES_OUTPUT_DIR = /etc/nagios # Adresse email par défaut de l'administrateur nagios NAGIOS_ADMIN=admin@mondomaine.fr # Nom du "Credential" utilisé pour récupérer un proxy depuis le serveur myproxy # Il faut utiliser la même valeur que celle définie dans /etc/nagios-proxy-refresh.conf MYPROXY_NAME=NagiosRetrieve-ccegeevmli08.in2p3.fr-dteam # nom de l'utilisateur utilisé pour récupérer un proxy depuis le serveur myproxy # Il faut utiliser la même valeur que celle définie dans /etc/nagios-proxy-refresh.conf MYPROXY_USER=nagios # Récupère les tests SAM non critique ? SAM_INCLUDE_ALL=0 # Liste des VOs pour lesquels récupérer les tests SAM SAM_VOS=OPS # nom de la VO utilisée pour passer les tests locaux: VO=dteam </Nagios> </NCG::ConfigGen>
Attention : la syntaxe des noms des VOs utilisée par la variable SAM_VOS n'est pas la même que celle définie dans le CIC portal. De plus il faut respecter la casse. Pour récupérer la liste des VOs déclarées dans la base de SAM, il suffit de lancer depuis le serveur nagios la commande :
$ wget -q -O - http://lcg-sam.cern.ch:8080/same-pi/vo_names.jsp | xmllint --format -
Dans la section <NCG::SiteInfo> on peut spécifier des informations complémentaires
- Ajouter les noeuds présents dans le BDII mais non déclaré dans la GOCDB:
# NCG modules for gathering site information <NCG::SiteInfo> [...] <LDAP> LDAP_ADDRESS=$BDII ADD_HOSTS=1 </LDAP> [...]
La dernière section <NCG::RemoteMetrics> permet de spécifier les actions concernant SAM en utilisant les variables déclarés plus haut.
<NCG::RemoteMetrics> # Values of parameters will be taken from # configuration of NCG::ConfigGen::Nagios <SAM> SAM_INCLUDE_ALL=$SAM_INCLUDE_ALL SAM_VOS=$SAM_VOS </SAM> <NPM/> </NCG::RemoteMetrics>
Le fichier /etc/ncg/ncg.localdb permet de personnaliser la configuration générée :
- Ajouter un contact supplémentaire
ADD_CONTACT!un_admin@mondomaine.fr
- Supprimer un contact
Par défaut NCG prend le contact du site déclaré dans le BDII. La directive pour supprimer un contact est:
REMOVE_CONTACT!grid.admin@cc.in2p3.fr
- Supprimer un 'host' :
REMOVE_HOST!hostname_de_la_machine
- Supprimer un groupe de service sur une machine
REMOVE_SERVICE!hostname_de_la_machine!org.glite.LocalLogger
D'autres exemples sont commenté dans /etc/ncg/ncg.localdb.example
Génération de la configuration
Pour générer la configuration, il suffit de lancer la commande :
# /usr/sbin/ncg.pl
NCG génère la configuration Nagios en plusieurs passe :
- Récupération des informations déclarées dans la GOC-DB au travers de la SAM-PI.
- Récupération des informations dans le Site BDII.
- Croisement des données générés.
- Génération de la configuration nagios dans /etc/nagios/wlcg.d
NCG se base sur des templates pour générer la configuration. Ces templates sont dans le répertoire /usr/share/grid-monitoring/config-gen/nagios/
Après génération de la configuation le répetoire /etc/nagios/wlcg.d contient les fichiers suivants :
commands.cfg contacts.cfg host.groups.cfg hosts.cfg host.templates.cfg service.groups.cfg services.cfg service.templates.cfg users.cfg wlcg.nagios.cfg
ATTENTION ! Ne pas modifier ces fichiers, il seront écrasés au prochain appel de NCG
Modification de la configuration de Nagios
Il faut modifier la configuration de Nagios pour inclure ces ficheirs de configuration. Le fichier de configuration est : /etc/nagios/nagios.cfg
- Commenter la configuration par défaut:
#cfg_file=/etc/nagios/objects/localhost.cfg #cfg_file=/etc/nagios/objects/commands.cfg #cfg_file=/etc/nagios/objects/contacts.cfg #cfg_file=/etc/nagios/objects/timeperiods.cfg #cfg_file=/etc/nagios/objects/templates.cfg
- Ajout du répertoire de la configuration NCG:
cfg_dir=/etc/nagios/wlcg.d
- Modifier les paramètres comme suit :
check_external_commands=1
- Pour un système de production, modifier le paramètre suivant. Cela éviter de générer des fichiers de logs inutiles lorsque Nagios importe les résultats des tests SAM.
log_passive_checks=1
- En cas d'utilisation des sondes "local" ou "native", ajouter le fichier de ressource et modifier valeur de timeout des tests de services
resource_file=/etc/nagios/wlcg_resource.cfg service_check_timeout=900
ATTENTION : Nagios ne supporte pas que des objets soient dupliqués dans la configuration. Pour tester la configuration, il faut exécuter la commande suivante:
# /usr/bin/nagios -v /etc/nagios/nagios.cfg
Si il n'y a pas d'erreur, il ne reste qu'à démarrer nagios.
# /etc/init.d/nagios start
Puis à se connecter sur l'interface Web http://srv_nagios/nagios/ avec le login/mot de passe crée précédemment.
Exemples de configuration
Générer une configuration "Remote Only" pour un site donné
La configuration NCG "Remote Only" permet de générer une configuration de nagios affichant le résultat des tests SAM.
- Renseigner les variables globales dans le fichier /etc/ncg/ncg.conf
# Exemple SITENAME=MON-SITE MYPROXY_SERVER=myproxy.grif.fr BDII=monbdii.mondaine.fr SAM_VOS=OPS MAIN_DB_FILE=/etc/ncg/ncg.localdb [...] <NCG::ConfigGen> <Nagios> [...] PROBES_TYPE=remote [...]
- Générer la configuration
# /usr/bin/ncg.pl -v
- Redémarrer nagios
# /etc/init.d/nagios restart
Générer une configuration utilisant les sondes grilles pour un site donné
La configuration NCG "remote,local,native" permet de générer une configuration de nagios affichant le résultat des tests SAM et effectuant des tests sur les services.
- Vérifier que le service de renouvellement de proxy est bien actif.
# /etc/init.d/nagios-proxy-refresh status Cron nagios-proxy-refresh is enabled.
- Forcer le renouvellement d'un proxy.
# /usr/sbin/nagios-proxy-refresh MyProxy credential retrieved. VOMS credential retrieved.
- Renseigner les variables globales dans le fichier /etc/ncg/ncg.conf
# Exemple SITENAME=MON-SITE MYPROXY_SERVER=myproxy.grif.fr BDII=monbdii.mondaine.fr SAM_VOS=OPS MAIN_DB_FILE=/etc/ncg/ncg.localdb [...] <NCG::ConfigGen> <Nagios> [...] PROBES_TYPE=remote,local,native MYPROXY_NAME=NagiosRetrieve-ccegeevmli08.in2p3.fr-dteam [...]
- La configuration par défaut test un service org.glite.LocalLogger qui est en général inaccessible. Pour le supprimer de la configuration, il faut rajouter les lignes suivantes au fichier /etc/ncg/ncg.localdb
REMOVE_SERVICE!monce01.mondomaine.fr!org.glite.LocalLogger REMOVE_SERVICE!monce02.mondomaine.fr!org.glite.LocalLogger REMOVE_SERVICE!monce03.mondomaine.fr!org.glite.LocalLogger REMOVE_SERVICE!monce04.mondomaine.fr!org.glite.LocalLogger
- Suppression de sondes inutiles. La configuration générée inclue 2 services qui ne sont pas utilisé dans notre cas:
- org.egee.SendToMsg: Mécanisme de publication des résultats des sondes locale par ActiveMQ
- hr.srce.GridProxy-Get: Sonde obsolète permettant de rafraichir le proxy.
Ces deux services sont définis dans les templates de configuration. Pour les enlever, il faut commenter les entrées dans les fichiers :
/usr/share/grid-monitoring/config-gen/nagios/wlcg.nagios/gridproxy.template # define service{ # use ncg-generic-service # host_name <NAGIOS_SERVER> # service_description hr.srce.GridProxy-Get ... # } # define servicedependency{ # host_name <NAGIOS_SERVER> # dependent_host_name <NAGIOS_SERVER> # service_description hr.srce.GridProxy-Get # dependent_service_description hr.srce.GridProxy-Valid ... # }
/usr/share/grid-monitoring/config-gen/nagios/wlcg.nagios/sendtomsg.template #define service{ # use ncg-generic-service # host_name <NAGIOS_SERVER> # service_description org.egee.SendToMsg ... #}
- Générer la configuration
# /usr/bin/ncg.pl -v
- Redémarrer nagios
# /etc/init.d/nagios restart
Ajouter des services non décrit dans NCG dans la configuration nagios
Rappel : Nagios ne supporte que des noms d'objets uniques. Si un objet appairait plus d'une fois, cela génère des erreurs qui empêchent le daemon de démarrer et affiche le message suivant.
Running configuration check... CONFIG ERROR! Restart aborted. Check your Nagios configuration.
Le test de validité de la configuration se fait par la commande :
# nagios -v /etc/nagios/nagios.cfg [...] Warning: Duplicate definition found for contact 'nagiosadmin' (config file '/etc/nagios/wlcg.d/wlcg.nagios.cfg', starting on line 49) Error: Could not add object property in file '/etc/nagios/wlcg.d/wlcg.nagios.cfg' on line 50. [...]
Toute la configuration de NCG est générée dans /etc/nagios/wlcg.d. NCG génère l'ensemble des objets utiles à nagios. La plupart des noms des objets manipulés ont été redéfinis sont préfixés par ncg- afin qu'il n'y ai pas de collisions dans le nom. Par exemple :
- ncg-host-notify-by-email
- ncg-check-tcp
- ncg-24x7
- ...
Par défaut, le seul objet qui rentre en conflit est le contact 'nagiosadmin'. Il faut donc le supprimer de la configuration Nagios par défaut. Le fichier est :
/etc/nagios/objects/contacts.cfg. #define contact{ # contact_name nagiosadmin ; Short name of user # use generic-contact ; Inherit default values from generic-contact template (defined above) # alias Nagios Admin ; Full name of user # email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** # }
Pour ajouter des tests spécifiques au site, la meilleur façon de procéder consiste à rajouter des sous répertoires à l'arborescence nagios. Par exemple :
/etc/nagios/local_template/ /etc/nagios/contacts/
/etc/nagios/storage_server/ /etc/nagios/network_server/
Puis créer les fichiers hosts.cfg et services.cfg à l'intérieur des répertoires de services. Il faut toutefois garder à l'esprit que le contact nagiosadmin et le groupe de contacts nagios-admins sont déjà définis par NCG.
Il est maintenant possible de rajouter les objets par défaut et les sous répertoires contenant les configurations locale dans /etc/nagios/nagios.cfg.
/etc/nagios/nagios.cfg # objet par défauts cfg_file=/etc/nagios/objects/commands.cfg cfg_file=/etc/nagios/objects/contacts.cfg cfg_file=/etc/nagios/objects/timeperiods.cfg cfg_file=/etc/nagios/objects/templates.cfg # repertoire specifique /etc/nagios/local_template/ /etc/nagios/contacts/ /etc/nagios/storage_server/ /etc/nagios/network_server/
Utiliser une authentification par certificat sur l'interface Web de Nagios
Voir la section "Configure the nagios Web Interface" sur la page suivante: https://twiki.cern.ch/twiki/bin/view/LCG/GridMonitoringNcg
Documentations et liens utiles
- Tutorial sur nagios et NCG :
https://twiki.cern.ch/twiki/bin/view/EGEE/GridMonitoringNcgYaimTutorial
- Présentation de Nagios et tutorial NCG à EGEE'08
http://indico.cern.ch/contributionDisplay.py?contribId=239&sessionId=54&confId=32220 http://indico.cern.ch/sessionDisplay.py?sessionId=54&slotId=0&confId=32220#2008-09-24
- Guide d'installation de Nagios NCG avec YAIM
https://twiki.cern.ch/twiki/bin/view/EGEE/GridMonitoringNcgYaim
- Guide d'installation de Nagios NCG sans Yaim
https://twiki.cern.ch/twiki/bin/view/LCG/GridServiceMonitoringInfo
- Description du fonctionnement de NCG
https://twiki.cern.ch/twiki/bin/view/EGEE/GridMonitoringNcgOverview
- Astuces de configuration pour NCG
https://twiki.cern.ch/twiki/bin/view/EGEE/GridMonitoringNcgRecipes
- Page de l'OAT
https://twiki.cern.ch/twiki/bin/view/EGEE/OAT_EGEE_III
- Page de WLCG Monitoring Wokring Group
https://twiki.cern.ch/twiki/bin/view/LCG/GridServiceMonitoringInfo