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és 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
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] | |
| [lang_schedule_downtime] | |
| [lang_reschedule_next_check] | |
| [lang_connect_by_ssh] |
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> |