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