Project

General

Profile

Revision f4387960

IDf438796092c515bb6599a1a4ec3796a5a183a38a
Parent d4649475
Child cd635eec

Added by Aurelien BOMPARD over 12 years ago

Doc d'admin VigiBoard

Change-Id: I8f69a86c6129156628b5d1edf373de9ff3d528f1

View differences:

doc/admin.rst
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
Reportez-vous aux manuels de ces différents logiciels pour savoir comment
20
procéder à leur installation sur votre machine.
21

  
22
VigiBoard requiert également la présence de plusieurs dépendances Python. Ces
23
dépendances seront automatiquement installées en même temps que le paquet de
24
VigiBoard.
25

  
26
Installation du paquet RPM
27
--------------------------
28
L'installation du connecteur se fait en installant simplement le paquet RPM
29
``vigilo-vigiboard``. La procédure exacte d'installation dépend du
30
gestionnaire de paquets utilisé. Les instructions suivantes décrivent la
31
procédure pour les gestionnaires de paquets RPM les plus fréquemment
32
rencontrés.
33

  
34
Installation à l'aide de urpmi::
35

  
36
    urpmi vigilo-vigiboard
37

  
38
Installation à l'aide de yum::
39

  
40
    yum install vigilo-vigiboard
41

  
42

  
43

  
44
Démarrage et arrêt
45
==================
46

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

  
51
    service httpd start
52

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

  
57
    service httpd stop
58

  
59

  
60

  
61
Configuration
62
=============
63

  
64
La configuration initialement fournie avec VigiBoard est très rudimentaire.
65
Elle est décomposée en deux fichiers :
66

  
67
- le fichier ``settings.ini`` d'une part, qui contient la majorité des options
68
  de configuration ;
69
- et le fichier ``app_cfg.py`` qui contient des options de configuration plus
70
  complexes, nécessitant l'utilisation d'un langage plus complet (Python).
71

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

  
79
Le chapitre :ref:`confappcfg` quant à lui décrit certaines options de
80
configuration fournies par le fichier ``app_cfg.py``.
81

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

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

  
91
.. _confbdd:
92

  
93
Base de données
94
---------------
95

  
96
Pour fonctionner, VigiBoard nécessite qu'une base de données soit accessible.
97
Ce chapitre décrit les options de configuration se rapportant à la base de
98
données.
99

  
100
Connexion
101
^^^^^^^^^
102
La configuration de la connexion à la base de base de données se fait en
103
modifiant la valeur de la clé ``sqlalchemy.url`` sous la section
104
``[app:main]``.
105

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

  
110
    sgbd://utilisateur:mot_de_passe@serveur:port/base_de_donnees
111

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

  
115
Par exemple, voici la valeur correspondant à une installation mono-poste par
116
défaut de VigiBoard::
117

  
118
    postgres://vigilo:vigilo@localhost/vigilo
119

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

  
124
Choix d'un préfixe pour les tables
125
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
126
Vous pouvez choisir un préfixe qui sera appliqué aux noms des tables de la base
127
de données en indiquant ce préfixe dans la clé ``db_basename`` sous la section
128
``[app:main]``. Par défaut, la configuration suppose que les tables de Vigilo
129
porteront le préfixe ``vigilo_``.
130

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

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

  
139
Optimisation de la couche d'abstraction
140
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
141
L'option ``sqlalchemy.echo`` permet de forcer l'affichage des requêtes SQL. En
142
production, cette valeur doit être positionnée à ``False``. Elle est redondante
143
avec la configuration des journaux d'événements (voir le document intitulé
144
Vigilo - Journaux d'événements pour plus d'information).
145

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

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

  
154
L'option ``sqlalchemy.pool_size`` permet de configurer le nombre de connexions
155
gérées simultanément par le gestionnaire de connexions à la base de données. La
156
valeur recommandée est 20.
157

  
158
L'option ``sqlalchemy.max_overflow`` permet de limiter le nombre maximales de
159
connexions simultanées à la base de données. La limite correspond à la somme de
160
``sqlalchemy.pool_size`` et ``sqlalchemy.max_overflow``. Une valeur de 100
161
convient généralement.
162

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

  
169
Éléments de sécurité
170
--------------------
171

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

  
175
Choix de la méthode de hachage des mots de passe
176
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
177
Lorsque l'authentification de Vigilo se base sur les comptes contenus dans la
178
base de données, les mots de passe des utilisateurs sont stockés sous forme
179
hachée afin de rendre plus difficile le cassage de ces mots de passe.
180

  
181
La méthode de hachage sélectionnée peut être configurée en modifiant la valeur
182
de la clé ``password_hashing_function`` sous la section ``[app:main]``. Les
183
méthodes de hachage disponibles sont variées. Les fonctions de hachage
184
suivantes sont notamment disponibles : md5, sha1, sha224, sha256, sha384 et
185
sha512. D'autres fonctions peuvent être disponibles en fonction de votre
186
installation de Python.
187

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

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

  
197
Clé de chiffrement / déchiffrement des sessions
198
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
199
Afin de ne pas dévoiler certains paramètres associés à un utilisateur, le
200
fichier de session qui contient ces paramètres est chiffré à l'aide d'une clé
201
symétrique, utilisée à la fois pour le chiffrement et le déchiffrement des
202
sessions de tous les utilisateurs de VigiBoard.
203

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

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

  
214
Clé de chiffrement / déchiffrement des cookies
215
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
216
L'association entre un utilisateur et sa session se fait à l'aide d'un cookie
217
de session enregistré sur le navigateur de l'utilisateur. De la même manière
218
que les sessions sont chiffrés afin de garantir la confidentialité de leur
219
contenu, le cookie de session est également chiffré afin de protéger son
220
contenu.
221

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

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

  
232

  
233
Utilisation d'un mécanisme d'authentification externe
234
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
235
Pour utiliser un mécanisme d'authentification externe (par exemple : Kerberos),
236
définissez la clé ``external_auth`` à ``True`` sous la section ``[app:main]``.
237

  
238
Dans ce mode, Vigilo ne tente pas d'authentifier l'utilisateur par rapport aux
239
comptes contenus dans sa base de données, mais utilise uniquement le nom
240
d'utilisateur transmis par la source d'authentification externe. Le nom
241
d'utilisateur peut être transmis de plusieurs manières, par exemple sous la
242
forme d'une variable d'environnement.
243

  
244
**Attention :** n'utilisez ce mode de fonctionnement que si vous comprenez bien
245
les risques associés. En particulier, le fait qu'aucun mot de passe ne sera
246
demandé à l'utilisateur pour confirmer son identité.
247

  
248
Emplacement de la configuration d'authentification/autorisation
249
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
250
La directive ``auth.config`` de la section ``[app:main]`` permet d'indiquer
251
l'emplacement du fichier contenant la configuration de la couche
252
d'authentification/autorisation de Vigilo.
253

  
254
Il n'est généralement pas nécessaire de modifier cette valeur. La configuration
255
de cette couche d'abstraction est détaillée dans le document *Vigilo -
256
Authentification et autorisation*.
257

  
258
Configuration de l'interface
259
----------------------------
260

  
261
Ce chapitre décrit les options qui modifient l'apparence de l'interface
262
graphique de VigiBoard.
263

  
264
Langue par défaut de VigiBoard
265
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
266
Au sein de son interface, VigiBoard tente de s'adapter au navigateur de
267
l'utilisateur pour afficher les pages dans sa langue. Toutefois, si
268
l'utilisateur n'a pas paramétré sa langue ou bien si aucune traduction n'est
269
disponible qui soit en accord avec les paramètres du navigateur de
270
l'utilisateur, une langue par défaut est utilisée (dans l'installation par
271
défaut de VigiBoard, cette langue est le Français ``fr``).
272

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

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

  
282
Emplacement de la documentation en ligne
283
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
284
Il est possible d'ajouter un lien dans l'interface graphique qui redirige
285
l'utilisateur vers la documentation en ligne de l'application. Ceci se fait en
286
assignant une URL à l'option ``help_link``.
287

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

  
292
.. |imghelp| image:: help.png
293

  
294
Délai de rafraîchissement automatique
295
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
296
Le bac à événements de VigiBoard peut être actualisé automatiquement à
297
intervalle régulier afin de donner une vue à jour de l'état du parc aux
298
veilleurs. L'option ``refresh_delay`` permet de choisir le délai, en secondes,
299
entre deux rafraîchissements automatiques de la page.
300

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

  
306
État initial du rafraîchissement automatique
307
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
308
Vous avez la possibilité d'activer par défaut le rafraîchissement automatique
309
du bac à événements pour les veilleurs, en positionnant l'option
310
``refresh_enabled`` à ``True``.
311

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

  
316
Configuration du nombre d'événements affichés par page
317
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
318
Le nombre d'événements affichés par page peut être configuré en changeant la
319
valeur de la clé ``vigiboard_items_per_page`` sous la section ``[app:main]``.
320

  
321
Configuration du lien d'accueil
322
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
323
Vous avez la possibilité de rediriger l'utilisateur vers une page de votre
324
choix lorsque celui-ci clique sur le logo de Vigilo |imghome| dans l'interface
325
graphique de VigiBoard. Ceci se fait en modifiant l'URL donnée par l'option
326
``logo_link``.
327

  
328
.. |imghome| image:: home.png
329

  
330
Ordre de tri de la priorité des événements
331
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
332
VigiBoard prend en compte la priorité des événements pour les triers dans son
333
interface graphique. Néanmoins, chaque système à sa propre définition de la
334
priorité d'un événement. Généralement, plus la priorité d'un événement est
335
élevée, plus cet événement doit être traité en premier. Cependant il se peut
336
que cet ordre de tri soit inversé sur votre parc (c'est-à-dire qu'un événement
337
très prioritaire est représenté par une priorité dont la valeur est très
338
basse).
339

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

  
345
Choix du critère de tri prioritaire
346
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
347
En fonction de votre parc informatique, il peut être intéressant de trier les
348
événements reçus dans le bac à événements par état Nagios puis par horodatage,
349
ou bien l'inverse.
350

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

  
354
.. _confproxy:
355

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

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

  
367
Options communes à tous les serveurs mandataires de Vigilo
368
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
369
Les options communes à tous les serveurs mandataires de Vigilo concernent
370
l'authentification auprès d'un serveur mandataire intermédiaire. Elles sont au
371
nombre de trois :
372

  
373
- ``app_proxy_auth_method`` indique la méthode d'authentification à utiliser et
374
  peut valoir ``basic`` ou ``digest`` ,
375
- ``app_proxy_auth_username`` indique le nom d'utilisateur à utiliser pour se
376
  connecter au serveur mandataire intermédiaire ,
377
- ``app_proxy_auth_password`` indique le mot de passe associé à ce nom
378
  d'utilisateur.
379

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

  
383
Options spécifiques au serveur mandataire Nagios
384
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
385
L'option ``app_path.nagios`` indique l'emplacement de l'installation de Nagios
386
sur le serveur Web distant, à partir de la racine du serveur Web. Généralement,
387
il s'agit de ``/nagios/`` (emplacement par défaut lors d'une nouvelle
388
installation de l'interface graphique CGI de Nagios).
389

  
390
L'option ``app_scheme.nagios`` indique le protocole à utiliser pour communiquer
391
avec le serveur Web distant. Les protocoles supportés sont ``http`` et
392
``https``.
393

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

  
399
L'option ``app_redirect.nagios`` permet de modifier le comportement du serveur
400
mandataire. Lorsque cette option vaut ``True``, le serveur mandataire agit
401
comme un simple redirecteur de requêtes. Dans ce mode, les options
402
d'authentification liées au serveur mandataire sont ignorées. Ce mode de
403
fonctionnement est utile afin de tester la configuration mais n'est pas
404
recommandé en production.
405

  
406
Les options ``app_auth_method.nagios``, ``app_auth_username.nagios`` et
407
``app_auth_password.nagios`` permettent d'indiquer la méthode
408
d'authentification, le nom d'utilisateur et le mot de passe pour accéder à
409
l'interface CGI de Nagios. Ces options sont similaires à celles décrites au
410
chapitre .
411

  
412
Configuration des sessions
413
--------------------------
414
Chaque fois qu'un utilisateur se connecte à VigiBoard, un fichier de session
415
est créé permettant de sauvegarder certaines préférences de cet utilisateur
416
(par exemple, le thème de l'application, la taille de la police de caractères,
417
etc.).
418

  
419
Ce chapitre décrit les options relatives à la gestion des sessions.
420

  
421
Emplacement des fichiers de session
422
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
423
Le dossier dans lequel les fichiers de session seront stockés est indiqué par
424
l'option ``cache_dir``.
425

  
426
Nom du cookie de session
427
^^^^^^^^^^^^^^^^^^^^^^^^
428
Afin d'associer un utilisateur au fichier de session qui lui correspond, un
429
cookie de session est créé sur le navigateur de l'utilisateur. L'option
430
``beaker.session.key`` permet de choisir le nom du cookie créé. Le nom doit
431
être composé de caractères alphanumériques (a-zA-Z0-9) et commencer par une
432
lettre (a-zA-Z).
433

  
434
.. _confappcfg:
435

  
436
Options du fichier ``app_cfg.py``
437
---------------------------------
438
Le fichier ``app_cfg.py`` contient des réglages spécifiques à VigiBoard plus
439
complexes à représenter que par l'usage du fichier ``settings.ini``. Ce
440
chapitre décrit ces réglages.
441

  
442
La modification de ces réglages nécessite une connaissance rudimentaire du
443
langage de programmation Python.
444

  
445
Choix des colonnes affichées dans VigiBoard
446
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
447
Vous avez la possibilité de configurer les colonnes à afficher dans VigiBoard
448
ainsi que leur ordre. VigiBoard est fourni avec un ensemble de colonnes
449
prédéfinies. La liste complète des colonnes disponibles peut être obtenue à
450
l'aide de la commande suivante::
451

  
452
    vigilo-plugins vigiboard.columns
453

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

  
459
Exemple de configuration possible::
460

  
461
    base_config['vigiboard_plugins'] = ( 
462
    'details', 
463
    'date', 
464
    'priority', 
465
    'occurrences', 
466
    'hostname', 
467
    'servicename', 
468
    'output', 
469
    'hls', 
470
    'status', 
471
    )
472

  
473
Configuration des liens externes
474
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
475
L'option ``base_config['vigiboard_links.eventdetails']`` contient la liste des
476
liens externes configurés, c'est-à-dire les liens qui seront affichés dans le
477
dialogue de détail d'un événement (figure ).
478

  
479
La configuration des liens externes est donnée sous la forme d'un tuple de
480
tuples, de la forme::
481

  
482
    (libellé du lien, URL cible)
483

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

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

  
490
- ``%(idcorrevent)d`` est remplacé par l'identifiant (unique) de l'événement
491
  corrélé dans Vigilo,
492
- ``%(host)s`` est remplacé par le nom de l'hôte impacté par l'événement
493
  corrélé,
494
- ``%(service)s`` est remplacé par le nom du service impacté ou ``None`` si
495
  l'événement concernant directement l'hôte,
496
- ``%(message)s`` est remplacé par le message de supervision remonté par
497
  Nagios.
498

  
499
Exemple de configuration possible::
500

  
501
    base_config['vigiboard_links.eventdetails'] = ( 
502
        ( 
503
            u'Détail de l\'hôte dans Nagios', 
504
            '/nagios/%(host)s/cgi-bin/status.cgi?host=%(host)s' 
505
        ), ( 
506
            u'Détail de la métrologie', 
507
            'http://vigilo.example.com/vigigraph/rpc/fullHostPage?host=%(host)s' 
508
        ), ( 
509
            u'Détail de la sécurité', 
510
            'http://security.example.com/?host=%(host)s' 
511
        ), ( 
512
            'Inventaire', 
513
            'http://cmdb.example.com/?host=%(host)s' 
514
        ), ( 
515
            'Documentation', 
516
            'http://doc.example.com/?q=%(message)s' 
517
        ), 
518
    ) 
519

  
520
Cet exemple correspond à la liste de liens suivante :
521
  
522
.. figure:: liens.png
523
   
524
   Liens externes d'un événement
525

  
526

  
527
Emplacement du gestionnaire de tickets
528
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
529
Un ticket d'incident peut être associé à un ou plusieurs événements corrélés
530
apparaissant dans VigiBoard. L'adresse du gestionnaire de ticket est
531
paramétrable à l'aide de l'option ``base_config['vigiboard_links.tt']``.
532

  
533
Il s'agit d'une URL absolue, dans laquelle les variables de substitution
534
suivantes sont disponibles :
535

  
536
- ``%(idcorrevent)d`` est remplacé par l'identifiant (unique) de l'événement
537
  corrélé dans Vigilo,
538
- ``%(host)s`` est remplacé par le nom de l'hôte impacté par l'événement
539
  corrélé,
540
- ``%(service)s`` est remplacé par le nom du service impacté ou ``None`` si
541
  l'événement concernant directement l'hôte,
542
- ``%(tt)s`` est remplacé par la référence du ticket d'incident, telle que
543
  saisie par un utilisateur.
544

  
545
Exemple de configuration possible::
546

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

  
549

  
550
.. _confmodwsgi:
551

  
552
Intégration de VigiBoard avec Apache / mod_wsgi
553
-----------------------------------------------
554

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

  
560
Fichier de configuration pour Apache
561
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
562
Le fichier de configuration pour l'intégration de VigiBoard dans Apache se
563
trouve généralement dans ``/etc/vigilo/vigiboard/vigiboard.conf`` (un lien
564
symbolique vers ce fichier est créé dans le dossier de configuration d'Apache,
565
généralement dans ``/etc/httpd/conf.d/vigiboard.conf``).
566

  
567
En général, il n'est pas nécessaire de modifier le contenu de ce fichier. Ce
568
chapitre vise toutefois à fournir quelques informations sur le fonctionnement
569
de ce fichier, afin de permettre d'éventuelles personnalisations de ce
570
comportement. 
571

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

  
576
    WSGIRestrictStdout off 
577
    WSGIPassAuthorization on 
578
    WSGIDaemonProcess vigiboard user=apache group=apache threads=2 
579
    WSGIScriptAlias /vigilo/vigiboard "/etc/vigilo/vigiboard/vigiboard.wsgi" 
580

  
581
    KeepAlive Off 
582

  
583
    <Directory "/etc/vigilo/vigiboard/"> 
584
    <Files "vigiboard.wsgi"> 
585
    WSGIProcessGroup vigiboard 
586
    WSGIApplicationGroup %{GLOBAL} 
587

  
588
    Order deny,allow 
589
    Allow from all 
590
    </Files> 
591
    </Directory> 
592

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

  
599
L'option ``WSGIPassAuthorization`` positionnée à ``on`` indique à Apache et
600
mod_wsgi que les informations d'authentification éventuellement transmises par
601
l'utilisateur doivent être transmises à VigiBoard. En effet, Vigilo utilise son
602
propre mécanisme de gestion de l'authentification et des autorisations (voir la
603
documentation intitulée Vigilo - Authentification et autorisation) et utilise
604
donc ces informations.
605

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

  
612
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).
613

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

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

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

  
624
Script WSGI de VigiBoard
625
^^^^^^^^^^^^^^^^^^^^^^^^
626
Le script WSGI de VigiBoard est un script Python très simple qui a pour but de
627
démarrer l'exécution de VigiBoard à partir du fichier de configuration associé
628
(``/etc/vigilo/vigiboard/settings.ini``).
629

  
630
Vous n'avez généralement pas besoin de modifier son contenu, sauf
631
éventuellement pour adapter l'emplacement du fichier de configuration en
632
fonction de votre installation.
633

  
634

  
635

  
636
Annexes
637
=======
638

  
639
Glossaire - Terminologie
640
------------------------
641

  
642
.. glossary::
643
   API
644
       *Application Programming Interface*. Interface logicielle de programmation,
645
       permettant à un développeur d'enrichir la liste des fonctionnalités
646
       proposées par un logiciel.
647
   
648
   CGI
649
       *Common Gateway Interface*. Interface standard de communication entre un
650
       serveur Web et un programme capable de générer une réponse HTTP valide. Il
651
       s'agit par exemple de l'interface retenue par Nagios pour la génération de
652
       ses pages Web.
653
   
654
   SGBD(R)
655
       Serveur de Gestion de Bases de Données (Relationnelles). Logiciel
656
       permettant d'héberger une base de données sur la machine.
657
   
658
   SQL
659
       *Structured Query Language*. Langage de requêtes structuré pour
660
       l'interrogation d'une base de données relationnelle.
661
   
662
   URL
663
       *Uniform Resource Locator*. Chaîne de caractères permettant d'identifier
664
       une ressource sur Internet. Exemple : ``http://www.projet-vigilo.org/``.
665
   
666
   WSGI
667
       *Web Server Gateway Interface*. Une interface pour la communication entre
668
       une application et un serveur Web, similaire à CGI. Il s'agit de
669
       l'interface utilisée par Vigilo.
670

  
671

  
672
.. vim: set tw=79 :
doc/conf.py
1
# -*- coding: utf-8 -*-
2

  
3
project = u'VigiBoard'
4

  
5
pdf_documents = [
6
        ('admin', "admin-vigiboard", "VigiBoard : Guide d'administration", u'Vigilo'),
7
]
8

  
9
latex_documents = [
10
        ('admin', 'admin-vigiboard.tex', u"VigiBoard : Guide d'administration",
11
         'AA100004-2/ADM00005', 'vigilo'),
12
]
13

  
14
execfile("../buildenv/doc/conf.py")
doc/index.rst
1
#########
2
VigiBoard
3
#########
4

  
5
VigiBoard est l'interface de visualisation des événements de Vigilo.
6

  
7
Documentation disponible :
8

  
9
.. toctree::
10
   :maxdepth: 2
11

  
12
   admin
13

  
14

  
15
.. *****************
16
.. Indexes et tables
17
.. *****************
18
.. 
19
.. * :ref:`genindex`
20
.. * :ref:`modindex`
21
.. * :ref:`search`
22

  
23

  
24
.. vim: set tw=79 :

Also available in: Unified diff