Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

vigigraph / doc / admin.rst @ c180a9f3

History | View | Annotate | Download (21.3 KB)

1 f6e5b0c6 Francois POIROTTE
**********************
2
Guide d'administration
3
**********************
4
5
6
Installation
7
============
8
9
Prérequis logiciels
10
-------------------
11
Afin de pouvoir faire fonctionner VigiGraph, l'installation préalable
12
des logiciels suivants est requise :
13
14
- python (>= 2.5), sur la machine où VigiGraph est installé
15
- Apache (>= 2.2.0), sur la machine où VigiGraph est installé
16
- apache-mod_wsgi (>= 2.3), sur la machine où VigiGraph est installé
17
- postgresql-server (version 8.3), éventuellement sur une machine distante
18
19
Reportez-vous aux manuels de ces différents logiciels pour savoir
20
comment procéder à leur installation sur votre machine.
21
VigiGraph requiert également la présence de plusieurs dépendances Python.
22
Ces dépendances seront automatiquement installées en même temps que le
23
paquet de VigiGraph.
24
25
Installation du paquet RPM
26
--------------------------
27
L'installation de l'application se fait en installant simplement
28
le paquet RPM « vigilo-vigigraph ». La procédure exacte d'installation
29
dépend du gestionnaire de paquets utilisé.
30
Les instructions suivantes décrivent la procédure pour les gestionnaires
31
de paquets RPM les plus fréquemment rencontrés.
32
33
Installation à l'aide de urpmi ::
34
35
    urpmi vigilo-vigigraph
36
37
Installation à l'aide de yum ::
38
39
    yum install vigilo-vigigraph
40
41
42
Démarrage et arrêt de VigiGraph
43
===============================
44
VigiGraph fonctionne comme un site web standard. À ce titre, il n'est pas
45
nécessaire d'exécuter une commande spécifique pour démarrer VigiGraph,
46
dès lors que le serveur web qui l'héberge a été lancé, à l'aide de la
47
commande ::
48
49
    service httpd start
50
51
De la même manière, il n'y a pas de commande spécifique pour arrêter VigiGraph.
52
L'application est arrêtée en même temps que le serveur web,
53
à l'aide de la commande :
54
service httpd stop
55
56
57
Configuration de VigiGraph
58
==========================
59
La configuration initialement fournie avec VigiGraph est très rudimentaire.
60
Elle est décomposée en deux fichiers :
61
62
-   le fichier « settings.ini » d'une part, qui contient la majorité
63
    des options de configuration ;
64
-   et le fichier « app_cfg.py » qui contient des options de configuration
65
    plus complexes, nécessitant l'utilisation d'un langage
66
    plus complet (Python).
67
68
Ce chapitre a pour but de présenter les différentes options de configuration
69
disponibles afin de configurer VigiGraph en fonction de vos besoins.
70
Les chapitres  à  reprennent l'ordre de la configuration utilisé dans
71
le fichier « settings.ini » de l'application. Toutes les options de
72
configuration citées ici se trouvent sous la section [app:main] du
73
fichier « settings.ini ».
74
Enfin, le chapitre  donne des informations quant à la méthode utilisée
75
pour intégrer VigiGraph sur un serveur web de type Apache, grâce au
76
module mod_wsgi.
77
La configuration de la journalisation des événements se fait également
78
au travers du fichier « settings.ini ». Néanmoins, comme ce procédé est commun
79
aux différents composants de Vigilo, celui-ci fait l'objet d'une documentation
80
séparée dans le document *Vigilo – Journaux d'événements*.
81
82
Configuration de la base de données
83
-----------------------------------
84
Pour fonctionner, VigiGraph nécessite qu'une base de données soit accessible.
85
Ce chapitre décrit les options de configuration se rapportant à la base de
86
données.
87
88
Connexion à la base de données
89
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
90
La configuration de la connexion à la base de base de données se fait
91
en modifiant la valeur de la clé « sqlalchemy.url » sous la section [app:main].
92
Cette clé contient une URL qui contient tous les paramètres nécessaires
93
pour pouvoir se connecter à la base de données.
94
Le format de cette URL est le suivant ::
95
96
    sgbd://nom_utilisateur:mot_de_passe@adresse_serveur:port_serveur/nom_base_de_donnees
97
98
Le champ « :port_serveur » est optionnel et peut être omis si vous utilisez
99
le port par défaut d'installation du SGBD choisi.
100
101
Par exemple, voici la valeur correspondant à une installation mono-poste
102
par défaut de VigiGraph :
103
104 ea2115ec Thomas BURGUIERE
    postgresql://vigilo:vigilo@localhost/vigilo
105 f6e5b0c6 Francois POIROTTE
106
..  warning::
107
    À l'heure actuelle, seul PostgreSQL a fait l'objet de tests intensifs.
108
    D'autres SGBD peuvent également fonctionner, mais aucun support ne sera
109
    fourni pour ces SGBD.
110
111
112
Optimisation de la couche d'abstraction
113
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
114
L'option « sqlalchemy.echo » permet de forcer l'affichage des requêtes SQL.
115
En production, cette valeur doit être positionnée à « False ».
116
Elle est redondante avec la configuration des journaux d'événements
117
(voir le document intitulé Vigilo - Journaux d'événements pour plus
118
d'information).
119
120
L'option « sqlalchemy.echo_pool » permet d'activer le mode de débogage
121
du gestionnaire de connexions à la base de données. De même que pour
122
l'option « sqlalchemy.echo » ci-dessus, elle doit être positionnée
123
à « False » en production.
124
125
L'option « sqlalchemy.pool_recycle » permet de définir la durée
126
après laquelle une connexion est « recyclée » (recréée).
127
128
L'option « sqlalchemy.pool_size » permet de configurer le nombre
129
de connexions gérées simultanément par le gestionnaire de connexions
130
à la base de données. La valeur recommandée est 20.
131
132
L'option « sqlalchemy.max_overflow » permet de limiter le nombre maximal
133
de connexions simultanées à la base de données. La limite correspond
134
à la somme de « sqlalchemy.pool_size » et « sqlalchemy.max_overflow ».
135
Une valeur de 100 convient généralement.
136
137
La documentation d'API de SQLAlchemy (la bibliothèque d'abstraction
138
de la base de données utilisée par Vigilo) donne quelques informations
139
supplémentaires sur le rôle de ces différents paramètres.
140
Cette documentation est accessible à l'adresse
141
http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/pooling.html.
142
143
Configuration des éléments de sécurité
144
--------------------------------------
145
Ce chapitre décrit les options relatives à la gestion des données
146
de sécurité (clés de chiffrements, etc.) utilisées par VigiGraph.
147
148
Choix de la méthode de hachage des mots de passe
149
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
150
Lorsque l'authentification de Vigilo se base sur les comptes contenus dans
151
la base de données, les mots de passe des utilisateurs sont stockés sous
152
forme hachée afin de rendre plus difficile le cassage de ces mots de passe.
153
154
La méthode de hachage sélectionnée peut être configurée en modifiant
155
la valeur de la clé « password_hashing_function » sous la section [app:main].
156
Les méthodes de hachage disponibles sont variées.
157
158
Les fonctions de hachage suivantes sont notamment disponibles :
159
160
- md5
161
- sha1
162
- sha224
163
- sha256
164
- sha384
165
- sha512
166
167
Des fonctions supplémentaires peuvent être disponibles en fonction
168
de votre installation de Python.
169
170
..  warning::
171
    En cas d'absence d'une valeur pour cette option ou si la fonction de
172
    hachage indiquée n'existe pas, les mots de passe sont stockés en clair.
173
    Vérifiez donc la valeur indiquée.
174
175
..  warning::
176
    Cette option ne doit être modifiée qu'au moment de l'installation.
177
    Si vous modifiez la méthode utilisée ultérieurement, les comptes
178
    précédemment enregistrés ne seront plus utilisables. En particulier,
179
    le compte d'administration créé par défaut.
180
181
Clé de chiffrement / déchiffrement des sessions
182
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
183
Afin de ne pas dévoiler certains paramètres associés à un utilisateur,
184
le fichier de session qui contient ces paramètres est chiffré à l'aide
185
d'une clé symétrique, utilisée à la fois pour le chiffrement
186
et le déchiffrement des sessions de tous les utilisateurs de VigiGraph.
187
188
L'option « beaker.session.secret » permet de choisir la clé utilisée
189
pour chiffrer et déchiffrer le contenu des sessions. Cette clé peut être
190
la même que celle configurée pour le chiffrement / déchiffrement
191
des cookies (voir le chapitre ), mais ceci est déconseillé
192
afin d'éviter que la compromission de l'une des deux clés
193
n'entraine la compromission de l'autre.
194
195
De la même manière, vous pouvez configurer les autres interfaces graphiques
196
de Vigilo pour utiliser les mêmes clés, ou opter de préférence pour des clés
197
différentes (là encore, pour éviter la propagation d'une compromission).
198
199
Clé de chiffrement / déchiffrement des cookies
200
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
201
L'association entre un utilisateur et sa session se fait à l'aide d'un cookie
202
de session enregistré sur le navigateur de l'utilisateur.
203
204
De la même manière que les sessions sont chiffrées afin de garantir
205
la confidentialité de leur contenu, le cookie de session est également
206
chiffré afin de protéger son contenu.
207
208
L'option « sa_auth.cookie_secret » permet de choisir la clé utilisée
209
pour chiffrer et déchiffrer le contenu du cookie. Cette clé peut être la même
210
que celle configurée pour le chiffrement / déchiffrement des sessions
211
(voir le chapitre ), mais ceci est déconseillé afin d'éviter que la
212
compromission de l'une des deux clés n'entraine la compromission de l'autre.
213
214
De la même manière, vous pouvez configurer les autres interfaces graphiques
215
de Vigilo pour utiliser les mêmes clés, ou opter de préférence pour des
216
clés différentes (là encore, pour éviter la propagation d'une compromission).
217
218
Utilisation d'un mécanisme d'authentification externe
219
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
220
Pour utiliser un mécanisme d'authentification externe (par exemple : Kerberos),
221
définissez la clé « external_auth » à « True » sous la section [app:main].
222
Dans ce mode, Vigilo ne tente pas d'authentifier l'utilisateur par rapport
223
aux comptes contenus dans sa base de données, mais utilise uniquement
224
le nom d'utilisateur transmis par la source d'authentification externe.
225
226
Le nom d'utilisateur peut être transmis de plusieurs manières,
227
par exemple sous la forme d'une variable d'environnement.
228
229
..  warning::
230
    N'utilisez ce mode de fonctionnement que si vous comprenez bien les
231
    risques associés. En particulier, le fait qu'aucun mot de passe ne sera
232
    demandé à l'utilisateur pour confirmer son identité.
233
234
Emplacement de la configuration des authentifications / autorisations
235
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
236
La directive « auth.config » de la section [app:main] permet d'indiquer
237
l'emplacement du fichier contenant la configuration de la couche
238
d'authentification / autorisation de Vigilo.
239
240
Il n'est généralement pas nécessaire de modifier cette valeur.
241
La configuration de cette couche d'abstraction est détaillée
242
dans le document *Vigilo – Authentification et autorisation*.
243
244
Configuration de l'interface
245
----------------------------
246
Ce chapitre décrit les options qui modifient l'apparence de l'interface
247
graphique de VigiGraph.
248
249
Langue par défaut de VigiGraph
250
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
251
Au sein de son interface, VigiGraph tente de s'adapter au navigateur
252
de l'utilisateur pour afficher les pages dans sa langue.
253
254
Toutefois, si l'utilisateur n'a pas paramétré sa langue ou bien si
255
aucune traduction n'est disponible qui soit en accord avec les paramètres
256
du navigateur de l'utilisateur, une langue par défaut est utilisée (dans
257
l'installation par défaut de VigiGraph, cette langue est le Français « fr »).
258
259
Vous pouvez modifier la langue utilisée par défaut en changeant la valeur
260
de la clé « lang » sous la section [app:main]. La valeur de cette clé
261
est le code de la langue à utiliser, sur deux caractères et en minuscules
262
(format ISO 3166-1 « alpha 2 »). Exemples de codes valides : fr, en, de, …
263
264
La liste complète des codes possibles est disponible sur
265
http://fr.wikipedia.org/wiki/ISO_3166-1. La langue retenue
266
doit être disponible parmi les traductions fournies avec VigiGraph.
267
268
Emplacement de la documentation en ligne
269
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
270
Il est possible d'ajouter un lien dans l'interface graphique qui redirige
271
l'utilisateur vers la documentation en ligne de l'application.
272
Ceci se fait en assignant une URL à l'option « help_link ».
273
274
Si cette option est renseignée, une icône en forme de bouée de sauvetage
275
.. image:: img/help_icon.png
276
277
apparaît dans l'interface graphique qui permet à l'utilisateur d'accéder
278
à l'URL indiquée.
279
280
Délai de rafraîchissement automatique
281
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
282
Les veilleurs ont la possibilité d'activer un rafraîchissement automatique
283
des graphes. L'option « refresh_delay » permet de choisir le délai,
284
en secondes, entre deux rafraîchissements automatiques d'un graphe.
285
286
Configuration du lien d'accueil
287
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
288 8a5d38ed Francois POIROTTE
Vous avez la possibilité de rediriger l'utilisateur vers une page de votre
289
choix lorsque celui-ci clique sur le logo en forme de maison |imghome|
290 f6e5b0c6 Francois POIROTTE
dans l'interface graphique de VigiGraph.
291 8a5d38ed Francois POIROTTE
Ceci se fait en modifiant l'URL associée à l'option ``home_link``.
292
293
.. |imghome| image:: img/home.png
294 f6e5b0c6 Francois POIROTTE
295
Configuration des serveurs mandataires
296
--------------------------------------
297
VigiGraph permet d'accéder à la page d'état Nagios d'un hôte ou d'un service,
298
et ce malgré le fait que ces hôtes/services sont supervisés par des serveurs
299
Nagios différents. De même, il est capable d'afficher des graphes de métrologie
300
en interrogeant le serveur VigiRRD qui gère un hôte donné.
301
Ceci est rendu possible par l'existence d'un serveur mandataire (proxy) au sein
302
de Vigilo qui relaye les requêtes au serveur Nagios ou VigiRRD adéquat.
303
Le chapitre  présente tout d'abord les options communes à tous les types
304
de serveurs mandataires de Vigilo. Puis, le chapitre  détaille les options
305
spécifiques au serveur mandataire pour Nagios intégré dans VigiGraph.
306
Enfin, le chapitre  détaille les options spécifiques au serveur mandataire
307
pour VigiRRD, dont la configuration est très proche de celle du serveur
308
mandataire pour Nagios.
309
310
Options communes à tous les serveurs mandataires de Vigilo
311
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
312
Les options communes à tous les serveurs mandataires de Vigilo
313
concernent l'authentification auprès d'un serveur mandataire intermédiaire.
314
315
Elles sont au nombre de trois :
316
317
-   « app_proxy_auth_method » indique la méthode d'authentification
318
    à utiliser et peut valoir « basic » ou « digest » ,
319
320
-   « app_proxy_auth_username » indique le nom d'utilisateur à utiliser
321
    pour se connecter au serveur mandataire intermédiaire ,
322
323
-   « app_proxy_auth_password » indique le mot de passe associé
324
    à ce nom d'utilisateur.
325
326
Ces trois options doivent être renseignées pour que l'authentification
327
auprès du serveur mandataire intermédiaire soit effective.
328
329
Options spécifiques au serveur mandataire Nagios
330
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
331
L'option « app_path.nagios » indique l'emplacement de l'installation
332
de Nagios sur le serveur web distant, à partir de la racine du serveur web.
333
Généralement, il s'agit de « /nagios/ » (emplacement par défaut lors
334
d'une nouvelle installation de l'interface graphique CGI de Nagios).
335
336
L'option « app_scheme.nagios » indique le protocole à utiliser
337
pour communiquer avec le serveur web distant.
338
Les protocoles supportés sont « http » et « https ».
339
340
L'option « app_port.nagios » permet d'indiquer le port à utiliser
341
pour se connecter, dans le cas où il ne s'agit pas du port standard.
342
Par défaut, le serveur mandataire Nagios utilise le port standard associé
343
au protocole donné par « app_scheme.nagios » (80 pour HTTP, 443 pour HTTPS).
344
345
L'option « app_redirect.nagios » permet de modifier le comportement
346
du serveur mandataire. Lorsque cette option vaut « True »,
347
le serveur mandataire agit comme un simple redirecteur de requêtes.
348
Dans ce mode, les options d'authentification liées au serveur mandataire
349
sont ignorées. Ce mode de fonctionnement est utile afin de tester
350
la configuration mais n'est pas recommandé en production.
351
352
Les options « app_auth_method.nagios », « app_auth_username.nagios »
353
et « app_auth_password.nagios » permettent d'indiquer la méthode
354
d'authentification, le nom d'utilisateur et le mot de passe pour accéder
355
à l'interface CGI de Nagios.
356
Ces options sont similaires à celles décrites au chapitre .
357
358
Options spécifiques au serveur mandataire VigiRRD
359
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
360
Les options de configuration pour le serveur mandataire VigiRRD
361
sont exactement les mêmes que pour le serveur mandataire Nagios
362
présenté au chapitre , en remplaçant simplement le suffixe « .nagios »
363
par « .vigirrd ».
364
365
Configuration des sessions
366
--------------------------
367
Chaque fois qu'un utilisateur se connecte à VigiGraph, un fichier de session
368
est créé permettant de sauvegarder certaines préférences de cet utilisateur
369
(par exemple, le thème de l'application, la taille de la police de caractères,
370
etc.). Ce chapitre décrit les options relatives à la gestion des sessions.
371
372
Emplacement des fichiers de session
373
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
374
Le dossier dans lequel les fichiers de session seront stockés est indiqué
375
par l'option « cache_dir ».
376
377
Nom du cookie de session
378
^^^^^^^^^^^^^^^^^^^^^^^^
379
Afin d'associer un utilisateur au fichier de session qui lui correspond,
380
un cookie de session est créé sur le navigateur de l'utilisateur.
381
382
L'option « beaker.session.key » permet de choisir le nom du cookie créé.
383
Le nom doit être composé de caractères alphanumériques (a-zA-Z0-9)
384
et commencer par une lettre (a-zA-Z).
385
386
Intégration de VigiGraph avec Apache / mod_wsgi
387
===============================================
388
VigiGraph a été testé avec le serveur libre Apache. L'application utilise
389
en outre le module Apache « mod_wsgi » pour communiquer avec le serveur.
390
Ce module implémente un modèle de communication basé sur l'interface WSGI.
391
Le reste de ce chapitre décrit la configuration utilisée pour réaliser
392
cette intégration.
393
394
Fichier de configuration pour Apache
395
------------------------------------
396
Le fichier de configuration pour l'intégration de VigiGraph dans Apache
397
se trouve généralement dans /etc/vigilo/vigigraph/vigigraph.conf
398
(un lien symbolique vers ce fichier est créé dans le dossier de configuration
399
d'Apache, généralement dans /etc/httpd/conf.d/vigigraph.conf).
400
401
En général, il n'est pas nécessaire de modifier le contenu de ce fichier.
402
Ce chapitre vise toutefois à fournir quelques informations sur
403
le fonctionnement de ce fichier, afin de permettre d'éventuelles
404
personnalisations de ce comportement.
405
406
Ce fichier tente tout d'abord de charger le module « mod_wsgi »
407
(directive LoadModule) puis ajoute les directives de configuration
408
nécessaires à Apache pour faire fonctionner VigiGraph,
409
reprises partiellement ci-dessous ::
410
411
    WSGIRestrictStdout off
412
    WSGIPassAuthorization on
413
    WSGIDaemonProcess vigigraph user=apache group=apache threads=2
414
    WSGIScriptAlias /vigilo/vigigraph "/etc/vigilo/vigigraph/vigigraph.wsgi"
415
416
    KeepAlive Off
417
418
    <Directory "/etc/vigilo/vigigraph/">
419
    <Files "vigigraph.wsgi">
420
    WSGIProcessGroup vigigraph
421
    WSGIApplicationGroup %{GLOBAL}
422
423
    Order deny,allow
424
    Allow from all
425
    </Files>
426
    </Directory>
427
428
L'option WSGIRestrictStdout est positionnée à « off » afin d'éviter
429
qu'Apache ne tue le processus de l'application lorsque des données
430
sont envoyées sur la sortie standard. Ceci permet de récupérer
431
les erreurs critiques pouvant être émises par l'application.
432
Ces erreurs apparaissent alors dans le journal des événements
433
d'Apache (configuré par la directive error_log).
434
435
L'option WSGIPassAuthorization positionnée à « on » indique à Apache
436
et mod_wsgi que les informations d'authentification éventuellement
437
transmises par l'utilisateur doivent être transmises à VigiGraph.
438
En effet, Vigilo utilise son propre mécanisme de gestion de
439
l'authentification et des autorisations (voir la documentation
440
intitulée Vigilo - Authentification et autorisation) et utilise
441
donc ces informations.
442
443
L'option WSGIDaemonProcess permet de créer un groupe de processus
444
affecté au traitement des requêtes HTTP destinées à VigiGraph.
445
Il permet d'utiliser un nom d'utilisateur et un groupe prédéfini
446
(afin de réduire les privilèges nécessaires), ainsi que le nombre
447
de processus légers à utiliser pour traiter les requêtes (ici, 2).
448
449
L'option WSGIScriptAlias indique l'emplacement à partir duquel
450
VigiGraph sera accessible (ici, http://example.com/vigilo/vigigraph
451
si le serveur Apache est configuré pour le domaine « example.com »)
452
et l'emplacement du script WSGI nécessaire au lancement de l'application
453
(voir le chapitre ).
454
455
L'option KeepAlive positionnée à « off » est nécessaire afin de contourner
456
un problème dans le module « mod_wsgi » d'Apache.
457
458
Les autres options permettent d'exécuter le script WSGI de VigiGraph
459
à l'aide du groupe de processus défini précédemment.
460
461
La liste complète des directives de configuration supportées
462
par le module « mod_wsgi » d'Apache est disponible à l'adresse
463
http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives.
464
465
Script WSGI de VigiGraph
466
------------------------
467
Le script WSGI de VigiGraph est un script Python très simple qui a pour but
468
de démarrer l'exécution de VigiGraph à partir du fichier de configuration
469
associé (/etc/vigilo/vigigraph/settings.ini).
470
471
Vous n'avez généralement pas besoin de modifier son contenu,
472
sauf éventuellement pour adapter l'emplacement du fichier de configuration
473
en fonction de votre installation.
474
475
Annexes
476
=======
477
478
.. include:: ../../turbogears/doc/glossaire.rst
479
480
.. vim: set tw=79 :