vigiboard / doc / admin.rst @ d227db89
History | View | Annotate | Download (28 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 |
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 : |