Commit b9150d1a authored by Clara Dewarumez's avatar Clara Dewarumez

Merge branch 'develop' into feat-pbh_exdate

parents 904d6052 5f00aebe
Pipeline #4496 passed with stage
in 2 minutes and 9 seconds
......@@ -19,7 +19,7 @@ for engine in {"core","cat","prov","cat-prov"}; do
done
# Go engines
if [ "${push_go}" = "Y" ]||[ "${push_go}" = "y" ]; then
for engine in {"init", "engine-axe","engine-che","engine-heartbeat","engine-stat","engine-watcher","engine-action"}; do
for engine in {"init","engine-axe","engine-che","engine-heartbeat","engine-stat","engine-watcher","engine-action"}; do
docker push canopsis/$engine:${CANOPSIS_TAG}
done
fi
......@@ -28,6 +28,6 @@ if [ "${push_pe}" = "Y" ]||[ "${push_pe}" = "y" ]; then
docker push canopsis/init-pe:${CANOPSIS_TAG}
docker push canopsis/canopsis-cat-pe:${CANOPSIS_TAG}
docker push canopsis/canopsis-cat-pe:longoutput-${CANOPSIS_TAG}
#docker push canopsis/canopsis-connector-email2canopsis-pe:${CANOPSIS_TAG}
docker push canopsis/canopsis-connector-email2canopsis-pe:${CANOPSIS_TAG}
#docker push canopsis/canopsis-connector-snmp2canopsis-pe:${CANOPSIS_TAG}
fi
# Authentification
- [LDAP](#ldap)
To do
- [SAML2](#saml2)
- [Paramétrage ldP](#paramétrage-idp)
- [Création du paramètrage côté Canopsis](#création-du-paramétrage-côté-canopsis)
- [Intégration des paramètres en base](#intégration-des-paramètres-en-base)
- [Activation de l'authentification SAML2](#activation-de-lauthentification-saml2)
- [Test et logs](#tests-et-log)
- [troubleshooting](#troubleshooting)
- [Troubleshooting](#troubleshooting)
## LDAP
!!! attention
Les fonctionnalités liées à LDAP sont en cours de développement. Toutes les fonctionnalités d'LDAP ne sont pas encore implémentées.
L'authentification LDAP est actuellement fonctionnelle et est basée sur [python-ldap](https://python-ldap.readthedocs.io) qui utilise la *libldap* du projet [OpenLDAP](http://www.openldap.org/).
Canopsis utilise la version 3 du protocole LDAP.
Sa configuration par l'interface web n'est pas prise en charge pour le moment.
Les fonctionnalités actuellement implémentées permettent l'authentification des utilisateurs sur n'importe quel annuaire LDAP, tant que celui-ci respecte la [RFC4510](https://tools.ietf.org/html/rfc4510) et ses déclinaisons.
## SAML2
......
......@@ -41,7 +41,7 @@ systemctl start canopsis-engine-cat@snmp
Pour créer des règles de transformations il faut se logger sur la page dédiée sur l'UIv2 :
http://<canopsis_addr:port>/en/static/canopsis/index.html#/userview/view.snmprule
http://CANOPSIS_ADDR:PORT/en/static/canopsis/index.html#/userview/view.snmprule
Une règle de transformation consiste à convertir des `OID` en valeurs compréhensibles et associer les attributs nécessaires à un message Canopsis.
......
# connector-centreon-engine : module (Event Broker) Centreon pour Canopsis
!!! note
Ce module est maintenant disponible dans l'édition open-source de Canopsis.
## Description
Ce dépôt contient un module Broker Centreon pour l'envoi d'évènements à Canopsis. Il est écrit en C++, et des modules pré-compilés sont disponibles pour certains environnements.
Le connecteur `connector-centreon-engine` est un module Broker permettant l'envoi d'évènements de Centreon vers Canopsis. Il est écrit en C++, et des modules pré-compilés sont disponibles pour certains environnements. Ce module est open-source et disponible sous la licence Apache 2.0.
Ce module vient s'ajouter dans une instance Centreon existante, et doit ensuite être configuré depuis l'interface web de Centreon afin de rediriger le trafic vers Canopsis.
**Pré-requis réseau :** la transmission de flux réseau doit être permise entre Centreon et Canopsis (port 5672 par défaut).
!!! attention
**Pré-requis réseau :** la transmission de flux réseau doit être permise entre Centreon et l'instance RabbitMQ de Canopsis (port TCP `5672` par défaut).
## Installation
!!! note
Toutes les manipulations suivantes doivent être réalisées sur le nœud Centreon que vous souhaitez relier à Canopsis.
## Installation d'un module pré-compilé
### Récupération du connecteur
### Récupération du module
Vous devez récupérer la dernière version du connecteur, disponible à l'adresse suivante : https://git.canopsis.net/canopsis-connectors/connector-centreon-engine.
Clôner le dépôt Git contenant le module (**note :** activer votre proxy HTTP si nécessaire) :
```shell
# Installation de Git sur Debian / Ubuntu
$ sudo apt-get install git-core
# Installation de Git sur Red Hat / CentOS
$ sudo yum install git-core
Vous pouvez pour cela cloner le dépôt Git, ou lancer la commande suivante pour récupérer une archive :
# Clône du dépôt
$ git clone https://VOTRE-UTILISATEUR-GITLAB-ICI@git.canopsis.net/canopsis-connectors/connector-centreon-engine.git
$ cd connector-centreon-engine
```sh
wget https://git.canopsis.net/canopsis-connectors/connector-centreon-engine/-/archive/master/connector-centreon-engine-master.tar.bz2 && tar xjf connector-centreon-engine-master.tar.bz2
```
### Installation du module
Le reste de cette procédure part du principe que vous disposez de ce contenu dans un répertoire `connector-centreon-engine*/`.
Il faut ensuite installer deux composants : le module `.so` et l'extension web.
### Installation du module `.so`
Des modules pré-compilés sont disponibles dans le répertoire `precompiled/` de ce dépôt Git.
Il faut, pour cela, connaître votre environnement (CentOS 6, CentOS 7…) et votre version du Centreon Broker sur le système cible :
```shell
$ cat /etc/centos-release
```sh
cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
$ cbd -v
cbd -v
[1513786864] info: Centreon Broker 3.0.11
```
Dans cet exemple, on est sur une CentOS 7 avec un Centreon Broker (CBD) 3.0.11. Le module qui nous intéresse est donc `precompiled/Centos7/85-amqp-cbd-3.0.11.so`.
Il faut ensuite l'envoyer dans le répertoire d'installation des modules Centreon (attention : le nom `85-amqp.so` est attendu en destination) :
```shell
```sh
# À adapter en fonction du système cible !
$ sudo cp precompiled/Centos7/85-amqp-cbd-3.0.11.so /usr/share/centreon/lib/centreon-broker/85-amqp.so
sudo cp precompiled/Centos7/85-amqp-cbd-[VOTRE-VERSION-CBD-ICI].so /usr/share/centreon/lib/centreon-broker/85-amqp.so
```
### Installation de l'extension web
Il faut ensuite ajouter l'extension `centreon-extension/connector-centreon-canopsis` présente dans ce dépôt Git dans l'installation Centreon, afin de pouvoir finaliser l'installation du module.
Il faut ensuite ajouter l'extension `centreon-extension/connector-centreon-canopsis` sur le nœud Centreon, afin de pouvoir finaliser l'installation du module.
```shell
$ sudo cp -r centreon-extension/connector-centreon-canopsis/ /usr/share/centreon/www/modules/
$ sudo chown -R apache:apache /usr/share/centreon/www/modules/connector-centreon-canopsis/
```sh
sudo cp -r centreon-extension/connector-centreon-canopsis/ /usr/share/centreon/www/modules/
sudo chown -R apache:apache /usr/share/centreon/www/modules/connector-centreon-canopsis
```
On peut alors installer le module depuis les menus suivants de l'interface web Centreon (Administration > Extensions > Modules > connector-centreon-canopsis et cliquer sur le bouton Action, sur la droite du tableau) :
Il faut ensuite installer ce module depuis les menus suivants de l'interface web Centreon (Administration > Extensions > Modules > connector-centreon-canopsis et cliquer sur le bouton Action, sur la droite du tableau) :
![Installation du module depuis l'interface web : étape 1](img/webextension_install.png)
......@@ -61,12 +71,12 @@ Puis, valider l'installation de ce module en cliquant sur « Install Module » 
![Installation du module depuis l'interface web : étape 2](img/webextension_install2.png)
Le module est maintenant installé, mais vous devez obligatoirement le configurer.
## Configuration du module
### Configuration
**Attention :** la transmission de flux réseau entre Centreon et Canopsis doit être permise sur vos équipements réseau (port 5672 par défaut, à ajuster en fonction de votre configuration Canopsis/Centreon).
Aller dans Configuration > Pollers > Broker Configuration > central-broker-master.
![Configuration du module AMQP Canopsis : étape 1](img/module_parameters.png)
......@@ -75,20 +85,25 @@ Puis, dans la nouvelle page qui apparaît, aller dans l'onglet Output, choisir l
![Configuration du module AMQP Canopsis : étape 2](img/module_parameters2.png)
Des options de configuration « Canopsis AMQP bus » apparaissent alors en bas de page. Il faut alors renseigner les informations de connexion à l'instance AMQP Canopsis voulue (adresse, port, identifiants, nom de l'Exchange et du Virtual Host...). Valider ces changements avec le bouton « Save ».
Des options de configuration « Canopsis AMQP bus » apparaissent alors en bas de page. Il faut alors renseigner les informations de connexion à l'instance RabbitMQ de Canopsis (adresse, port, identifiants, nom de l'Exchange et du Virtual Host...). Valider ces changements avec le bouton « Save ».
![Configuration du module AMQP Canopsis : étape 3](img/module_parameters3.png)
### Redémarrage
### Redémarrage obligatoire pour charger la configuration
!!! attention
**Attention :** les redémarrages suivants occasionnent une interruption de service le temps du redémarrage du Broker et des Engines Centron.
On redémarre ensuite le service pour s'assurer du bon chargement de la nouvelle configuration.
**Attention :** les redémarrages suivants occasionnent une interruption de service le temps du redémarrage du Broker et des Engines Centron.
Cette étape est **OBLIGATOIRE**, votre connecteur Centreon ne fonctionnera **PAS** dans Canopsis tant que vous n'effectuerez pas cette procédure de redémarrage.
On redémarre ensuite le service pour s'assurer du bon chargement de la nouvelle configuration. Pour cela, aller dans Configuration > Pollers > cocher les éléments concernés > cliquer sur « Export configuration ».
Pour cela, aller dans Configuration > Pollers > cocher les éléments concernés > cliquer sur « Export configuration ».
![Redémarrage du service : étape 1](img/module_restart1.png)
Sur la nouvelle page qui s'affiche, il faut ensuite cocher les cases « Move Export Files » et « Restart Monitoring Engine », puis choisir la méthode « Restart » dans le menu déroulant, et enfin cliquer sur le bouton « Export ».
![Redémarrage du service : étape 2](img/module_restart1.png)
![Redémarrage du service : étape 2](img/module_restart2.png)
**ATTENTION :** Il faut bien faire un `restart` et non pas un simple `reload` ! Sans quoi vous risquez des problèmes de cohérence sur les évènements échangés avec Canopsis.
......@@ -24,6 +24,7 @@ Par exemple, le comportement ci-dessous commence à 11 heures et se termine une
**Lorsque l'évènement est récurrent, la date de la dernière occurrence est stockée dans l'attribut `UNTIL` de l' évènement.rrule**
## Créer un pbehavior
#### URL
......@@ -38,7 +39,7 @@ JSON :
{
"name": "imagine",
"author": "lennon",
"filter_": {"_id": "all_the_people"},
"filter": {"_id": "all_the_people"},
"rrule": "",
"tstart": 0,
"tstop": 1000
......@@ -61,9 +62,9 @@ Les attributs du corps sont les suivants :
| rrule | string | Yes | Rrule (récurrence) |
| tstart | integer | No | Timestamp de la date de départ |
| tstop | integer | No | Timestamp de la date de fin |
| \_id | string | No | indentifiant du Pbehavior |
| \_id | string | No | Indentifiant du Pbehavior |
| eids | array | No | tableau du \_ids pour les entités impactées. |
| timezone | string | Yes | La timezone à utilisé pour le calcul des dates |
| timezone | string | Yes | La timezone à utiliser pour le calcul des dates |
| exdate | array | Yes | La liste des occurrences à ignorer sous forme de timestamps |
......@@ -117,24 +118,24 @@ Cette route répertorie les pbehaviors existant sur une entité, identifiée par
Les attributs de réponse sont les suivants :
| Name | type | nullable | Description |
|-----------------|---------|----------|------------------------------------------------------------|
| connector | string | No | Identifier of the entity connector |
| name | string | No | Display name of the pbehavior |
| author | string | No | Author name |
| enabled | boolean | No | Should the pbehavior trigger or not |
| reason | string | yes | Administrative reason (optionnal) |
| comments | array | yes | Comments (option) |
| filter | string | No | Entities filter (json) |
| type\_ | string | No | Pbehavior type |
| connector\_name | string | No | Display name of the entity connector |
| rrule | string | yes | Rrule (recurrence) |
| tstart | integer | No | Timestamp of the start date |
| tstop | integer | No | Timestamp end date |
| \_id | string | No | Pbehavior identifier |
| eids | array | No | Array of \_ids for the impacted entities. |
| isActive | boolean | No | is the pbehavior currently active |
| timeszone | string | yes | La timezone à utilisé pour le calcul des dates |
| Name | type | nullable | Description |
|-----------------|---------|----------|-------------------------------------------------------------|
| connector | string | No | Identifier of the entity connector |
| name | string | No | Display name of the pbehavior |
| author | string | No | Author name |
| enabled | boolean | No | Should the pbehavior trigger or not |
| reason | string | yes | Administrative reason (optionnal) |
| comments | array | yes | Comments (option) |
| filter | string | No | Entities filter (json) |
| type\_ | string | No | Pbehavior type |
| connector\_name | string | No | Display name of the entity connector |
| rrule | string | yes | Rrule (recurrence) |
| tstart | integer | No | Timestamp of the start date |
| tstop | integer | No | Timestamp end date |
| \_id | string | No | Pbehavior identifier |
| eids | array | No | Array of \_ids for the impacted entities. |
| isActive | boolean | No | Is the pbehavior currently active |
| timeszone | string | yes | La timezone à utiliser pour le calcul des dates |
| exdate | array | Yes | La liste des occurrences à ignorer sous forme de timestamps |
......@@ -167,11 +168,11 @@ Cette route impose un nouveau calcul pour tous les comportements.
#### URL
GET / api / v2 / compute-pbehaviors
`GET /api/v2/compute-pbehaviors`
#### GET exemple
/ api / v2 / compute-pbehaviors
/api/v2/compute-pbehaviors
Réponse: les calculs ont-ils été traités ?
......
......@@ -15,7 +15,7 @@ Un pbehavior se caractérise par les informations suivantes.
| `tstop` | int | Timestamp fournissant la date de fin du pbehavior, recalculée à partir de la `rrule` si présente. |
| `type_` | string | Optionnel. Type de pbehavior (pause, maintenance…). |
| `reason` | string | Optionnel. Raison pour laquelle ce pbehavior a été posé. |
| `timezone` | string | Timezone dans laquelle le pbehavior doit s'exécuter.
| `timezone` | string | Timezone dans laquelle le pbehavior doit s'exécuter. |
| `exdate` | array | Yes | La liste des occurrences à ignorer sous forme de timestamps |
Un exemple d'évènement pbehavior brut :
......@@ -60,12 +60,12 @@ Event de type pbehavior : créé à partir des champs cités en introduction
## Timezone
L'exécution de chaque pbehavior se fait dans une timezone particulière.
Lorsqu'un pbehavior ne contient pas de champ timezone, la timezone utilisé
Lorsqu'un pbehavior ne contient pas de champ timezone, la timezone utilisée
sera celle définie dans le fichier de configuration `etc/pbehavior/manager.conf`
sous le champ `default_timezone`.
Si le fichier de configuration n'existe pas ou si le champ `default_timezone`
n'existe pas, la timezone `Europe/Paris` sera utilisé.
n'existe pas, la timezone `Europe/Paris` sera utilisée.
## Exdate
Il est possible d'empêcher l'exécution d'une occurrence d'un pbehavior, à l'aide
......
......@@ -25,6 +25,18 @@ Crée un nouveau HeartBeat à partir du corps de la requête.
}
```
**Exemple de requête curl** pour utilisateur `root` avec mot de passe `root` qui veut ajouter le Json ci-dessus :
```sh
curl -X POST -u root:root -H "Content-Type: application/json" -d '{
"pattern": {
"connector": "c1",
"connector_name": "connector1"
},
"expected_interval": "10s"
}' 'http://<Canopsis_URL>/api/v2/heartbeat'
```
#### Réponse en cas de réussite
**Condition** : l'HeartBeat est crée
......@@ -98,6 +110,12 @@ Supprime un HeartBeat en fonction de son `id`.
**Permissions requise** : Aucune
**Exemple de requête curl** pour utilisateur `root` avec mot de passe `root` qui veut supprimer le heartbeat avec l'`id` `cd92421e77f48435d38b3682beb62f07` :
```sh
curl -X DEL -u root:root 'http://<Canopsis_URL>/api/v2/heartbeat/cd92421e77f48435d38b3682beb62f07'
```
#### Réponse en cas de réussite
**Condition** : L'Heartbeat à bien été supprimé.
......@@ -158,6 +176,12 @@ Récupère un ou plusieurs HeartBeat crée en base.
**Permissions requise** : Aucune
**Exemple de requête curl** pour utilisateur `root` avec mot de passe `root` pour récupérer le heartbeat avec l'`id` `cd92421e77f48435d38b3682beb62f07` :
```sh
curl -X GET -u root:root 'http://<Canopsis_URL>/api/v2/heartbeat/cd92421e77f48435d38b3682beb62f07'
```
##### Réponse en cas de réussite
**Condition** : Un HeartBeat correspondant à l'`id est trouvé.
......@@ -218,6 +242,12 @@ Récupèr tous les HeartBeats stocké en base
**Permissions requise** : Aucune
**Exemple de requête curl** pour utilisateur `root` avec mot de passe `root` pour récupérer tous les heartbeats :
```sh
curl -X GET -u root:root 'http://<Canopsis_URL>/api/v2/heartbeat/'
```
##### Réponse en cas de réussite
**Condition** : aucune.
......
......@@ -22,7 +22,7 @@ Voici la structure de base d'un évènement, commune à tous les type d'évènem
'resource': // Resource's name (only if source_type is 'resource')
// /!\ The following is optional /!\
'hostgroups': // Nagios hostgroups for component, default []
'servicegroups': // Nagios servicegroups for resource, default []
'timestamp': // UNIX timestamp for when the event was emitted (optional: set by the server to now)
......@@ -31,8 +31,6 @@ Voici la structure de base d'un évènement, commune à tous les type d'évènem
'long_output': // Description
'tags': // Tags for the event (optional, the server adds connector, connector_name, event_type, source_type, component and resource if present)
'perf_data': // Nagios formatted perfdata string
'perf_data_array': // array of metrics (see below)
}
```
......@@ -47,9 +45,9 @@ Aprés avoir défini la structure de base de l'évènement, choississez ce que v
'event_type': 'check',
'state': // Check state (0 - INFO, 1 - MINOR, 2 - MAJOR, 3 - CRITICAL), default is 0
// /!\ The following is optional /!\
'scheduled': // True if the check was scheduled, False otherwise
'check_type': // Nagios Check Type (host or service)
......@@ -65,21 +63,6 @@ Aprés avoir défini la structure de base de l'évènement, choississez ce que v
}
```
### Event Log Structure
```javascript
{
'event_type': 'log',
'output': // Becomes mandatory
'long_output': // Remains optional
'display_name': // Remains optional
'level': // Optional log level
'facility': // Optional log facility
}
```
### Event Acknowledgment Structure
```javascript
......@@ -89,7 +72,7 @@ Aprés avoir défini la structure de base de l'évènement, choississez ce que v
'ref_rk': // Routing Key of acknowledged event, mandatory
'author': // Acknowledgment author, mandatory
'output': // Acknowledgment comment, mandatory
```
### Event Cancel Structure
......@@ -156,21 +139,6 @@ Aprés avoir défini la structure de base de l'évènement, choississez ce que v
}
```
### Event Perf Structure
Un évènement de type `perf` ne sera jamais sauvegardé dans une base de données, il est uniquement utilisé pour envoyer des perfdata :
```javascript
{
'event_type': 'perf', // mandatory
'perf_data': // mandatory
'perf_data_array': // mandatory
}
```
See below for more informations about those fields.
### Event Statistics Counter Increment Structure
```javascript
......@@ -218,22 +186,6 @@ Le champ `entity` devrait contenir l'entité sous forme d'objet JSON.
Le champ `alarm` devrait contenir la valeur de l'alarme sous forme d'objet JSON.
Le champ `entity` devrait contenir l'entité sous forme d'objet JSON.
## Metrology
Pour envoyer des perfdata vers Canopsis, vous avez juste besoin de spécifier l'un des champs suivants :
```javascript
{
'perf_data': // Performance data ("Nagios format":http://nagiosplug.sourceforge.net/developer-guidelines.html#AEN201)
'perf_data_array': // Array of performance data with metric's type ('GAUGE', 'DERIVE', 'COUNTER', 'ABSOLUTE'), Ex:
[
{'metric': 'shortterm', 'value': 0.25, 'unit': None, 'min': None, 'max': None, 'warn': None, 'crit': None, 'type': 'GAUGE' },
{'metric': 'midterm', 'value': 0.16, 'unit': None, 'min': None, 'max': None, 'warn': None, 'crit': None, 'type': 'GAUGE' },
{'metric': 'longterm', 'value': 0.12, 'unit': None, 'min': None, 'max': None, 'warn': None, 'crit': None, 'type': 'GAUGE' }
]
}
```
### Basic Alert Structure
Un alarme est le résultat de l'analyse des évènements. Elle historise et résume les changements d'état, les actions utilisateurs (acquittement, mise en pause, etc.).
......@@ -253,7 +205,6 @@ Type | Description |
-----|-------------|
check | Utilisé pour envoyer le résultat d'un check (depuis Nagios, Icinga,...) |
comment | Utilisé pour envoyer un commentaire |
perf | Utilisé pour envoyer seulement des perfdata |
selector | Envoyé par l'engine selector |
sla | Envoyé par l'engine selector sla |
statcounterinc | Utilisé pour incrémenter un compteur dans l'engine statistics |
......
......@@ -3,6 +3,7 @@
Lorsqu'un évènement arrive, il est envoyé vers le bac à évènements, puis traité. Il devient alors une alarme (Une alarme est le résultat de l'analyse des évènements. cf [vocabulaire](../../../vocabulaire/index.md)).
Les différentes actions possibles sur cette alarme sont :
* [Accuser réception (Ack)](#accuser-réception-ack)
* Une fois la réception faite, la gestion de l'incident :
* [Déclarer un incident](#déclarer-un-ticket)
......
......@@ -14,7 +14,8 @@
### Guide exploitant
1. [Paramètres du widget](#parametres-du-widget)
1. [Aide sur les variables](#aide-variables)
2. [Paramètres du widget](#parametres-du-widget)
## Guide utilisateur
......@@ -72,7 +73,7 @@ Le filtre par période permet de filtre les alarmes en ne conservant que les ala
Ce filtre est disponible en cliquant sur l'icone ![Filtre par période](./img/period-filter.png "Filtre par période") présente à droite du sélecteur de filtre. Une fenêtre apparaît.
![Modal filtre par période](./img/modal-filtre-periode.png "Modal filtre par période")
![modale filtre par période](./img/modal-filtre-periode.png "modale filtre par période")
Il suffit alors de sélectionner la période souhaitée parmi les périodes prédéfinies, ou d'en créer une personalisé en sélectionnant 'Personnalisé', puis en renseignant les dates de début et de fin.
Cliquez ensuite sur 'Appliquer'.
......@@ -98,6 +99,20 @@ Le choix par défaut est réglable dans les paramètres du bac à alarmes (*Cf:
## Guide exploitant
### Aide - Variables
Durant la configuration de votre widget Bac à alarmes, notamment paramètres "Info popup", et "Fenêtre Plus d'infos", il vous sera possible d'accéder à des variables concernant les alarmes et les entités.
Exemple: Il vous sera possible d'afficher, dans la fenêtre "Plus d'infos", l'état de l'alarme.
Afin de connaitre les variables disponibles, une modale d'aide est disponible.
Pour y accèder, entrez dans le mode d'édition (*Cf: [Vues - Mode d'édition](../../vues#mode-edition)*).
Un bouton d'action supplémentaire "Liste des variables disponibles" apparaît alors pour chaque alarme.
Au clic sur ce bouton, une fenêtre s'ouvre. Celle-ci liste toutes les variables disponibles dans vos différents paramètres. Un bouton, à droite de chacune des variables, vous permet de copier directement dans le Presse-papier le chemin de cette variable.
### Paramètres du widget
1. Taille du widget
......@@ -152,12 +167,12 @@ Ce paramètre permet de définir quels colonnes seront affichées dans le bac à
Afin d'**ajouter une colonne**, cliquez sur le bouton 'Ajouter'.
Une colonne vide est alors ajoutée. Afin de finaliser l'ajout, il est nécessaire de remplir les champs demandés.
Le champ "Label" définit le nom de la colonne, qui sera affiché en haut de tableau. Le champ "Valeur" définit la valeur que doit prendre ce champ. Tous les champs de l'alarme et de l'entité concernée par l'alarme peuvent être utilisés, en préfixant le nom du champ par "alarm" ou "entity".
Le champ "Label" définit le nom de la colonne, qui sera affiché en haut de tableau. Le champ "Valeur" définit la valeur que doit prendre ce champ. Tous les champs de l'alarme et de l'entité concernée par l'alarme peuvent être utilisés.
Exemple : Pour ajouter une colonne ayant pour label "Composant" et pour valeur le nom du composant, renseignez les champs comme suit :
* Label : "Composant"
* Valeur : "alarm.component"
* Valeur : "alarm.v.component"
Pour supprimer une colonne, cliquez dans la liste des colonnes sur la croix rouge présente en haut à droite de la case de la colonne que vous souhaitez effacer.
......@@ -202,8 +217,8 @@ Une case info popup vide apparaît.
Cette case comporte deux champs :
* Colonne : Ce champ permet de définir sur quelle colonne l'info popup sera disponible. Il faut ici entrer la **valeur** de la colonne, et non son nom.
Exemple : pour ajouter une info popup sur la colonne que vous avez nommée "Connecteur", avec comme valeur "v.connector" (*Cf: [Paramètre "Nom des colonnes"](#nom-des-colonnes)*), il faut entrer ici "v.connector" et non "Connecteur".
* Texte : Ce champ, qui a la forme d'un éditeur de texte, permet de définir le contenu de l'info popup. Le langage utilisé ici pour le template de la popup est l'Handlebar. Deux variables sont disponibles : "alarm" et "entity". Exemple : Pour ajouter au template l'état de l'alarme, ajoutez au template `{{ alarm.state.val }}`.
Exemple : pour ajouter une info popup sur la colonne que vous avez nommée "Connecteur", avec comme valeur "alarm.v.connector" (*Cf: [Paramètre "Nom des colonnes"](#nom-des-colonnes)*), il faut entrer ici "alarm.v.connector" et non "Connecteur".
* Texte : Ce champ, qui a la forme d'un éditeur de texte, permet de définir le contenu de l'info popup. Le langage utilisé ici pour le template de la popup est l'Handlebar. Deux variables sont disponibles : "alarm" et "entity". Exemple : Pour ajouter au template l'état de l'alarme, ajoutez au template `{{ alarm.v.state.val }}`.
Vous pouvez ajouter autant d'info popup que vous le souhaitez.
......@@ -219,4 +234,4 @@ Deux variables sont disponibles ici, 'alarm' et 'entity'.
En plus du texte que vous souhaitez afficher, il vous est donc possible d'intégrer des informations de l'alarme ou de l'entité concernée par cette alarme.
Exemple : Pour afficher l'état de l'alarme, ajoutez `{{ alarm.state.val }}`.
Exemple : Pour afficher l'état de l'alarme, ajoutez `{{ alarm.v.state.val }}`.
......@@ -14,7 +14,8 @@
6. [Comportements périodiques](#comportements-periodiques)
### Guide exploitant
1. [Paramètres du widget](#parametres-du-widget)
1. [Aide sur les variables](#aide-variables)
2. [Paramètres du widget](#parametres-du-widget)
## Guide utilisateur
......@@ -132,6 +133,18 @@ Pour ajouter un comportement périodique sur une sélection d'entités, sélecti
## Guide exploitant
### Aide - Variables
Durant la configuration de votre widget Exporateur de contexte, notamment la liste des colonnes, il vous sera possible d'accéder à des variables concernant les entités.
Afin de connaitre les variables disponibles, une modale d'aide est disponible.
Pour y accéder, entrez dans le mode d'édition (*Cf: [Vues - Mode d'édition](../../vues#mode-edition)*).
Un bouton d'action supplémentaire "Liste des variables disponibles" apparaît alors pour chaque entité du tableau.
Au clic sur ce bouton, une fenêtre s'ouvre. Celle-ci liste toutes les variables disponibles dans vos différents paramètres. Un bouton, à droite de chacune des variables, vous permet de copier directement dans le Presse-papier le chemin de cette variable.
### Paramètres du widget
1. Taille du widget
......
......@@ -32,7 +32,7 @@ Pour le tableau, le choix de la stat part du même principe que celle de l'histo
Pour **ajouter une statistique** parmi celles-ci :
* Les alarmes créées, résolues et annulées.
* Le temps SLA (Service Level Agreement) des accusé de réception.
* Le temps SLA (Service Level Agreement) des accusés de réception.
* Le temps de résolution SLA.
* Le taux d'état (d'alarme).
* Le MTBF (mean time between failures), temps moyen entre pannes.
......
# Présentation
# Présentation du widget stats
## Stats calculées et mises à disposition
......@@ -6,13 +6,13 @@ Canopsis vous propose d'afficher des statistiques détaillées sur vos alarmes s
Les données pouvant être calculées sont :
- Les alarmes créées, résolues et annulées.
- Le temps SLA (Service Level Agreement) des accusé de réception.
- Le temps de résolution SLA.
- Le taux d'état (d'alarme).
- Le MTBF (mean time between failures), temps moyen entre pannes.
- L'état courant.
- Les alarmes en cours : Ongoing alarms
- Les alarmes actuellement en cours : Current Ongoing alarms
* Les alarmes créées, résolues et annulées.
* Le temps SLA (Service Level Agreement) des accusés de réception.
* Le temps de résolution SLA.
* Le taux d'état (d'alarme).
* Le MTBF (mean time between failures), temps moyen entre pannes.
* L'état courant.
* Les alarmes en cours : Ongoing alarms
* Les alarmes actuellement en cours : Current Ongoing alarms
Pour plus de détails sur les indicateurs, [rendez-vous ici !](Utilisation-du-widget.md)
{
"plugins": [
"lodash"
],
"presets": [
"@vue/app"
]
}
\ No newline at end of file
}
......@@ -5,3 +5,5 @@ VUE_APP_POPUP_AUTO_CLOSE_DELAY=3000
VUE_APP_PAGINATION_LIMIT=10
VUE_APP_COOKIE_SESSION_KEY=beaker.session.id
BUNDLE_ANALYZER_MODE=disabled # disabled / server / static
......@@ -38,6 +38,7 @@
"vue-i18n": "^7.6.0",
"vue-mq": "^0.2.1",
"vue-quill-editor": "^3.0.6",
"vue-resize-text": "^0.1.0",
"vue-router": "^3.0