vigiboard / doc / admin.rst @ fa6371b6
History | View | Annotate | Download (26.7 KB)
1 |
********************** |
---|---|
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 |
.. Installation du RPM |
21 |
.. include:: ../buildenv/doc/package.rst |
22 |
|
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 |
postgressql://vigilo:vigilo@localhost/vigilo |
99 |
|
100 |
.. 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 |
|
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 |
.. 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 |
|
174 |
.. 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 |
|
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 |
http://fr.wikipedia.org/wiki/ISO_3166-1. |
248 |
La langue retenue doit être disponible parmi les traductions fournies |
249 |
avec VigiBoard. |
250 |
|
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 |
.. |imghelp| image:: img/help.png |
262 |
|
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 |
.. 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 |
|
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 |
.. 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 |
|
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 |
.. |imghome| image:: img/home.png |
301 |
|
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 de l'auto-supervision |
329 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
330 |
VigiBoard affiche un message d'alerte à l'utilisateur dès lors qu'un des |
331 |
collecteurs Vigilo n'a pas donné signe de vie depuis plus d'une certaine durée. |
332 |
Cette durée-seuil, exprimée en secondes, est configurable à l'aide de l'option |
333 |
« freshness_threshold » . |
334 |
Une valeur négative ou nulle désactive complètement cette fonctionnalité. |
335 |
|
336 |
Configuration du serveur mandataire |
337 |
----------------------------------- |
338 |
VigiBoard permet d'accéder à la page d'état Nagios d'un hôte ou d'un service, |
339 |
et ce malgré le fait que ces hôtes/services sont supervisés par des serveurs |
340 |
Nagios différents. Ceci est rendu possible par l'existence d'un serveur |
341 |
mandataire (proxy) qui relaye les requêtes au serveur Nagios concerné. |
342 |
|
343 |
Le chapitre présente tout d'abord les options communes à tous les types de |
344 |
serveurs mandataires de Vigilo. Puis, le chapitre détaille les options |
345 |
spécifiques au serveur mandataire pour Nagios intégré à VigiBoard. |
346 |
|
347 |
Options communes à tous les serveurs mandataires de Vigilo |
348 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
349 |
Les options communes à tous les serveurs mandataires de Vigilo concernent |
350 |
l'authentification auprès d'un serveur mandataire intermédiaire. Elles sont au |
351 |
nombre de trois : |
352 |
|
353 |
- ``app_proxy_auth_method`` indique la méthode d'authentification à utiliser et |
354 |
peut valoir ``basic`` ou ``digest`` |
355 |
|
356 |
- ``app_proxy_auth_username`` indique le nom d'utilisateur à utiliser pour se |
357 |
connecter au serveur mandataire intermédiaire |
358 |
|
359 |
- ``app_proxy_auth_password`` indique le mot de passe associé à ce nom |
360 |
d'utilisateur. |
361 |
|
362 |
Ces trois options doivent être renseignées pour que l'authentification auprès |
363 |
du serveur mandataire intermédiaire soit effective. |
364 |
|
365 |
Options spécifiques au serveur mandataire Nagios |
366 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
367 |
L'option ``app_path.nagios`` indique l'emplacement de l'installation de Nagios |
368 |
sur le serveur Web distant, à partir de la racine du serveur Web. Généralement, |
369 |
il s'agit de ``/nagios/`` (emplacement par défaut lors d'une nouvelle |
370 |
installation de l'interface graphique CGI de Nagios). |
371 |
|
372 |
L'option ``app_scheme.nagios`` indique le protocole à utiliser pour communiquer |
373 |
avec le serveur Web distant. Pour le moment, seuls les protocoles ``http`` et |
374 |
``https`` sont supportés. |
375 |
|
376 |
L'option ``app_port.nagios`` permet d'indiquer le port à utiliser pour se |
377 |
connecter, dans le cas où il ne s'agit pas du port standard. Par défaut, le |
378 |
serveur mandataire Nagios utilise le port standard associé au protocole donné |
379 |
par ``app_scheme.nagios`` (80 pour HTTP, 443 pour HTTPS). |
380 |
|
381 |
L'option ``app_redirect.nagios`` permet de modifier le comportement du serveur |
382 |
mandataire. Lorsque cette option vaut ``True``, le serveur mandataire agit |
383 |
comme un simple redirecteur de requêtes. Dans ce mode, les options |
384 |
d'authentification liées au serveur mandataire sont ignorées. Ce mode de |
385 |
fonctionnement est utile afin de tester la configuration mais n'est pas |
386 |
recommandé en production. |
387 |
|
388 |
Les options ``app_auth_method.nagios``, ``app_auth_username.nagios`` et |
389 |
``app_auth_password.nagios`` permettent d'indiquer la méthode |
390 |
d'authentification, le nom d'utilisateur et le mot de passe pour accéder à |
391 |
l'interface CGI de Nagios. Ces options sont similaires à celles décrites au |
392 |
chapitre . |
393 |
|
394 |
Configuration des sessions |
395 |
-------------------------- |
396 |
Chaque fois qu'un utilisateur se connecte à VigiBoard, un fichier de session |
397 |
est créé permettant de sauvegarder certaines préférences de cet utilisateur |
398 |
(par exemple, le thème de l'application, la taille de la police de caractères, |
399 |
etc.). |
400 |
|
401 |
Ce chapitre décrit les options relatives à la gestion des sessions. |
402 |
|
403 |
Emplacement des fichiers de session |
404 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
405 |
Le dossier dans lequel les fichiers de session seront stockés est indiqué par |
406 |
l'option ``cache_dir``. |
407 |
|
408 |
Nom du cookie de session |
409 |
^^^^^^^^^^^^^^^^^^^^^^^^ |
410 |
Afin d'associer un utilisateur au fichier de session qui lui correspond, un |
411 |
cookie de session est créé sur le navigateur de l'utilisateur. L'option |
412 |
``beaker.session.key`` permet de choisir le nom du cookie créé. Le nom doit |
413 |
être composé de caractères alphanumériques (a-zA-Z0-9) et commencer par une |
414 |
lettre (a-zA-Z). |
415 |
|
416 |
.. _confappcfg: |
417 |
|
418 |
Options du fichier ``app_cfg.py`` |
419 |
--------------------------------- |
420 |
Le fichier ``app_cfg.py`` contient des réglages spécifiques à VigiBoard plus |
421 |
complexes à représenter que par l'usage du fichier ``settings.ini``. Ce |
422 |
chapitre décrit ces réglages. |
423 |
|
424 |
La modification de ces réglages nécessite une connaissance rudimentaire du |
425 |
langage de programmation Python. |
426 |
|
427 |
Choix des colonnes affichées dans VigiBoard |
428 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
429 |
Vous avez la possibilité de configurer les colonnes à afficher dans VigiBoard |
430 |
ainsi que leur ordre. VigiBoard est fourni avec un ensemble de colonnes |
431 |
prédéfinies. La liste complète des colonnes disponibles peut être obtenue à |
432 |
l'aide de la commande suivante:: |
433 |
|
434 |
vigilo-plugins vigiboard.columns |
435 |
|
436 |
L'option ``base_config['vigiboard_plugins']`` du fichier ``app_cfg.py`` |
437 |
contient un tuple des noms des colonnes à afficher (dans leur ordre |
438 |
d'affichage, de gauche à droite sur un navigateur configuré pour un utilisateur |
439 |
français, et de droite à gauche pour un utilisateur hébreu). |
440 |
|
441 |
Exemple de configuration possible : |
442 |
|
443 |
.. sourcecode:: python |
444 |
|
445 |
base_config['vigiboard_plugins'] = ( |
446 |
'details', |
447 |
'date', |
448 |
'priority', |
449 |
'occurrences', |
450 |
'hostname', |
451 |
'servicename', |
452 |
'output', |
453 |
'hls', |
454 |
'status', |
455 |
) |
456 |
|
457 |
Configuration des liens externes |
458 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
459 |
L'option ``base_config['vigiboard_links.eventdetails']`` contient la liste des |
460 |
liens externes configurés, c'est-à-dire les liens qui seront affichés dans le |
461 |
dialogue de détail d'un événement (figure ). |
462 |
|
463 |
La configuration des liens externes est donnée sous la forme d'un tuple de |
464 |
tuples, de la forme :: |
465 |
|
466 |
(libellé du lien, URL cible) |
467 |
|
468 |
L'URL peut être relative ou absolue. Dans le cas d'une URL relative, celle-ci |
469 |
est relative à l'emplacement de la racine de VigiBoard sur le serveur Web. |
470 |
|
471 |
L'URL peut contenir des paramètres qui seront transmis tel quel. De plus, les |
472 |
variables de substitution suivantes sont disponibles : |
473 |
|
474 |
- ``%(idcorrevent)d`` est remplacé par l'identifiant (unique) de l'événement |
475 |
corrélé dans Vigilo, |
476 |
- ``%(host)s`` est remplacé par le nom de l'hôte impacté par l'événement |
477 |
corrélé, |
478 |
- ``%(service)s`` est remplacé par le nom du service impacté ou ``None`` si |
479 |
l'événement concernant directement l'hôte, |
480 |
- ``%(message)s`` est remplacé par le message de supervision remonté par |
481 |
Nagios. |
482 |
|
483 |
Exemple de configuration possible : |
484 |
|
485 |
.. sourcecode:: python |
486 |
|
487 |
base_config['vigiboard_links.eventdetails'] = ( |
488 |
( |
489 |
u'Détail de l\'hôte dans Nagios', |
490 |
'/nagios/%(host)s/cgi-bin/status.cgi?host=%(host)s' |
491 |
), ( |
492 |
u'Détail de la métrologie', |
493 |
'http://vigilo.example.com/vigigraph/rpc/fullHostPage?host=%(host)s' |
494 |
), ( |
495 |
u'Détail de la sécurité', |
496 |
'http://security.example.com/?host=%(host)s' |
497 |
), ( |
498 |
'Inventaire', |
499 |
'http://cmdb.example.com/?host=%(host)s' |
500 |
), ( |
501 |
'Documentation', |
502 |
'http://doc.example.com/?q=%(message)s' |
503 |
), |
504 |
) |
505 |
|
506 |
Cet exemple correspond à la liste de liens suivante : |
507 |
|
508 |
.. figure:: img/liens.png |
509 |
|
510 |
Liens externes d'un événement |
511 |
|
512 |
|
513 |
Emplacement du gestionnaire de tickets |
514 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
515 |
Un ticket d'incident peut être associé à un ou plusieurs événements corrélés |
516 |
apparaissant dans VigiBoard. L'adresse du gestionnaire de ticket est |
517 |
paramétrable à l'aide de l'option ``base_config['vigiboard_links.tt']``. |
518 |
|
519 |
Il s'agit d'une URL absolue, dans laquelle les variables de substitution |
520 |
suivantes sont disponibles : |
521 |
|
522 |
- ``%(idcorrevent)d`` est remplacé par l'identifiant (unique) de l'événement |
523 |
corrélé dans Vigilo, |
524 |
- ``%(host)s`` est remplacé par le nom de l'hôte impacté par l'événement |
525 |
corrélé, |
526 |
- ``%(service)s`` est remplacé par le nom du service impacté ou ``None`` si |
527 |
l'événement concernant directement l'hôte, |
528 |
- ``%(tt)s`` est remplacé par la référence du ticket d'incident, telle que |
529 |
saisie par un utilisateur. |
530 |
|
531 |
Exemple de configuration possible : |
532 |
|
533 |
.. sourcecode:: python |
534 |
|
535 |
base_config['vigiboard_links.tt'] = \ |
536 |
'http://bugs.example.com/?ticket_id=%(tt)s' |
537 |
|
538 |
|
539 |
.. _confmodwsgi: |
540 |
|
541 |
Intégration de VigiBoard avec Apache / mod_wsgi |
542 |
----------------------------------------------- |
543 |
|
544 |
VigiBoard a été testé avec le serveur libre Apache. L'application utilise en |
545 |
outre le module Apache ``mod_wsgi`` pour communiquer avec le serveur. Ce module |
546 |
implémente un modèle de communication basé sur l'interface WSGI. Le reste de ce |
547 |
chapitre décrit la configuration utilisée pour réaliser cette intégration. |
548 |
|
549 |
Fichier de configuration pour Apache |
550 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
551 |
Le fichier de configuration pour l'intégration de VigiBoard dans Apache se |
552 |
trouve généralement dans ``/etc/vigilo/vigiboard/vigiboard.conf`` (un lien |
553 |
symbolique vers ce fichier est créé dans le dossier de configuration d'Apache, |
554 |
généralement dans ``/etc/httpd/conf.d/vigiboard.conf``). |
555 |
|
556 |
En général, il n'est pas nécessaire de modifier le contenu de ce fichier. Ce |
557 |
chapitre vise toutefois à fournir quelques informations sur le fonctionnement |
558 |
de ce fichier, afin de permettre d'éventuelles personnalisations de ce |
559 |
comportement. |
560 |
|
561 |
Ce fichier tente tout d'abord de charger le module ``mod_wsgi`` (directive |
562 |
LoadModule) puis ajoute les directives de configuration nécessaire à Apache |
563 |
pour faire fonctionner VigiBoard, reprises partiellement ci-dessous:: |
564 |
|
565 |
WSGIRestrictStdout off |
566 |
WSGIPassAuthorization on |
567 |
WSGIDaemonProcess vigiboard user=apache group=apache threads=2 |
568 |
WSGIScriptAlias /vigilo/vigiboard "/etc/vigilo/vigiboard/vigiboard.wsgi" |
569 |
|
570 |
KeepAlive Off |
571 |
|
572 |
<Directory "/etc/vigilo/vigiboard/"> |
573 |
<Files "vigiboard.wsgi"> |
574 |
WSGIProcessGroup vigiboard |
575 |
WSGIApplicationGroup %{GLOBAL} |
576 |
|
577 |
Order deny,allow |
578 |
Allow from all |
579 |
</Files> |
580 |
</Directory> |
581 |
|
582 |
L'option ``WSGIRestrictStdout`` est positionnée à ``off`` afin d'éviter |
583 |
qu'Apache ne tue le processus de l'application lorsque des données sont |
584 |
envoyées sur la sortie standard. Ceci permet de récupérer les erreurs critiques |
585 |
pouvant être émises par l'application. Ces erreurs apparaissent alors dans le |
586 |
journal des événements d'Apache (configuré par la directive ``error_log``). |
587 |
|
588 |
L'option ``WSGIPassAuthorization`` positionnée à ``on`` indique à Apache et |
589 |
mod_wsgi que les informations d'authentification éventuellement transmises par |
590 |
l'utilisateur doivent être transmises à VigiBoard. En effet, Vigilo utilise son |
591 |
propre mécanisme de gestion de l'authentification et des autorisations (voir la |
592 |
documentation intitulée Vigilo - Authentification et autorisation) et utilise |
593 |
donc ces informations. |
594 |
|
595 |
L'option ``WSGIDaemonProcess`` permet de créer un groupe de processus affecté |
596 |
au traitement des requêtes HTTP destinées à VigiBoard. Il permet d'utiliser un |
597 |
nom d'utilisateur et un groupe prédéfini (afin de réduire les privilèges |
598 |
nécessaires), ainsi que le nombre de processus légers à utiliser pour traiter |
599 |
les requêtes (ici, 2). |
600 |
|
601 |
L'option ``WSGIScriptAlias`` indique l'emplacement à partir duquel VigiBoard |
602 |
sera accessible (ici, ``http://example.com/vigilo/vigiboard`` si le serveur |
603 |
Apache est configuré pour le domaine ``example.com``) et l'emplacement du script |
604 |
WSGI nécessaire au lancement de l'application (voir le chapitre suivant). |
605 |
|
606 |
L'option ``KeepAlive`` positionnée à ``off`` est nécessaire afin de contourner |
607 |
un problème dans le module ``mod_wsgi`` d'Apache. |
608 |
|
609 |
Les autres options permettent d'exécuter le script WSGI de VigiBoard à l'aide |
610 |
du groupe de processus défini précédemment. |
611 |
|
612 |
La liste complète des directives de configuration supportées par le module |
613 |
``mod_wsgi`` d'Apache est disponible `dans la documentation officielle |
614 |
<http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives>`_. |
615 |
|
616 |
Script WSGI de VigiBoard |
617 |
^^^^^^^^^^^^^^^^^^^^^^^^ |
618 |
Le script WSGI de VigiBoard est un script Python très simple qui a pour but de |
619 |
démarrer l'exécution de VigiBoard à partir du fichier de configuration associé |
620 |
(``/etc/vigilo/vigiboard/settings.ini``). |
621 |
|
622 |
Vous n'avez généralement pas besoin de modifier son contenu, sauf |
623 |
éventuellement pour adapter l'emplacement du fichier de configuration en |
624 |
fonction de votre installation. |
625 |
|
626 |
|
627 |
|
628 |
Annexes |
629 |
======= |
630 |
|
631 |
.. include:: ../../turbogears/doc/glossaire.rst |
632 |
|
633 |
|
634 |
.. vim: set tw=79 : |