vigiboard / doc / admin.rst @ d227db89
History | View | Annotate | Download (28 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 | 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 | Emplacement de la configuration d'authentification/autorisation |
||
234 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
235 | La directive ``auth.config`` de la section ``[app:main]`` permet d'indiquer |
||
236 | l'emplacement du fichier contenant la configuration de la couche |
||
237 | d'authentification/autorisation de Vigilo. |
||
238 | |||
239 | Il n'est généralement pas nécessaire de modifier cette valeur. La configuration |
||
240 | de cette couche d'abstraction est détaillée dans le document *Vigilo - |
||
241 | Authentification et autorisation*. |
||
242 | |||
243 | Configuration de l'interface |
||
244 | ---------------------------- |
||
245 | |||
246 | Ce chapitre décrit les options qui modifient l'apparence de l'interface |
||
247 | graphique de VigiBoard. |
||
248 | |||
249 | Langue par défaut de VigiBoard |
||
250 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
251 | Au sein de son interface, VigiBoard tente de s'adapter au navigateur de |
||
252 | l'utilisateur pour afficher les pages dans sa langue. Toutefois, si |
||
253 | l'utilisateur n'a pas paramétré sa langue ou bien si aucune traduction n'est |
||
254 | disponible qui soit en accord avec les paramètres du navigateur de |
||
255 | l'utilisateur, une langue par défaut est utilisée (dans l'installation par |
||
256 | défaut de VigiBoard, cette langue est le Français ``fr``). |
||
257 | |||
258 | Vous pouvez modifier la langue utilisée par défaut en changeant la valeur de la |
||
259 | clé ``lang`` sous la section ``[app:main]``. La valeur de cette clé est le code |
||
260 | de la langue à utiliser, sur deux caractères et en minuscules (format ISO |
||
261 | 3166-1 ``alpha 2``). Exemples de codes valides : fr, en, de, ... |
||
262 | |||
263 | La liste complète des codes possibles est disponible sur |
||
264 | http://fr.wikipedia.org/wiki/ISO_3166-1. La langue retenue doit être disponible |
||
265 | parmi les traductions fournies avec VigiBoard. |
||
266 | |||
267 | Emplacement de la documentation en ligne |
||
268 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
269 | Il est possible d'ajouter un lien dans l'interface graphique qui redirige |
||
270 | l'utilisateur vers la documentation en ligne de l'application. Ceci se fait en |
||
271 | assignant une URL à l'option ``help_link``. |
||
272 | |||
273 | Si cette option est renseignée, une icône en forme de bouée de sauvetage |
||
274 | |imghelp| apparaît dans l'interface graphique qui permet à l'utilisateur |
||
275 | d'accéder à l'URL indiquée. |
||
276 | |||
277 | .. |imghelp| image:: help.png |
||
278 | |||
279 | Délai de rafraîchissement automatique |
||
280 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
281 | Le bac à événements de VigiBoard peut être actualisé automatiquement à |
||
282 | intervalle régulier afin de donner une vue à jour de l'état du parc aux |
||
283 | veilleurs. L'option ``refresh_delay`` permet de choisir le délai, en secondes, |
||
284 | entre deux rafraîchissements automatiques de la page. |
||
285 | |||
286 | NOTE : Les veilleurs ont la possibilité de désactiver le rafraîchissement |
||
287 | automatique durant leur session. Dans tous les cas, si une boîte de dialogue de |
||
288 | VigiBoard est affichée à l'écran, le rafraîchissement automatique est mis en |
||
289 | pause afin de ne pas perturber les opérations en cours. |
||
290 | |||
291 | État initial du rafraîchissement automatique |
||
292 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
293 | Vous avez la possibilité d'activer par défaut le rafraîchissement automatique |
||
294 | du bac à événements pour les veilleurs, en positionnant l'option |
||
295 | ``refresh_enabled`` à ``True``. |
||
296 | |||
297 | NOTE : Les veilleurs ont la possibilité de désactiver le rafraîchissement |
||
298 | automatique durant leur session. Leur choix (rafraîchissement automatique actif |
||
299 | ou non) est conservé en session durant un certain temps. |
||
300 | |||
301 | Configuration du nombre d'événements affichés par page |
||
302 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
303 | Le nombre d'événements affichés par page peut être configuré en changeant la |
||
304 | valeur de la clé ``vigiboard_items_per_page`` sous la section ``[app:main]``. |
||
305 | |||
306 | Configuration du lien d'accueil |
||
307 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
308 | Vous avez la possibilité de rediriger l'utilisateur vers une page de votre |
||
309 | choix lorsque celui-ci clique sur le logo de Vigilo |imghome| dans l'interface |
||
310 | graphique de VigiBoard. Ceci se fait en modifiant l'URL donnée par l'option |
||
311 | ``logo_link``. |
||
312 | |||
313 | .. |imghome| image:: home.png |
||
314 | |||
315 | Ordre de tri de la priorité des événements |
||
316 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
317 | VigiBoard prend en compte la priorité des événements pour les triers dans son |
||
318 | interface graphique. Néanmoins, chaque système à sa propre définition de la |
||
319 | priorité d'un événement. Généralement, plus la priorité d'un événement est |
||
320 | élevée, plus cet événement doit être traité en premier. Cependant il se peut |
||
321 | que cet ordre de tri soit inversé sur votre parc (c'est-à-dire qu'un événement |
||
322 | très prioritaire est représenté par une priorité dont la valeur est très |
||
323 | basse). |
||
324 | |||
325 | L'ordre de tri de la priorité est défini grâce à la clé de configuration |
||
326 | ``vigiboard_priority_order``, sous la section ``[app:main]``. Cette clé accepte |
||
327 | deux valeurs : ``asc`` (nombre peu élevé = priorité importante) ou ``desc`` |
||
328 | (nombre élevé = priorité importante). |
||
329 | |||
330 | Choix du critère de tri prioritaire |
||
331 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
332 | En fonction de votre parc informatique, il peut être intéressant de trier les |
||
333 | événements reçus dans le bac à événements par état Nagios puis par horodatage, |
||
334 | ou bien l'inverse. |
||
335 | |||
336 | L'option ``state_first`` est un booléen qui permet de choisir si le tri se fait |
||
337 | d'abord par l'état (``True``), ou d'abord par l'horodatage (``False``). |
||
338 | |||
339 | .. _confproxy: |
||
340 | |||
341 | Configuration du serveur mandataire |
||
342 | ----------------------------------- |
||
343 | VigiBoard permet d'accéder à la page d'état Nagios d'un hôte ou d'un service, |
||
344 | et ce malgré le fait que ces hôtes/services sont supervisés par des serveurs |
||
345 | Nagios différents. Ceci est rendu possible par l'existence d'un serveur |
||
346 | mandataire (proxy) qui relaye les requêtes au serveur Nagios concerné. |
||
347 | |||
348 | Le chapitre présente tout d'abord les options communes à tous les types de |
||
349 | serveurs mandataires de Vigilo. Puis, le chapitre détaille les options |
||
350 | spécifiques au serveur mandataire pour Nagios intégré à VigiBoard. |
||
351 | |||
352 | Options communes à tous les serveurs mandataires de Vigilo |
||
353 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
354 | Les options communes à tous les serveurs mandataires de Vigilo concernent |
||
355 | l'authentification auprès d'un serveur mandataire intermédiaire. Elles sont au |
||
356 | nombre de trois : |
||
357 | |||
358 | - ``app_proxy_auth_method`` indique la méthode d'authentification à utiliser et |
||
359 | peut valoir ``basic`` ou ``digest`` , |
||
360 | - ``app_proxy_auth_username`` indique le nom d'utilisateur à utiliser pour se |
||
361 | connecter au serveur mandataire intermédiaire , |
||
362 | - ``app_proxy_auth_password`` indique le mot de passe associé à ce nom |
||
363 | d'utilisateur. |
||
364 | |||
365 | Ces trois options doivent être renseignées pour que l'authentification auprès |
||
366 | du serveur mandataire intermédiaire soit effective. |
||
367 | |||
368 | Options spécifiques au serveur mandataire Nagios |
||
369 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
370 | L'option ``app_path.nagios`` indique l'emplacement de l'installation de Nagios |
||
371 | sur le serveur Web distant, à partir de la racine du serveur Web. Généralement, |
||
372 | il s'agit de ``/nagios/`` (emplacement par défaut lors d'une nouvelle |
||
373 | installation de l'interface graphique CGI de Nagios). |
||
374 | |||
375 | L'option ``app_scheme.nagios`` indique le protocole à utiliser pour communiquer |
||
376 | avec le serveur Web distant. Les protocoles supportés sont ``http`` et |
||
377 | ``https``. |
||
378 | |||
379 | L'option ``app_port.nagios`` permet d'indiquer le port à utiliser pour se |
||
380 | connecter, dans le cas où il ne s'agit pas du port standard. Par défaut, le |
||
381 | serveur mandataire Nagios utilise le port standard associé au protocole donné |
||
382 | par ``app_scheme.nagios`` (80 pour HTTP, 443 pour HTTPS). |
||
383 | |||
384 | L'option ``app_redirect.nagios`` permet de modifier le comportement du serveur |
||
385 | mandataire. Lorsque cette option vaut ``True``, le serveur mandataire agit |
||
386 | comme un simple redirecteur de requêtes. Dans ce mode, les options |
||
387 | d'authentification liées au serveur mandataire sont ignorées. Ce mode de |
||
388 | fonctionnement est utile afin de tester la configuration mais n'est pas |
||
389 | recommandé en production. |
||
390 | |||
391 | Les options ``app_auth_method.nagios``, ``app_auth_username.nagios`` et |
||
392 | ``app_auth_password.nagios`` permettent d'indiquer la méthode |
||
393 | d'authentification, le nom d'utilisateur et le mot de passe pour accéder à |
||
394 | l'interface CGI de Nagios. Ces options sont similaires à celles décrites au |
||
395 | chapitre . |
||
396 | |||
397 | Configuration des sessions |
||
398 | -------------------------- |
||
399 | Chaque fois qu'un utilisateur se connecte à VigiBoard, un fichier de session |
||
400 | est créé permettant de sauvegarder certaines préférences de cet utilisateur |
||
401 | (par exemple, le thème de l'application, la taille de la police de caractères, |
||
402 | etc.). |
||
403 | |||
404 | Ce chapitre décrit les options relatives à la gestion des sessions. |
||
405 | |||
406 | Emplacement des fichiers de session |
||
407 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
408 | Le dossier dans lequel les fichiers de session seront stockés est indiqué par |
||
409 | l'option ``cache_dir``. |
||
410 | |||
411 | Nom du cookie de session |
||
412 | ^^^^^^^^^^^^^^^^^^^^^^^^ |
||
413 | Afin d'associer un utilisateur au fichier de session qui lui correspond, un |
||
414 | cookie de session est créé sur le navigateur de l'utilisateur. L'option |
||
415 | ``beaker.session.key`` permet de choisir le nom du cookie créé. Le nom doit |
||
416 | être composé de caractères alphanumériques (a-zA-Z0-9) et commencer par une |
||
417 | lettre (a-zA-Z). |
||
418 | |||
419 | .. _confappcfg: |
||
420 | |||
421 | Options du fichier ``app_cfg.py`` |
||
422 | --------------------------------- |
||
423 | Le fichier ``app_cfg.py`` contient des réglages spécifiques à VigiBoard plus |
||
424 | complexes à représenter que par l'usage du fichier ``settings.ini``. Ce |
||
425 | chapitre décrit ces réglages. |
||
426 | |||
427 | La modification de ces réglages nécessite une connaissance rudimentaire du |
||
428 | langage de programmation Python. |
||
429 | |||
430 | Choix des colonnes affichées dans VigiBoard |
||
431 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
432 | Vous avez la possibilité de configurer les colonnes à afficher dans VigiBoard |
||
433 | ainsi que leur ordre. VigiBoard est fourni avec un ensemble de colonnes |
||
434 | prédéfinies. La liste complète des colonnes disponibles peut être obtenue à |
||
435 | l'aide de la commande suivante:: |
||
436 | |||
437 | vigilo-plugins vigiboard.columns |
||
438 | |||
439 | L'option ``base_config['vigiboard_plugins']`` du fichier ``app_cfg.py`` |
||
440 | contient un tuple des noms des colonnes à afficher (dans leur ordre |
||
441 | d'affichage, de gauche à droite sur un navigateur configuré pour un utilisateur |
||
442 | français, et de droite à gauche pour un utilisateur hébreu). |
||
443 | |||
444 | Exemple de configuration possible:: |
||
445 | |||
446 | base_config['vigiboard_plugins'] = ( |
||
447 | 'details', |
||
448 | 'date', |
||
449 | 'priority', |
||
450 | 'occurrences', |
||
451 | 'hostname', |
||
452 | 'servicename', |
||
453 | 'output', |
||
454 | 'hls', |
||
455 | 'status', |
||
456 | ) |
||
457 | |||
458 | Configuration des liens externes |
||
459 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
460 | L'option ``base_config['vigiboard_links.eventdetails']`` contient la liste des |
||
461 | liens externes configurés, c'est-à-dire les liens qui seront affichés dans le |
||
462 | dialogue de détail d'un événement (figure ). |
||
463 | |||
464 | La configuration des liens externes est donnée sous la forme d'un tuple de |
||
465 | tuples, de la forme:: |
||
466 | |||
467 | (libellé du lien, URL cible) |
||
468 | |||
469 | L'URL peut être relative ou absolue. Dans le cas d'une URL relative, celle-ci |
||
470 | est relative à l'emplacement de la racine de VigiBoard sur le serveur Web. |
||
471 | |||
472 | L'URL peut contenir des paramètres qui seront transmis tel quel. De plus, les |
||
473 | variables de substitution suivantes sont disponibles : |
||
474 | |||
475 | - ``%(idcorrevent)d`` est remplacé par l'identifiant (unique) de l'événement |
||
476 | corrélé dans Vigilo, |
||
477 | - ``%(host)s`` est remplacé par le nom de l'hôte impacté par l'événement |
||
478 | corrélé, |
||
479 | - ``%(service)s`` est remplacé par le nom du service impacté ou ``None`` si |
||
480 | l'événement concernant directement l'hôte, |
||
481 | - ``%(message)s`` est remplacé par le message de supervision remonté par |
||
482 | Nagios. |
||
483 | |||
484 | Exemple de configuration possible:: |
||
485 | |||
486 | base_config['vigiboard_links.eventdetails'] = ( |
||
487 | ( |
||
488 | u'Détail de l\'hôte dans Nagios', |
||
489 | '/nagios/%(host)s/cgi-bin/status.cgi?host=%(host)s' |
||
490 | ), ( |
||
491 | u'Détail de la métrologie', |
||
492 | 'http://vigilo.example.com/vigigraph/rpc/fullHostPage?host=%(host)s' |
||
493 | ), ( |
||
494 | u'Détail de la sécurité', |
||
495 | 'http://security.example.com/?host=%(host)s' |
||
496 | ), ( |
||
497 | 'Inventaire', |
||
498 | 'http://cmdb.example.com/?host=%(host)s' |
||
499 | ), ( |
||
500 | 'Documentation', |
||
501 | 'http://doc.example.com/?q=%(message)s' |
||
502 | ), |
||
503 | ) |
||
504 | |||
505 | Cet exemple correspond à la liste de liens suivante : |
||
506 | |||
507 | .. figure:: liens.png |
||
508 | |||
509 | Liens externes d'un événement |
||
510 | |||
511 | |||
512 | Emplacement du gestionnaire de tickets |
||
513 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
514 | Un ticket d'incident peut être associé à un ou plusieurs événements corrélés |
||
515 | apparaissant dans VigiBoard. L'adresse du gestionnaire de ticket est |
||
516 | paramétrable à l'aide de l'option ``base_config['vigiboard_links.tt']``. |
||
517 | |||
518 | Il s'agit d'une URL absolue, dans laquelle les variables de substitution |
||
519 | suivantes sont disponibles : |
||
520 | |||
521 | - ``%(idcorrevent)d`` est remplacé par l'identifiant (unique) de l'événement |
||
522 | corrélé dans Vigilo, |
||
523 | - ``%(host)s`` est remplacé par le nom de l'hôte impacté par l'événement |
||
524 | corrélé, |
||
525 | - ``%(service)s`` est remplacé par le nom du service impacté ou ``None`` si |
||
526 | l'événement concernant directement l'hôte, |
||
527 | - ``%(tt)s`` est remplacé par la référence du ticket d'incident, telle que |
||
528 | saisie par un utilisateur. |
||
529 | |||
530 | Exemple de configuration possible:: |
||
531 | |||
532 | base_config['vigiboard_links.tt'] = 'http://bugs.example.com/?ticket_id=%(tt)s' |
||
533 | |||
534 | |||
535 | .. _confmodwsgi: |
||
536 | |||
537 | Intégration de VigiBoard avec Apache / mod_wsgi |
||
538 | ----------------------------------------------- |
||
539 | |||
540 | VigiBoard a été testé avec le serveur libre Apache. L'application utilise en |
||
541 | outre le module Apache ``mod_wsgi`` pour communiquer avec le serveur. Ce module |
||
542 | implémente un modèle de communication basé sur l'interface WSGI. Le reste de ce |
||
543 | chapitre décrit la configuration utilisée pour réaliser cette intégration. |
||
544 | |||
545 | Fichier de configuration pour Apache |
||
546 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
||
547 | Le fichier de configuration pour l'intégration de VigiBoard dans Apache se |
||
548 | trouve généralement dans ``/etc/vigilo/vigiboard/vigiboard.conf`` (un lien |
||
549 | symbolique vers ce fichier est créé dans le dossier de configuration d'Apache, |
||
550 | généralement dans ``/etc/httpd/conf.d/vigiboard.conf``). |
||
551 | |||
552 | En général, il n'est pas nécessaire de modifier le contenu de ce fichier. Ce |
||
553 | chapitre vise toutefois à fournir quelques informations sur le fonctionnement |
||
554 | de ce fichier, afin de permettre d'éventuelles personnalisations de ce |
||
555 | comportement. |
||
556 | |||
557 | Ce fichier tente tout d'abord de charger le module ``mod_wsgi`` (directive |
||
558 | LoadModule) puis ajoute les directives de configuration nécessaire à Apache |
||
559 | pour faire fonctionner VigiBoard, reprises partiellement ci-dessous:: |
||
560 | |||
561 | WSGIRestrictStdout off |
||
562 | WSGIPassAuthorization on |
||
563 | WSGIDaemonProcess vigiboard user=apache group=apache threads=2 |
||
564 | WSGIScriptAlias /vigilo/vigiboard "/etc/vigilo/vigiboard/vigiboard.wsgi" |
||
565 | |||
566 | KeepAlive Off |
||
567 | |||
568 | <Directory "/etc/vigilo/vigiboard/"> |
||
569 | <Files "vigiboard.wsgi"> |
||
570 | WSGIProcessGroup vigiboard |
||
571 | WSGIApplicationGroup %{GLOBAL} |
||
572 | |||
573 | Order deny,allow |
||
574 | Allow from all |
||
575 | </Files> |
||
576 | </Directory> |
||
577 | |||
578 | L'option ``WSGIRestrictStdout`` est positionnée à ``off`` afin d'éviter |
||
579 | qu'Apache ne tue le processus de l'application lorsque des données sont |
||
580 | envoyées sur la sortie standard. Ceci permet de récupérer les erreurs critiques |
||
581 | pouvant être émises par l'application. Ces erreurs apparaissent alors dans le |
||
582 | journal des événements d'Apache (configuré par la directive ``error_log``). |
||
583 | |||
584 | L'option ``WSGIPassAuthorization`` positionnée à ``on`` indique à Apache et |
||
585 | mod_wsgi que les informations d'authentification éventuellement transmises par |
||
586 | l'utilisateur doivent être transmises à VigiBoard. En effet, Vigilo utilise son |
||
587 | propre mécanisme de gestion de l'authentification et des autorisations (voir la |
||
588 | documentation intitulée Vigilo - Authentification et autorisation) et utilise |
||
589 | donc ces informations. |
||
590 | |||
591 | L'option ``WSGIDaemonProcess`` permet de créer un groupe de processus affecté |
||
592 | au traitement des requêtes HTTP destinées à VigiBoard. Il permet d'utiliser un |
||
593 | nom d'utilisateur et un groupe prédéfini (afin de réduire les privilèges |
||
594 | nécessaires), ainsi que le nombre de processus légers à utiliser pour traiter |
||
595 | les requêtes (ici, 2). |
||
596 | |||
597 | 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). |
||
598 | |||
599 | L'option ``KeepAlive`` positionnée à ``off`` est nécessaire afin de contourner |
||
600 | un problème dans le module ``mod_wsgi`` d'Apache. |
||
601 | |||
602 | Les autres options permettent d'exécuter le script WSGI de VigiBoard à l'aide |
||
603 | du groupe de processus défini précédemment. |
||
604 | |||
605 | La liste complète des directives de configuration supportées par le module |
||
606 | ``mod_wsgi`` d'Apache est disponible `dans la documentation officielle |
||
607 | <http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives>`_. |
||
608 | |||
609 | Script WSGI de VigiBoard |
||
610 | ^^^^^^^^^^^^^^^^^^^^^^^^ |
||
611 | Le script WSGI de VigiBoard est un script Python très simple qui a pour but de |
||
612 | démarrer l'exécution de VigiBoard à partir du fichier de configuration associé |
||
613 | (``/etc/vigilo/vigiboard/settings.ini``). |
||
614 | |||
615 | Vous n'avez généralement pas besoin de modifier son contenu, sauf |
||
616 | éventuellement pour adapter l'emplacement du fichier de configuration en |
||
617 | fonction de votre installation. |
||
618 | |||
619 | |||
620 | |||
621 | Annexes |
||
622 | ======= |
||
623 | |||
624 | Glossaire - Terminologie |
||
625 | ------------------------ |
||
626 | |||
627 | .. glossary:: |
||
628 | API |
||
629 | *Application Programming Interface*. Interface logicielle de programmation, |
||
630 | permettant à un développeur d'enrichir la liste des fonctionnalités |
||
631 | proposées par un logiciel. |
||
632 | |||
633 | CGI |
||
634 | *Common Gateway Interface*. Interface standard de communication entre un |
||
635 | serveur Web et un programme capable de générer une réponse HTTP valide. Il |
||
636 | s'agit par exemple de l'interface retenue par Nagios pour la génération de |
||
637 | ses pages Web. |
||
638 | |||
639 | SGBD(R) |
||
640 | Serveur de Gestion de Bases de Données (Relationnelles). Logiciel |
||
641 | permettant d'héberger une base de données sur la machine. |
||
642 | |||
643 | SQL |
||
644 | *Structured Query Language*. Langage de requêtes structuré pour |
||
645 | l'interrogation d'une base de données relationnelle. |
||
646 | |||
647 | URL |
||
648 | *Uniform Resource Locator*. Chaîne de caractères permettant d'identifier |
||
649 | une ressource sur Internet. Exemple : ``http://www.projet-vigilo.org/``. |
||
650 | |||
651 | WSGI |
||
652 | *Web Server Gateway Interface*. Une interface pour la communication entre |
||
653 | une application et un serveur Web, similaire à CGI. Il s'agit de |
||
654 | l'interface utilisée par Vigilo. |
||
655 | |||
656 | |||
657 | .. vim: set tw=79 : |