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