Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

vigiboard / doc / admin.rst @ ed05a970

History | View | Annotate | Download (27.3 KB)

1
**********************
2
Guide d'administration
3
**********************
4

    
5

    
6
Installation
7
============
8

    
9
Pré-requis logiciels
10
--------------------
11
Afin de pouvoir faire fonctionner VigiBoard, l'installation préalable des
12
logiciels suivants est requise :
13

    
14
* python (>= 2.5), sur la machine où VigiBoard est installé
15
* Apache (>= 2.2.0), sur la machine où VigiBoard est installé
16
* mod_wsgi (>= 2.3), sur la machine où VigiBoard est installé
17
* PostgreSQL (>= 8.3), éventuellement sur une machine distante
18

    
19

    
20
.. Installation du RPM
21
.. include:: ../buildenv/doc/package.rst
22

    
23

    
24
Démarrage et arrêt
25
==================
26

    
27
VigiBoard fonctionne comme un site Web standard. À ce titre, il n'est pas
28
nécessaire d'exécuter une commande spécifique pour démarrer VigiBoard, dès lors
29
que le serveur Web qui l'héberge a été lancé, à l'aide de la commande::
30

    
31
    service httpd start
32

    
33
De la même manière, il n'y a pas de commande spécifique pour arrêter VigiBoard.
34
L'application est arrêtée en même temps que le serveur Web, à l'aide de la
35
commande::
36

    
37
    service httpd stop
38

    
39

    
40

    
41
Configuration
42
=============
43

    
44
La configuration initialement fournie avec VigiBoard est très rudimentaire.
45
Elle est décomposée en deux fichiers :
46

    
47
- le fichier ``settings.ini`` d'une part, qui contient la majorité des options
48
  de configuration ;
49
- et le fichier ``app_cfg.py`` qui contient des options de configuration plus
50
  complexes, nécessitant l'utilisation d'un langage plus complet (Python).
51

    
52
Ce chapitre a pour but de présenter les différentes options de configuration
53
disponibles afin de configurer VigiBoard en fonction de vos besoins. Les
54
chapitres :ref:`confbdd` à :ref:`confproxy` reprennent l'ordre de la
55
configuration utilisé dans le fichier ``settings.ini`` de l'application. Toutes
56
les options de configuration citées ici se trouvent sous la section
57
``[app:main]`` du fichier ``settings.ini``.
58

    
59
Le chapitre :ref:`confappcfg` quant à lui décrit certaines options de
60
configuration fournies par le fichier ``app_cfg.py``.
61

    
62
Enfin, le chapitre :ref:`confmodwsgi` donne des informations quant à la méthode
63
utilisée pour intégrer VigiBoard sur un serveur Web de type Apache, grâce au
64
module mod_wsgi.
65

    
66
La configuration de la journalisation des événements se fait également au
67
travers du fichier ``settings.ini``. Néanmoins, comme ce procédé se fait de la
68
même manière dans les différents composants de Vigilo, celui-ci fait l'objet
69
d'une documentation séparée dans le document *Vigilo - Journaux d'événements*.
70

    
71
.. _confbdd:
72

    
73
Base de données
74
---------------
75

    
76
Pour fonctionner, VigiBoard nécessite qu'une base de données soit accessible.
77
Ce chapitre décrit les options de configuration se rapportant à la base de
78
données.
79

    
80
Connexion
81
^^^^^^^^^
82
La configuration de la connexion à la base de base de données se fait en
83
modifiant la valeur de la clé ``sqlalchemy.url`` sous la section
84
``[app:main]``.
85

    
86
Cette clé contient une URL qui contient tous les paramètres nécessaires pour
87
pouvoir se connecter à la base de données. Le format de cette URL est le
88
suivant::
89

    
90
    sgbd://utilisateur:mot_de_passe@serveur:port/base_de_donnees
91

    
92
Le champ ``:port`` est optionnel et peut être omis si vous utilisez le port
93
par défaut d'installation du SGBD choisi.
94

    
95
Par exemple, voici la valeur correspondant à une installation mono-poste par
96
défaut de VigiBoard::
97

    
98
    postgres://vigilo:vigilo@localhost/vigilo
99

    
100
**ATTENTION** : à l'heure actuelle, seul PostgreSQL a fait l'objet de tests
101
intensifs. D'autres SGBD peuvent également fonctionner, mais aucun support ne
102
sera fourni pour ces SGBD.
103

    
104
Choix d'un préfixe pour les tables
105
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
106
Vous pouvez choisir un préfixe qui sera appliqué aux noms des tables de la base
107
de données en indiquant ce préfixe dans la clé ``db_basename`` sous la section
108
``[app:main]``. Par défaut, la configuration suppose que les tables de Vigilo
109
porteront le préfixe ``vigilo_``.
110

    
111
Si vous optez pour l'utilisation d'un préfixe, veillez à ce que celui-ci ne
112
contiennent que des caractères alpha-numériques (a-zA-Z0-9) ou le caractère
113
``_``.
114

    
115
Si vous décidez de ne pas utiliser de préfixe, veillez à ce que la base de
116
données configurée ne doit utilisée que par Vigilo, au risque d'un conflit avec
117
une éventuelle application tierce.
118

    
119
Optimisation de la couche d'abstraction
120
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
121
L'option ``sqlalchemy.echo`` permet de forcer l'affichage des requêtes SQL. En
122
production, cette valeur doit être positionnée à ``False``. Elle est redondante
123
avec la configuration des journaux d'événements (voir le document intitulé
124
Vigilo - Journaux d'événements pour plus d'information).
125

    
126
L'option ``sqlalchemy.echo_pool`` permet d'activer le mode de débogage du
127
gestionnaire de connexions à la base de données. De même que pour l'option
128
``sqlalchemy.echo`` ci-dessus, elle doit être positionnée à ``False`` en
129
production.
130

    
131
L'option ``sqlalchemy.pool_recycle`` permet de définir la durée après laquelle
132
une connexion est « recyclée » (recréée).
133

    
134
L'option ``sqlalchemy.pool_size`` permet de configurer le nombre de connexions
135
gérées simultanément par le gestionnaire de connexions à la base de données. La
136
valeur recommandée est 20.
137

    
138
L'option ``sqlalchemy.max_overflow`` permet de limiter le nombre maximales de
139
connexions simultanées à la base de données. La limite correspond à la somme de
140
``sqlalchemy.pool_size`` et ``sqlalchemy.max_overflow``. Une valeur de 100
141
convient généralement.
142

    
143
La documentation d'API de SQLAlchemy (la bibliothèque d'abstraction de la base
144
de données utilisée par Vigilo) donne quelques informations supplémentaires sur
145
le rôle de ces différents paramètres. Cette documentation est accessible `sur
146
le site du projet
147
<http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/pooling.html>`_.
148

    
149
Éléments de sécurité
150
--------------------
151

    
152
Ce chapitre décrit les options relatives à la gestion des données de sécurité
153
(clés de chiffrements, etc.) utilisées par VigiBoard.
154

    
155
Choix de la méthode de hachage des mots de passe
156
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
157
Lorsque l'authentification de Vigilo se base sur les comptes contenus dans la
158
base de données, les mots de passe des utilisateurs sont stockés sous forme
159
hachée afin de rendre plus difficile le cassage de ces mots de passe.
160

    
161
La méthode de hachage sélectionnée peut être configurée en modifiant la valeur
162
de la clé ``password_hashing_function`` sous la section ``[app:main]``. Les
163
méthodes de hachage disponibles sont variées. Les fonctions de hachage
164
suivantes sont notamment disponibles : md5, sha1, sha224, sha256, sha384 et
165
sha512. D'autres fonctions peuvent être disponibles en fonction de votre
166
installation de Python.
167

    
168
**Attention :** en cas d'absence d'une valeur pour cette option ou si la
169
fonction de hachage indiquée n'existe pas, les mots de passe sont stockés en
170
clair. Vérifiez donc la valeur indiquée.
171

    
172
**Attention :** cette option ne doit être modifiée qu'au moment de
173
l'installation. Si vous modifiez la méthode utilisée ultérieurement, les
174
comptes précédemment enregistrés ne seront plus utilisables. En particulier, le
175
compte d'administration créé par défaut.
176

    
177
Clé de chiffrement / déchiffrement des sessions
178
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
179
Afin de ne pas dévoiler certains paramètres associés à un utilisateur, le
180
fichier de session qui contient ces paramètres est chiffré à l'aide d'une clé
181
symétrique, utilisée à la fois pour le chiffrement et le déchiffrement des
182
sessions de tous les utilisateurs de VigiBoard.
183

    
184
L'option ``beaker.session.secret`` permet de choisir la clé utilisée pour
185
chiffrer et déchiffrer le contenu des sessions. Cette clé peut être la même que
186
celle configurée pour le chiffrement / déchiffrement des cookies (voir le
187
chapitre suivant), mais ceci est déconseillé afin d'éviter que la compromission
188
de l'une des deux clés n'entraine la compromission de l'autre.
189

    
190
De la même manière, vous pouvez configurer les autres interfaces graphiques de
191
Vigilo pour utiliser les mêmes clés, ou opter de préférence pour des clés
192
différentes (là encore, pour éviter la propagation d'une compromission).
193

    
194
Clé de chiffrement / déchiffrement des cookies
195
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
196
L'association entre un utilisateur et sa session se fait à l'aide d'un cookie
197
de session enregistré sur le navigateur de l'utilisateur. De la même manière
198
que les sessions sont chiffrés afin de garantir la confidentialité de leur
199
contenu, le cookie de session est également chiffré afin de protéger son
200
contenu.
201

    
202
L'option ``sa_auth.cookie_secret`` permet de choisir la clé utilisée pour
203
chiffrer et déchiffrer le contenu du cookie. Cette clé peut être la même que
204
celle configurée pour le chiffrement / déchiffrement des sessions (voir le
205
chapitre ), mais ceci est déconseillé afin d'éviter que la compromission de
206
l'une des deux clés n'entraine la compromission de l'autre.
207

    
208
De la même manière, vous pouvez configurer les autres interfaces graphiques de
209
Vigilo pour utiliser les mêmes clés, ou opter de préférence pour des clés
210
différentes (là encore, pour éviter la propagation d'une compromission).
211

    
212

    
213
Emplacement de la configuration d'authentification/autorisation
214
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
215
La directive ``auth.config`` de la section ``[app:main]`` permet d'indiquer
216
l'emplacement du fichier contenant la configuration de la couche
217
d'authentification/autorisation de Vigilo.
218

    
219
Il n'est généralement pas nécessaire de modifier cette valeur. La configuration
220
de cette couche d'abstraction est détaillée dans le document *Vigilo -
221
Authentification et autorisation*.
222

    
223
Configuration de l'interface
224
----------------------------
225

    
226
Ce chapitre décrit les options qui modifient l'apparence de l'interface
227
graphique de VigiBoard.
228

    
229
Langue par défaut de VigiBoard
230
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
231
Au sein de son interface, VigiBoard tente de s'adapter au navigateur de
232
l'utilisateur pour afficher les pages dans sa langue. Toutefois, si
233
l'utilisateur n'a pas paramétré sa langue ou bien si aucune traduction n'est
234
disponible qui soit en accord avec les paramètres du navigateur de
235
l'utilisateur, une langue par défaut est utilisée (dans l'installation par
236
défaut de VigiBoard, cette langue est le Français ``fr``).
237

    
238
Vous pouvez modifier la langue utilisée par défaut en changeant la valeur de la
239
clé ``lang`` sous la section ``[app:main]``. La valeur de cette clé est le code
240
de la langue à utiliser, sur deux caractères et en minuscules (format ISO
241
3166-1 ``alpha 2``). Exemples de codes valides : fr, en, de, ...
242

    
243
La liste complète des codes possibles est disponible sur
244
http://fr.wikipedia.org/wiki/ISO_3166-1. La langue retenue doit être disponible
245
parmi les traductions fournies avec VigiBoard.
246

    
247
Emplacement de la documentation en ligne
248
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
249
Il est possible d'ajouter un lien dans l'interface graphique qui redirige
250
l'utilisateur vers la documentation en ligne de l'application. Ceci se fait en
251
assignant une URL à l'option ``help_link``.
252

    
253
Si cette option est renseignée, une icône en forme de bouée de sauvetage
254
|imghelp| apparaît dans l'interface graphique qui permet à l'utilisateur
255
d'accéder à l'URL indiquée.
256

    
257
.. |imghelp| image:: help.png
258

    
259
Délai de rafraîchissement automatique
260
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
261
Le bac à événements de VigiBoard peut être actualisé automatiquement à
262
intervalle régulier afin de donner une vue à jour de l'état du parc aux
263
veilleurs. L'option ``refresh_delay`` permet de choisir le délai, en secondes,
264
entre deux rafraîchissements automatiques de la page.
265

    
266
NOTE : Les veilleurs ont la possibilité de désactiver le rafraîchissement
267
automatique durant leur session. Dans tous les cas, si une boîte de dialogue de
268
VigiBoard est affichée à l'écran, le rafraîchissement automatique est mis en
269
pause afin de ne pas perturber les opérations en cours.
270

    
271
État initial du rafraîchissement automatique
272
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
273
Vous avez la possibilité d'activer par défaut le rafraîchissement automatique
274
du bac à événements pour les veilleurs, en positionnant l'option
275
``refresh_enabled`` à ``True``.
276

    
277
NOTE : Les veilleurs ont la possibilité de désactiver le rafraîchissement
278
automatique durant leur session. Leur choix (rafraîchissement automatique actif
279
ou non) est conservé en session durant un certain temps.
280

    
281
Configuration du nombre d'événements affichés par page
282
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
283
Le nombre d'événements affichés par page peut être configuré en changeant la
284
valeur de la clé ``vigiboard_items_per_page`` sous la section ``[app:main]``.
285

    
286
Configuration du lien d'accueil
287
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
288
Vous avez la possibilité de rediriger l'utilisateur vers une page de votre
289
choix lorsque celui-ci clique sur le logo de Vigilo |imghome| dans l'interface
290
graphique de VigiBoard. Ceci se fait en modifiant l'URL donnée par l'option
291
``logo_link``.
292

    
293
.. |imghome| image:: home.png
294

    
295
Ordre de tri de la priorité des événements
296
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
297
VigiBoard prend en compte la priorité des événements pour les triers dans son
298
interface graphique. Néanmoins, chaque système à sa propre définition de la
299
priorité d'un événement. Généralement, plus la priorité d'un événement est
300
élevée, plus cet événement doit être traité en premier. Cependant il se peut
301
que cet ordre de tri soit inversé sur votre parc (c'est-à-dire qu'un événement
302
très prioritaire est représenté par une priorité dont la valeur est très
303
basse).
304

    
305
L'ordre de tri de la priorité est défini grâce à la clé de configuration
306
``vigiboard_priority_order``, sous la section ``[app:main]``. Cette clé accepte
307
deux valeurs : ``asc`` (nombre peu élevé = priorité importante) ou ``desc``
308
(nombre élevé = priorité importante).
309

    
310
Choix du critère de tri prioritaire
311
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
312
En fonction de votre parc informatique, il peut être intéressant de trier les
313
événements reçus dans le bac à événements par état Nagios puis par horodatage,
314
ou bien l'inverse.
315

    
316
L'option ``state_first`` est un booléen qui permet de choisir si le tri se fait
317
d'abord par l'état (``True``), ou d'abord par l'horodatage (``False``).
318

    
319
.. _confproxy:
320

    
321
Configuration du serveur mandataire
322
-----------------------------------
323
VigiBoard permet d'accéder à la page d'état Nagios d'un hôte ou d'un service,
324
et ce malgré le fait que ces hôtes/services sont supervisés par des serveurs
325
Nagios différents. Ceci est rendu possible par l'existence d'un serveur
326
mandataire (proxy) qui relaye les requêtes au serveur Nagios concerné.
327

    
328
Le chapitre  présente tout d'abord les options communes à tous les types de
329
serveurs mandataires de Vigilo. Puis, le chapitre  détaille les options
330
spécifiques au serveur mandataire pour Nagios intégré à VigiBoard.
331

    
332
Options communes à tous les serveurs mandataires de Vigilo
333
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
334
Les options communes à tous les serveurs mandataires de Vigilo concernent
335
l'authentification auprès d'un serveur mandataire intermédiaire. Elles sont au
336
nombre de trois :
337

    
338
- ``app_proxy_auth_method`` indique la méthode d'authentification à utiliser et
339
  peut valoir ``basic`` ou ``digest`` ,
340
- ``app_proxy_auth_username`` indique le nom d'utilisateur à utiliser pour se
341
  connecter au serveur mandataire intermédiaire ,
342
- ``app_proxy_auth_password`` indique le mot de passe associé à ce nom
343
  d'utilisateur.
344

    
345
Ces trois options doivent être renseignées pour que l'authentification auprès
346
du serveur mandataire intermédiaire soit effective.
347

    
348
Options spécifiques au serveur mandataire Nagios
349
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
350
L'option ``app_path.nagios`` indique l'emplacement de l'installation de Nagios
351
sur le serveur Web distant, à partir de la racine du serveur Web. Généralement,
352
il s'agit de ``/nagios/`` (emplacement par défaut lors d'une nouvelle
353
installation de l'interface graphique CGI de Nagios).
354

    
355
L'option ``app_scheme.nagios`` indique le protocole à utiliser pour communiquer
356
avec le serveur Web distant. Les protocoles supportés sont ``http`` et
357
``https``.
358

    
359
L'option ``app_port.nagios`` permet d'indiquer le port à utiliser pour se
360
connecter, dans le cas où il ne s'agit pas du port standard. Par défaut, le
361
serveur mandataire Nagios utilise le port standard associé au protocole donné
362
par ``app_scheme.nagios`` (80 pour HTTP, 443 pour HTTPS).
363

    
364
L'option ``app_redirect.nagios`` permet de modifier le comportement du serveur
365
mandataire. Lorsque cette option vaut ``True``, le serveur mandataire agit
366
comme un simple redirecteur de requêtes. Dans ce mode, les options
367
d'authentification liées au serveur mandataire sont ignorées. Ce mode de
368
fonctionnement est utile afin de tester la configuration mais n'est pas
369
recommandé en production.
370

    
371
Les options ``app_auth_method.nagios``, ``app_auth_username.nagios`` et
372
``app_auth_password.nagios`` permettent d'indiquer la méthode
373
d'authentification, le nom d'utilisateur et le mot de passe pour accéder à
374
l'interface CGI de Nagios. Ces options sont similaires à celles décrites au
375
chapitre .
376

    
377
Configuration des sessions
378
--------------------------
379
Chaque fois qu'un utilisateur se connecte à VigiBoard, un fichier de session
380
est créé permettant de sauvegarder certaines préférences de cet utilisateur
381
(par exemple, le thème de l'application, la taille de la police de caractères,
382
etc.).
383

    
384
Ce chapitre décrit les options relatives à la gestion des sessions.
385

    
386
Emplacement des fichiers de session
387
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
388
Le dossier dans lequel les fichiers de session seront stockés est indiqué par
389
l'option ``cache_dir``.
390

    
391
Nom du cookie de session
392
^^^^^^^^^^^^^^^^^^^^^^^^
393
Afin d'associer un utilisateur au fichier de session qui lui correspond, un
394
cookie de session est créé sur le navigateur de l'utilisateur. L'option
395
``beaker.session.key`` permet de choisir le nom du cookie créé. Le nom doit
396
être composé de caractères alphanumériques (a-zA-Z0-9) et commencer par une
397
lettre (a-zA-Z).
398

    
399
.. _confappcfg:
400

    
401
Options du fichier ``app_cfg.py``
402
---------------------------------
403
Le fichier ``app_cfg.py`` contient des réglages spécifiques à VigiBoard plus
404
complexes à représenter que par l'usage du fichier ``settings.ini``. Ce
405
chapitre décrit ces réglages.
406

    
407
La modification de ces réglages nécessite une connaissance rudimentaire du
408
langage de programmation Python.
409

    
410
Choix des colonnes affichées dans VigiBoard
411
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
412
Vous avez la possibilité de configurer les colonnes à afficher dans VigiBoard
413
ainsi que leur ordre. VigiBoard est fourni avec un ensemble de colonnes
414
prédéfinies. La liste complète des colonnes disponibles peut être obtenue à
415
l'aide de la commande suivante::
416

    
417
    vigilo-plugins vigiboard.columns
418

    
419
L'option ``base_config['vigiboard_plugins']`` du fichier ``app_cfg.py``
420
contient un tuple des noms des colonnes à afficher (dans leur ordre
421
d'affichage, de gauche à droite sur un navigateur configuré pour un utilisateur
422
français, et de droite à gauche pour un utilisateur hébreu).
423

    
424
Exemple de configuration possible::
425

    
426
    base_config['vigiboard_plugins'] = ( 
427
    'details', 
428
    'date', 
429
    'priority', 
430
    'occurrences', 
431
    'hostname', 
432
    'servicename', 
433
    'output', 
434
    'hls', 
435
    'status', 
436
    )
437

    
438
Configuration des liens externes
439
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
440
L'option ``base_config['vigiboard_links.eventdetails']`` contient la liste des
441
liens externes configurés, c'est-à-dire les liens qui seront affichés dans le
442
dialogue de détail d'un événement (figure ).
443

    
444
La configuration des liens externes est donnée sous la forme d'un tuple de
445
tuples, de la forme::
446

    
447
    (libellé du lien, URL cible)
448

    
449
L'URL peut être relative ou absolue. Dans le cas d'une URL relative, celle-ci
450
est relative à l'emplacement de la racine de VigiBoard sur le serveur Web.
451

    
452
L'URL peut contenir des paramètres qui seront transmis tel quel. De plus, les
453
variables de substitution suivantes sont disponibles :
454

    
455
- ``%(idcorrevent)d`` est remplacé par l'identifiant (unique) de l'événement
456
  corrélé dans Vigilo,
457
- ``%(host)s`` est remplacé par le nom de l'hôte impacté par l'événement
458
  corrélé,
459
- ``%(service)s`` est remplacé par le nom du service impacté ou ``None`` si
460
  l'événement concernant directement l'hôte,
461
- ``%(message)s`` est remplacé par le message de supervision remonté par
462
  Nagios.
463

    
464
Exemple de configuration possible::
465

    
466
    base_config['vigiboard_links.eventdetails'] = ( 
467
        ( 
468
            u'Détail de l\'hôte dans Nagios', 
469
            '/nagios/%(host)s/cgi-bin/status.cgi?host=%(host)s' 
470
        ), ( 
471
            u'Détail de la métrologie', 
472
            'http://vigilo.example.com/vigigraph/rpc/fullHostPage?host=%(host)s' 
473
        ), ( 
474
            u'Détail de la sécurité', 
475
            'http://security.example.com/?host=%(host)s' 
476
        ), ( 
477
            'Inventaire', 
478
            'http://cmdb.example.com/?host=%(host)s' 
479
        ), ( 
480
            'Documentation', 
481
            'http://doc.example.com/?q=%(message)s' 
482
        ), 
483
    ) 
484

    
485
Cet exemple correspond à la liste de liens suivante :
486
  
487
.. figure:: liens.png
488
   
489
   Liens externes d'un événement
490

    
491

    
492
Emplacement du gestionnaire de tickets
493
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
494
Un ticket d'incident peut être associé à un ou plusieurs événements corrélés
495
apparaissant dans VigiBoard. L'adresse du gestionnaire de ticket est
496
paramétrable à l'aide de l'option ``base_config['vigiboard_links.tt']``.
497

    
498
Il s'agit d'une URL absolue, dans laquelle les variables de substitution
499
suivantes sont disponibles :
500

    
501
- ``%(idcorrevent)d`` est remplacé par l'identifiant (unique) de l'événement
502
  corrélé dans Vigilo,
503
- ``%(host)s`` est remplacé par le nom de l'hôte impacté par l'événement
504
  corrélé,
505
- ``%(service)s`` est remplacé par le nom du service impacté ou ``None`` si
506
  l'événement concernant directement l'hôte,
507
- ``%(tt)s`` est remplacé par la référence du ticket d'incident, telle que
508
  saisie par un utilisateur.
509

    
510
Exemple de configuration possible::
511

    
512
    base_config['vigiboard_links.tt'] = 'http://bugs.example.com/?ticket_id=%(tt)s'
513

    
514

    
515
.. _confmodwsgi:
516

    
517
Intégration de VigiBoard avec Apache / mod_wsgi
518
-----------------------------------------------
519

    
520
VigiBoard a été testé avec le serveur libre Apache. L'application utilise en
521
outre le module Apache ``mod_wsgi`` pour communiquer avec le serveur. Ce module
522
implémente un modèle de communication basé sur l'interface WSGI. Le reste de ce
523
chapitre décrit la configuration utilisée pour réaliser cette intégration.
524

    
525
Fichier de configuration pour Apache
526
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
527
Le fichier de configuration pour l'intégration de VigiBoard dans Apache se
528
trouve généralement dans ``/etc/vigilo/vigiboard/vigiboard.conf`` (un lien
529
symbolique vers ce fichier est créé dans le dossier de configuration d'Apache,
530
généralement dans ``/etc/httpd/conf.d/vigiboard.conf``).
531

    
532
En général, il n'est pas nécessaire de modifier le contenu de ce fichier. Ce
533
chapitre vise toutefois à fournir quelques informations sur le fonctionnement
534
de ce fichier, afin de permettre d'éventuelles personnalisations de ce
535
comportement. 
536

    
537
Ce fichier tente tout d'abord de charger le module ``mod_wsgi`` (directive
538
LoadModule) puis ajoute les directives de configuration nécessaire à Apache
539
pour faire fonctionner VigiBoard, reprises partiellement ci-dessous::
540

    
541
    WSGIRestrictStdout off 
542
    WSGIPassAuthorization on 
543
    WSGIDaemonProcess vigiboard user=apache group=apache threads=2 
544
    WSGIScriptAlias /vigilo/vigiboard "/etc/vigilo/vigiboard/vigiboard.wsgi" 
545

    
546
    KeepAlive Off 
547

    
548
    <Directory "/etc/vigilo/vigiboard/"> 
549
    <Files "vigiboard.wsgi"> 
550
    WSGIProcessGroup vigiboard 
551
    WSGIApplicationGroup %{GLOBAL} 
552

    
553
    Order deny,allow 
554
    Allow from all 
555
    </Files> 
556
    </Directory> 
557

    
558
L'option ``WSGIRestrictStdout`` est positionnée à ``off`` afin d'éviter
559
qu'Apache ne tue le processus de l'application lorsque des données sont
560
envoyées sur la sortie standard. Ceci permet de récupérer les erreurs critiques
561
pouvant être émises par l'application. Ces erreurs apparaissent alors dans le
562
journal des événements d'Apache (configuré par la directive ``error_log``).
563

    
564
L'option ``WSGIPassAuthorization`` positionnée à ``on`` indique à Apache et
565
mod_wsgi que les informations d'authentification éventuellement transmises par
566
l'utilisateur doivent être transmises à VigiBoard. En effet, Vigilo utilise son
567
propre mécanisme de gestion de l'authentification et des autorisations (voir la
568
documentation intitulée Vigilo - Authentification et autorisation) et utilise
569
donc ces informations.
570

    
571
L'option ``WSGIDaemonProcess`` permet de créer un groupe de processus affecté
572
au traitement des requêtes HTTP destinées à VigiBoard. Il permet d'utiliser un
573
nom d'utilisateur et un groupe prédéfini (afin de réduire les privilèges
574
nécessaires), ainsi que le nombre de processus légers à utiliser pour traiter
575
les requêtes (ici, 2).
576

    
577
L'option ``WSGIScriptAlias`` indique l'emplacement à partir duquel VigiBoard sera accessible (ici, ``http://example.com/vigilo/vigiboard`` si le serveur Apache est configuré pour le domaine ``example.com``) et l'emplacement du script WSGI nécessaire au lancement de l'application (voir le chapitre suivant).
578

    
579
L'option ``KeepAlive`` positionnée à ``off`` est nécessaire afin de contourner
580
un problème dans le module ``mod_wsgi`` d'Apache.
581

    
582
Les autres options permettent d'exécuter le script WSGI de VigiBoard à l'aide
583
du groupe de processus défini précédemment.
584

    
585
La liste complète des directives de configuration supportées par le module
586
``mod_wsgi`` d'Apache est disponible `dans la documentation officielle
587
<http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives>`_.
588

    
589
Script WSGI de VigiBoard
590
^^^^^^^^^^^^^^^^^^^^^^^^
591
Le script WSGI de VigiBoard est un script Python très simple qui a pour but de
592
démarrer l'exécution de VigiBoard à partir du fichier de configuration associé
593
(``/etc/vigilo/vigiboard/settings.ini``).
594

    
595
Vous n'avez généralement pas besoin de modifier son contenu, sauf
596
éventuellement pour adapter l'emplacement du fichier de configuration en
597
fonction de votre installation.
598

    
599

    
600

    
601
Annexes
602
=======
603

    
604
Glossaire - Terminologie
605
------------------------
606

    
607
.. glossary::
608
   API
609
       *Application Programming Interface*. Interface logicielle de programmation,
610
       permettant à un développeur d'enrichir la liste des fonctionnalités
611
       proposées par un logiciel.
612
   
613
   CGI
614
       *Common Gateway Interface*. Interface standard de communication entre un
615
       serveur Web et un programme capable de générer une réponse HTTP valide. Il
616
       s'agit par exemple de l'interface retenue par Nagios pour la génération de
617
       ses pages Web.
618
   
619
   SGBD(R)
620
       Serveur de Gestion de Bases de Données (Relationnelles). Logiciel
621
       permettant d'héberger une base de données sur la machine.
622
   
623
   SQL
624
       *Structured Query Language*. Langage de requêtes structuré pour
625
       l'interrogation d'une base de données relationnelle.
626
   
627
   URL
628
       *Uniform Resource Locator*. Chaîne de caractères permettant d'identifier
629
       une ressource sur Internet. Exemple : ``http://www.projet-vigilo.org/``.
630
   
631
   WSGI
632
       *Web Server Gateway Interface*. Une interface pour la communication entre
633
       une application et un serveur Web, similaire à CGI. Il s'agit de
634
       l'interface utilisée par Vigilo.
635

    
636

    
637
.. vim: set tw=79 :