| Scroll Ignore | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
Principe
NagVis permet créer un menu personnalisé à l'aide de "modèle de menu".
- Ces modèles sont des fichiers HTML qui contiennent des macros que NagVis va interpréter.
- Pour être utilisé par NagVis, les fichiers HTML doivent être présent dans le dossier /opt/nagvis/share/userfiles/templates/.
Créer un modèle de menu
Pour créer un modèle, il suffit de créer un fichier .html devant être nommé de la façon suivante :
| Code Block |
|---|
nomDuModele.context.html |
Ce fichier est un fichier html classique mais qui peut contenir des macros spécifiques à NagVis( voir ci-dessous ).
Il est possible d'ajouter du style CSS au menu en créant un fichier .css qui doit être nommée de cette manière:
| Code Block |
|---|
nomDuModele.context.css |
Le système de macro de Nagvis
Les macros permettent de récupérer des informations de l'objet auquel le modèle est accroché et des informations liés à la configuration de Nagvis.
Exemple: l'id de l'objet avec la macro [obj_id]
Macros disponibles
Voici une liste non exhaustif des macros disponibles
Les macros génériques
| Macro | Description |
|---|---|
| [obj_id] | ID de l'objet en JavaScript. Nécessaire pour localiser les parties spécifiques de l'objet, par exemple pour planifier une mise à jour manuelle des informations d'état. |
| [type] | Type de l'objet |
| [name] | Nom de l'objet ( Hostname, Hostgroupname, Servicegroupname, Mapname,... ) |
| [backend_id] | L'identifiant du shinken sur lequel est accroché l'objet |
| [custom_1] | Représente une donnée de l'objet défini dans la configuration de Shinken |
| [custom_2] | Une autre donnée de l'objet |
| [custom_3] | Une autre donnée de l'objet |
| [map_name] | Nom de la carte courante |
Les macros liées aux labels
| Macro | Description |
|---|---|
| [lang_refresh_status] | Affiche le label du rafraichissement du statut |
| [lang_schedule_downtime] | Affiche le label programmation de période de maintenance |
| [lang_reschedule_next_check] | Affiche le label de l'action forcer une vérification |
| [lang_connect_by_ssh] | Affiche le label de l'action de connexion par SSH à l'élément |
Les macros au chemin (path)
| Macro | Description |
|---|---|
| [html_base] | URL absolue vers la base HTML (Par défaut : /nagvis) |
| [html_cgi] | URL absolue vers les CGI de Nagios. Utilisation d'une valeur spécifique à l'objet. Dépend du backend utilisé. Si aucune valeur spécifique au backend n'est définie, la valeur par défaut sera utilisée. (Par défaut : /nagios/cgi-bin) |
| [html_templates] | Chemin d'accès au répertoire des modèles de contexte (Par défaut : /nagvis/userfiles/templates) |
| [html_template_images] | Chemin d'accès au répertoire des images du modèle de contexte (Par défaut : /nagvis/userfiles/images/templates) |
Macros section
Dans le fichier HTML du modèle de menu, il existe des macros "section" qui permet de posé des conditions au code HTML.
Par exemple: N'affichait que le code si l'objet est un hôte
| Code Block |
|---|
<!-- BEGIN host --> Le contenu du code HTML <!-- END host --> |
En plus des types d'élément il existe d'autre type de macro de section :
| Section | Description |
|---|---|
| line | N'affiche la section que pour les objets de ligne |
| stateful | N'affiche la section que pour les objets à état. |
| not_automap | Ne l'affiche que pour les vues non automatiques (cartes normales). |
| locked | Ne s'affiche que pour les objets verrouillés. |
| unlocked | Ne s'affiche que pour les objets déverrouillés. |
| permitted_edit | S'affiche uniquement lorsque l'utilisateur est en mesure de modifier la carte. |
| permitted_perform | Ne s'affiche que lorsque l'utilisateur est en mesure d'effectuer des actions. |
| action_* | S'affiche uniquement lorsque cette action est enregistrée pour cet objet. |
Exemple d'un fichier
| Code Block | ||
|---|---|---|
| ||
<ul>
<!-- BEGIN locked -->
<li><a href="#" onClick="toggleMapObjectLock(event, '[obj_id]'); contextHide();return false">[lang_unlock]</a></li>
<!-- END locked -->
<!-- BEGIN unlocked -->
<li><a href="#" onClick="toggleMapObjectLock(event, '[obj_id]'); contextHide();return false">[lang_lock]</a></li>
<li><a href="#" onClick="showAddModifyDialog('[map_name]', '[obj_id]');contextHide();return false">[lang_modify]</a></li>
<li><a href="#" onClick="removeMapObject(event,'[obj_id]', '[lang_delete_confirm]');contextHide();return false">[lang_delete]</a></li>
<!-- END unlocked -->
</ul> |