Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

vigiboard / doc / admin.rst @ 0e86c6f5

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