Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

vigiboard / doc / admin.rst @ master

History | View | Annotate | Download (26 KB)

1 f4387960 Aurelien BOMPARD
**********************
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 ed05a970 Aurelien BOMPARD
.. Installation du RPM
21
.. include:: ../buildenv/doc/package.rst
22 f4387960 Aurelien BOMPARD
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 b1b2351f Thomas BURGUIERE
    postgressql://vigilo:vigilo@localhost/vigilo
99 f4387960 Aurelien BOMPARD
100 0e86c6f5 Francois POIROTTE
..  warning::
101
    À l'heure actuelle, seul PostgreSQL a fait l'objet de tests intensifs.
102
    D'autres SGBD peuvent également fonctionner, mais aucun support ne
103
    sera fourni pour ces SGBD.
104 f4387960 Aurelien BOMPARD
105
106
Optimisation de la couche d'abstraction
107
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
108
L'option ``sqlalchemy.echo`` permet de forcer l'affichage des requêtes SQL. En
109
production, cette valeur doit être positionnée à ``False``. Elle est redondante
110
avec la configuration des journaux d'événements (voir le document intitulé
111
Vigilo - Journaux d'événements pour plus d'information).
112
113
L'option ``sqlalchemy.echo_pool`` permet d'activer le mode de débogage du
114
gestionnaire de connexions à la base de données. De même que pour l'option
115
``sqlalchemy.echo`` ci-dessus, elle doit être positionnée à ``False`` en
116
production.
117
118
L'option ``sqlalchemy.pool_recycle`` permet de définir la durée après laquelle
119
une connexion est « recyclée » (recréée).
120
121
L'option ``sqlalchemy.pool_size`` permet de configurer le nombre de connexions
122
gérées simultanément par le gestionnaire de connexions à la base de données. La
123
valeur recommandée est 20.
124
125
L'option ``sqlalchemy.max_overflow`` permet de limiter le nombre maximales de
126
connexions simultanées à la base de données. La limite correspond à la somme de
127
``sqlalchemy.pool_size`` et ``sqlalchemy.max_overflow``. Une valeur de 100
128
convient généralement.
129
130
La documentation d'API de SQLAlchemy (la bibliothèque d'abstraction de la base
131
de données utilisée par Vigilo) donne quelques informations supplémentaires sur
132
le rôle de ces différents paramètres. Cette documentation est accessible `sur
133
le site du projet
134
<http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/pooling.html>`_.
135
136
Éléments de sécurité
137
--------------------
138
139
Ce chapitre décrit les options relatives à la gestion des données de sécurité
140
(clés de chiffrements, etc.) utilisées par VigiBoard.
141
142
Choix de la méthode de hachage des mots de passe
143
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
144
Lorsque l'authentification de Vigilo se base sur les comptes contenus dans la
145
base de données, les mots de passe des utilisateurs sont stockés sous forme
146
hachée afin de rendre plus difficile le cassage de ces mots de passe.
147
148
La méthode de hachage sélectionnée peut être configurée en modifiant la valeur
149
de la clé ``password_hashing_function`` sous la section ``[app:main]``. Les
150
méthodes de hachage disponibles sont variées. Les fonctions de hachage
151
suivantes sont notamment disponibles : md5, sha1, sha224, sha256, sha384 et
152
sha512. D'autres fonctions peuvent être disponibles en fonction de votre
153
installation de Python.
154
155 0e86c6f5 Francois POIROTTE
..  warning::
156
    En cas d'absence d'une valeur pour cette option ou si la fonction
157
    de hachage indiquée n'existe pas, les mots de passe sont stockés
158
    en clair. Vérifiez donc la valeur indiquée.
159 f4387960 Aurelien BOMPARD
160 0e86c6f5 Francois POIROTTE
..  warning::
161
    Cette option ne doit être modifiée qu'au moment de l'installation.
162
    Si vous modifiez la méthode utilisée ultérieurement, les comptes
163
    précédemment enregistrés ne seront plus utilisables.
164
    En particulier, le compte d'administration créé par défaut.
165 f4387960 Aurelien BOMPARD
166
Clé de chiffrement / déchiffrement des sessions
167
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
168
Afin de ne pas dévoiler certains paramètres associés à un utilisateur, le
169
fichier de session qui contient ces paramètres est chiffré à l'aide d'une clé
170
symétrique, utilisée à la fois pour le chiffrement et le déchiffrement des
171
sessions de tous les utilisateurs de VigiBoard.
172
173
L'option ``beaker.session.secret`` permet de choisir la clé utilisée pour
174
chiffrer et déchiffrer le contenu des sessions. Cette clé peut être la même que
175
celle configurée pour le chiffrement / déchiffrement des cookies (voir le
176
chapitre suivant), mais ceci est déconseillé afin d'éviter que la compromission
177
de l'une des deux clés n'entraine la compromission de l'autre.
178
179
De la même manière, vous pouvez configurer les autres interfaces graphiques de
180
Vigilo pour utiliser les mêmes clés, ou opter de préférence pour des clés
181
différentes (là encore, pour éviter la propagation d'une compromission).
182
183
Clé de chiffrement / déchiffrement des cookies
184
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
185
L'association entre un utilisateur et sa session se fait à l'aide d'un cookie
186
de session enregistré sur le navigateur de l'utilisateur. De la même manière
187
que les sessions sont chiffrés afin de garantir la confidentialité de leur
188
contenu, le cookie de session est également chiffré afin de protéger son
189
contenu.
190
191
L'option ``sa_auth.cookie_secret`` permet de choisir la clé utilisée pour
192
chiffrer et déchiffrer le contenu du cookie. Cette clé peut être la même que
193
celle configurée pour le chiffrement / déchiffrement des sessions (voir le
194
chapitre ), mais ceci est déconseillé afin d'éviter que la compromission de
195
l'une des deux clés n'entraine la compromission de l'autre.
196
197
De la même manière, vous pouvez configurer les autres interfaces graphiques de
198
Vigilo pour utiliser les mêmes clés, ou opter de préférence pour des clés
199
différentes (là encore, pour éviter la propagation d'une compromission).
200
201
202
Emplacement de la configuration d'authentification/autorisation
203
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
204
La directive ``auth.config`` de la section ``[app:main]`` permet d'indiquer
205
l'emplacement du fichier contenant la configuration de la couche
206
d'authentification/autorisation de Vigilo.
207
208
Il n'est généralement pas nécessaire de modifier cette valeur. La configuration
209
de cette couche d'abstraction est détaillée dans le document *Vigilo -
210
Authentification et autorisation*.
211
212
Configuration de l'interface
213
----------------------------
214
215
Ce chapitre décrit les options qui modifient l'apparence de l'interface
216
graphique de VigiBoard.
217
218
Langue par défaut de VigiBoard
219
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
220
Au sein de son interface, VigiBoard tente de s'adapter au navigateur de
221
l'utilisateur pour afficher les pages dans sa langue. Toutefois, si
222
l'utilisateur n'a pas paramétré sa langue ou bien si aucune traduction n'est
223
disponible qui soit en accord avec les paramètres du navigateur de
224
l'utilisateur, une langue par défaut est utilisée (dans l'installation par
225
défaut de VigiBoard, cette langue est le Français ``fr``).
226
227
Vous pouvez modifier la langue utilisée par défaut en changeant la valeur de la
228
clé ``lang`` sous la section ``[app:main]``. La valeur de cette clé est le code
229
de la langue à utiliser, sur deux caractères et en minuscules (format ISO
230
3166-1 ``alpha 2``). Exemples de codes valides : fr, en, de, ...
231
232
La liste complète des codes possibles est disponible sur
233 0e86c6f5 Francois POIROTTE
http://fr.wikipedia.org/wiki/ISO_3166-1.
234
La langue retenue doit être disponible parmi les traductions fournies
235
avec VigiBoard.
236 f4387960 Aurelien BOMPARD
237
Emplacement de la documentation en ligne
238
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
239
Il est possible d'ajouter un lien dans l'interface graphique qui redirige
240
l'utilisateur vers la documentation en ligne de l'application. Ceci se fait en
241
assignant une URL à l'option ``help_link``.
242
243
Si cette option est renseignée, une icône en forme de bouée de sauvetage
244
|imghelp| apparaît dans l'interface graphique qui permet à l'utilisateur
245
d'accéder à l'URL indiquée.
246
247 c8929558 Francois POIROTTE
.. |imghelp| image:: img/help.png
248 f4387960 Aurelien BOMPARD
249
Délai de rafraîchissement automatique
250
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
251
Le bac à événements de VigiBoard peut être actualisé automatiquement à
252
intervalle régulier afin de donner une vue à jour de l'état du parc aux
253
veilleurs. L'option ``refresh_delay`` permet de choisir le délai, en secondes,
254
entre deux rafraîchissements automatiques de la page.
255
256 0e86c6f5 Francois POIROTTE
..  note::
257
    Les veilleurs ont la possibilité de désactiver le rafraîchissement
258
    automatique durant leur session. Dans tous les cas, si une boîte
259
    de dialogue de VigiBoard est affichée à l'écran, le rafraîchissement
260
    automatique est mis en pause afin de ne pas perturber les opérations
261
    en cours.
262 f4387960 Aurelien BOMPARD
263
État initial du rafraîchissement automatique
264
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
265
Vous avez la possibilité d'activer par défaut le rafraîchissement automatique
266
du bac à événements pour les veilleurs, en positionnant l'option
267
``refresh_enabled`` à ``True``.
268
269 0e86c6f5 Francois POIROTTE
..  note::
270
    Les veilleurs ont la possibilité de désactiver le rafraîchissement
271
    automatique durant leur session. Leur choix (rafraîchissement automatique
272
    actif ou non) est conservé en session durant un certain temps.
273 f4387960 Aurelien BOMPARD
274
Configuration du nombre d'événements affichés par page
275
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
276
Le nombre d'événements affichés par page peut être configuré en changeant la
277
valeur de la clé ``vigiboard_items_per_page`` sous la section ``[app:main]``.
278
279
Configuration du lien d'accueil
280
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
281
Vous avez la possibilité de rediriger l'utilisateur vers une page de votre
282 67b3acd3 Francois POIROTTE
choix lorsque celui-ci clique sur le logo en forme de maison |imghome|
283
dans l'interface graphique de VigiBoard.
284
Ceci se fait en modifiant l'URL associée à l'option ``home_link``.
285 f4387960 Aurelien BOMPARD
286 c8929558 Francois POIROTTE
.. |imghome| image:: img/home.png
287 f4387960 Aurelien BOMPARD
288
Ordre de tri de la priorité des événements
289
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
290
VigiBoard prend en compte la priorité des événements pour les triers dans son
291
interface graphique. Néanmoins, chaque système à sa propre définition de la
292
priorité d'un événement. Généralement, plus la priorité d'un événement est
293
élevée, plus cet événement doit être traité en premier. Cependant il se peut
294
que cet ordre de tri soit inversé sur votre parc (c'est-à-dire qu'un événement
295
très prioritaire est représenté par une priorité dont la valeur est très
296
basse).
297
298
L'ordre de tri de la priorité est défini grâce à la clé de configuration
299
``vigiboard_priority_order``, sous la section ``[app:main]``. Cette clé accepte
300
deux valeurs : ``asc`` (nombre peu élevé = priorité importante) ou ``desc``
301
(nombre élevé = priorité importante).
302
303
Choix du critère de tri prioritaire
304
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
305
En fonction de votre parc informatique, il peut être intéressant de trier les
306
événements reçus dans le bac à événements par état Nagios puis par horodatage,
307
ou bien l'inverse.
308
309
L'option ``state_first`` est un booléen qui permet de choisir si le tri se fait
310
d'abord par l'état (``True``), ou d'abord par l'horodatage (``False``).
311
312
.. _confproxy:
313
314 f1886725 Vincent QUEMENER
Configuration de l'auto-supervision
315
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
316
VigiBoard affiche un message d'alerte à l'utilisateur dès lors qu'un des
317
collecteurs Vigilo n'a pas donné signe de vie depuis plus d'une certaine durée.
318
Cette durée-seuil, exprimée en secondes, est configurable à l'aide de l'option
319
« freshness_threshold » .
320
Une valeur négative ou nulle désactive complètement cette fonctionnalité.
321
322 f4387960 Aurelien BOMPARD
Configuration du serveur mandataire
323
-----------------------------------
324
VigiBoard permet d'accéder à la page d'état Nagios d'un hôte ou d'un service,
325
et ce malgré le fait que ces hôtes/services sont supervisés par des serveurs
326
Nagios différents. Ceci est rendu possible par l'existence d'un serveur
327
mandataire (proxy) qui relaye les requêtes au serveur Nagios concerné.
328
329
Le chapitre  présente tout d'abord les options communes à tous les types de
330
serveurs mandataires de Vigilo. Puis, le chapitre  détaille les options
331
spécifiques au serveur mandataire pour Nagios intégré à VigiBoard.
332
333
Options communes à tous les serveurs mandataires de Vigilo
334
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
335
Les options communes à tous les serveurs mandataires de Vigilo concernent
336
l'authentification auprès d'un serveur mandataire intermédiaire. Elles sont au
337
nombre de trois :
338
339
- ``app_proxy_auth_method`` indique la méthode d'authentification à utiliser et
340 0e86c6f5 Francois POIROTTE
  peut valoir ``basic`` ou ``digest``
341
342 f4387960 Aurelien BOMPARD
- ``app_proxy_auth_username`` indique le nom d'utilisateur à utiliser pour se
343 0e86c6f5 Francois POIROTTE
  connecter au serveur mandataire intermédiaire
344
345 f4387960 Aurelien BOMPARD
- ``app_proxy_auth_password`` indique le mot de passe associé à ce nom
346
  d'utilisateur.
347
348
Ces trois options doivent être renseignées pour que l'authentification auprès
349
du serveur mandataire intermédiaire soit effective.
350
351
Options spécifiques au serveur mandataire Nagios
352
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
353
L'option ``app_path.nagios`` indique l'emplacement de l'installation de Nagios
354
sur le serveur Web distant, à partir de la racine du serveur Web. Généralement,
355
il s'agit de ``/nagios/`` (emplacement par défaut lors d'une nouvelle
356
installation de l'interface graphique CGI de Nagios).
357
358
L'option ``app_scheme.nagios`` indique le protocole à utiliser pour communiquer
359 0e86c6f5 Francois POIROTTE
avec le serveur Web distant. Pour le moment, seuls les protocoles ``http`` et
360
``https`` sont supportés.
361 f4387960 Aurelien BOMPARD
362
L'option ``app_port.nagios`` permet d'indiquer le port à utiliser pour se
363
connecter, dans le cas où il ne s'agit pas du port standard. Par défaut, le
364
serveur mandataire Nagios utilise le port standard associé au protocole donné
365
par ``app_scheme.nagios`` (80 pour HTTP, 443 pour HTTPS).
366
367
L'option ``app_redirect.nagios`` permet de modifier le comportement du serveur
368
mandataire. Lorsque cette option vaut ``True``, le serveur mandataire agit
369
comme un simple redirecteur de requêtes. Dans ce mode, les options
370
d'authentification liées au serveur mandataire sont ignorées. Ce mode de
371
fonctionnement est utile afin de tester la configuration mais n'est pas
372
recommandé en production.
373
374
Les options ``app_auth_method.nagios``, ``app_auth_username.nagios`` et
375
``app_auth_password.nagios`` permettent d'indiquer la méthode
376
d'authentification, le nom d'utilisateur et le mot de passe pour accéder à
377
l'interface CGI de Nagios. Ces options sont similaires à celles décrites au
378
chapitre .
379
380
Configuration des sessions
381
--------------------------
382
Chaque fois qu'un utilisateur se connecte à VigiBoard, un fichier de session
383
est créé permettant de sauvegarder certaines préférences de cet utilisateur
384
(par exemple, le thème de l'application, la taille de la police de caractères,
385
etc.).
386
387
Ce chapitre décrit les options relatives à la gestion des sessions.
388
389
Emplacement des fichiers de session
390
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
391
Le dossier dans lequel les fichiers de session seront stockés est indiqué par
392
l'option ``cache_dir``.
393
394
Nom du cookie de session
395
^^^^^^^^^^^^^^^^^^^^^^^^
396
Afin d'associer un utilisateur au fichier de session qui lui correspond, un
397
cookie de session est créé sur le navigateur de l'utilisateur. L'option
398
``beaker.session.key`` permet de choisir le nom du cookie créé. Le nom doit
399
être composé de caractères alphanumériques (a-zA-Z0-9) et commencer par une
400
lettre (a-zA-Z).
401
402
.. _confappcfg:
403
404
Options du fichier ``app_cfg.py``
405
---------------------------------
406
Le fichier ``app_cfg.py`` contient des réglages spécifiques à VigiBoard plus
407
complexes à représenter que par l'usage du fichier ``settings.ini``. Ce
408
chapitre décrit ces réglages.
409
410
La modification de ces réglages nécessite une connaissance rudimentaire du
411
langage de programmation Python.
412
413
Choix des colonnes affichées dans VigiBoard
414
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
415
Vous avez la possibilité de configurer les colonnes à afficher dans VigiBoard
416
ainsi que leur ordre. VigiBoard est fourni avec un ensemble de colonnes
417
prédéfinies. La liste complète des colonnes disponibles peut être obtenue à
418
l'aide de la commande suivante::
419
420
    vigilo-plugins vigiboard.columns
421
422
L'option ``base_config['vigiboard_plugins']`` du fichier ``app_cfg.py``
423
contient un tuple des noms des colonnes à afficher (dans leur ordre
424
d'affichage, de gauche à droite sur un navigateur configuré pour un utilisateur
425
français, et de droite à gauche pour un utilisateur hébreu).
426
427 0e86c6f5 Francois POIROTTE
Exemple de configuration possible :
428
429
..  sourcecode:: python
430 f4387960 Aurelien BOMPARD
431 c8929558 Francois POIROTTE
    base_config['vigiboard_plugins'] = (
432 0e86c6f5 Francois POIROTTE
        'details',
433
        'date',
434
        'priority',
435
        'occurrences',
436
        'hostname',
437
        'servicename',
438
        'output',
439
        'hls',
440
        'status',
441 f4387960 Aurelien BOMPARD
    )
442
443
Configuration des liens externes
444
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
445
L'option ``base_config['vigiboard_links.eventdetails']`` contient la liste des
446
liens externes configurés, c'est-à-dire les liens qui seront affichés dans le
447
dialogue de détail d'un événement (figure ).
448
449
La configuration des liens externes est donnée sous la forme d'un tuple de
450 0e86c6f5 Francois POIROTTE
tuples, de la forme ::
451 f4387960 Aurelien BOMPARD
452
    (libellé du lien, URL cible)
453
454
L'URL peut être relative ou absolue. Dans le cas d'une URL relative, celle-ci
455
est relative à l'emplacement de la racine de VigiBoard sur le serveur Web.
456
457
L'URL peut contenir des paramètres qui seront transmis tel quel. De plus, les
458
variables de substitution suivantes sont disponibles :
459
460
- ``%(idcorrevent)d`` est remplacé par l'identifiant (unique) de l'événement
461
  corrélé dans Vigilo,
462
- ``%(host)s`` est remplacé par le nom de l'hôte impacté par l'événement
463
  corrélé,
464
- ``%(service)s`` est remplacé par le nom du service impacté ou ``None`` si
465
  l'événement concernant directement l'hôte,
466
- ``%(message)s`` est remplacé par le message de supervision remonté par
467
  Nagios.
468
469 0e86c6f5 Francois POIROTTE
Exemple de configuration possible :
470
471
..  sourcecode:: python
472 f4387960 Aurelien BOMPARD
473 c8929558 Francois POIROTTE
    base_config['vigiboard_links.eventdetails'] = (
474
        (
475
            u'Détail de l\'hôte dans Nagios',
476
            '/nagios/%(host)s/cgi-bin/status.cgi?host=%(host)s'
477
        ), (
478
            u'Détail de la métrologie',
479
            'http://vigilo.example.com/vigigraph/rpc/fullHostPage?host=%(host)s'
480
        ), (
481
            u'Détail de la sécurité',
482
            'http://security.example.com/?host=%(host)s'
483
        ), (
484
            'Inventaire',
485
            'http://cmdb.example.com/?host=%(host)s'
486
        ), (
487
            'Documentation',
488
            'http://doc.example.com/?q=%(message)s'
489
        ),
490
    )
491 f4387960 Aurelien BOMPARD
492
Cet exemple correspond à la liste de liens suivante :
493 c8929558 Francois POIROTTE
494
.. figure:: img/liens.png
495
496 f4387960 Aurelien BOMPARD
   Liens externes d'un événement
497
498
499
Emplacement du gestionnaire de tickets
500
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
501
Un ticket d'incident peut être associé à un ou plusieurs événements corrélés
502
apparaissant dans VigiBoard. L'adresse du gestionnaire de ticket est
503
paramétrable à l'aide de l'option ``base_config['vigiboard_links.tt']``.
504
505
Il s'agit d'une URL absolue, dans laquelle les variables de substitution
506
suivantes sont disponibles :
507
508
- ``%(idcorrevent)d`` est remplacé par l'identifiant (unique) de l'événement
509
  corrélé dans Vigilo,
510
- ``%(host)s`` est remplacé par le nom de l'hôte impacté par l'événement
511
  corrélé,
512
- ``%(service)s`` est remplacé par le nom du service impacté ou ``None`` si
513
  l'événement concernant directement l'hôte,
514
- ``%(tt)s`` est remplacé par la référence du ticket d'incident, telle que
515
  saisie par un utilisateur.
516
517 0e86c6f5 Francois POIROTTE
Exemple de configuration possible :
518
519
    ..  sourcecode:: python
520 f4387960 Aurelien BOMPARD
521 0e86c6f5 Francois POIROTTE
        base_config['vigiboard_links.tt'] = \
522
            'http://bugs.example.com/?ticket_id=%(tt)s'
523 f4387960 Aurelien BOMPARD
524
525
.. _confmodwsgi:
526
527
Intégration de VigiBoard avec Apache / mod_wsgi
528
-----------------------------------------------
529
530
VigiBoard a été testé avec le serveur libre Apache. L'application utilise en
531
outre le module Apache ``mod_wsgi`` pour communiquer avec le serveur. Ce module
532
implémente un modèle de communication basé sur l'interface WSGI. Le reste de ce
533
chapitre décrit la configuration utilisée pour réaliser cette intégration.
534
535
Fichier de configuration pour Apache
536
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
537
Le fichier de configuration pour l'intégration de VigiBoard dans Apache se
538
trouve généralement dans ``/etc/vigilo/vigiboard/vigiboard.conf`` (un lien
539
symbolique vers ce fichier est créé dans le dossier de configuration d'Apache,
540
généralement dans ``/etc/httpd/conf.d/vigiboard.conf``).
541
542
En général, il n'est pas nécessaire de modifier le contenu de ce fichier. Ce
543
chapitre vise toutefois à fournir quelques informations sur le fonctionnement
544
de ce fichier, afin de permettre d'éventuelles personnalisations de ce
545 c8929558 Francois POIROTTE
comportement.
546 f4387960 Aurelien BOMPARD
547
Ce fichier tente tout d'abord de charger le module ``mod_wsgi`` (directive
548
LoadModule) puis ajoute les directives de configuration nécessaire à Apache
549
pour faire fonctionner VigiBoard, reprises partiellement ci-dessous::
550
551 c8929558 Francois POIROTTE
    WSGIRestrictStdout off
552
    WSGIPassAuthorization on
553
    WSGIDaemonProcess vigiboard user=apache group=apache threads=2
554
    WSGIScriptAlias /vigilo/vigiboard "/etc/vigilo/vigiboard/vigiboard.wsgi"
555 f4387960 Aurelien BOMPARD
556 c8929558 Francois POIROTTE
    KeepAlive Off
557 f4387960 Aurelien BOMPARD
558 c8929558 Francois POIROTTE
    <Directory "/etc/vigilo/vigiboard/">
559
    <Files "vigiboard.wsgi">
560
    WSGIProcessGroup vigiboard
561
    WSGIApplicationGroup %{GLOBAL}
562 f4387960 Aurelien BOMPARD
563 c8929558 Francois POIROTTE
    Order deny,allow
564
    Allow from all
565
    </Files>
566
    </Directory>
567 f4387960 Aurelien BOMPARD
568
L'option ``WSGIRestrictStdout`` est positionnée à ``off`` afin d'éviter
569
qu'Apache ne tue le processus de l'application lorsque des données sont
570
envoyées sur la sortie standard. Ceci permet de récupérer les erreurs critiques
571
pouvant être émises par l'application. Ces erreurs apparaissent alors dans le
572
journal des événements d'Apache (configuré par la directive ``error_log``).
573
574
L'option ``WSGIPassAuthorization`` positionnée à ``on`` indique à Apache et
575
mod_wsgi que les informations d'authentification éventuellement transmises par
576
l'utilisateur doivent être transmises à VigiBoard. En effet, Vigilo utilise son
577
propre mécanisme de gestion de l'authentification et des autorisations (voir la
578
documentation intitulée Vigilo - Authentification et autorisation) et utilise
579
donc ces informations.
580
581
L'option ``WSGIDaemonProcess`` permet de créer un groupe de processus affecté
582
au traitement des requêtes HTTP destinées à VigiBoard. Il permet d'utiliser un
583
nom d'utilisateur et un groupe prédéfini (afin de réduire les privilèges
584
nécessaires), ainsi que le nombre de processus légers à utiliser pour traiter
585
les requêtes (ici, 2).
586
587 0e86c6f5 Francois POIROTTE
L'option ``WSGIScriptAlias`` indique l'emplacement à partir duquel VigiBoard
588
sera accessible (ici, ``http://example.com/vigilo/vigiboard`` si le serveur
589
Apache est configuré pour le domaine ``example.com``) et l'emplacement du script
590
WSGI nécessaire au lancement de l'application (voir le chapitre suivant).
591 f4387960 Aurelien BOMPARD
592
L'option ``KeepAlive`` positionnée à ``off`` est nécessaire afin de contourner
593
un problème dans le module ``mod_wsgi`` d'Apache.
594
595
Les autres options permettent d'exécuter le script WSGI de VigiBoard à l'aide
596
du groupe de processus défini précédemment.
597
598
La liste complète des directives de configuration supportées par le module
599
``mod_wsgi`` d'Apache est disponible `dans la documentation officielle
600
<http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives>`_.
601
602
Script WSGI de VigiBoard
603
^^^^^^^^^^^^^^^^^^^^^^^^
604
Le script WSGI de VigiBoard est un script Python très simple qui a pour but de
605
démarrer l'exécution de VigiBoard à partir du fichier de configuration associé
606
(``/etc/vigilo/vigiboard/settings.ini``).
607
608
Vous n'avez généralement pas besoin de modifier son contenu, sauf
609
éventuellement pour adapter l'emplacement du fichier de configuration en
610
fonction de votre installation.
611
612
613
614
Annexes
615
=======
616
617 003efe53 Francois POIROTTE
.. include:: ../../turbogears/doc/glossaire.rst
618 f4387960 Aurelien BOMPARD
619
620
.. vim: set tw=79 :