Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c46836ab1c |
No files matched your search
@@ -3,6 +3,23 @@
|
||||
Format : [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/).
|
||||
Versionnement sémantique, comme décrit dans [docs/CONVENTIONS.md](docs/CONVENTIONS.md).
|
||||
|
||||
## 1.20.0
|
||||
|
||||
### Ajouté
|
||||
- Dix-neuf packs applicatifs : Tomcat, JVM, Kafka, ActiveMQ et ZooKeeper en JMX ; Graylog,
|
||||
Wazuh, HashiCorp Vault, Jenkins, Grafana, Prometheus, Veeam Enterprise Manager, Microsoft
|
||||
IIS et Podman en API REST ; HAProxy, Keepalived, Squid et Microsoft DHCP en SNMP ; PHP-FPM
|
||||
par sa page de statut
|
||||
- Catalogue porté à 71 packs et 266 sondes, dont 22 en Applications
|
||||
|
||||
## 1.19.0
|
||||
|
||||
### Ajouté
|
||||
- Un périmètre créé à la main reprend le dernier calendrier du projet, et propose d'en créer
|
||||
un — en permanence ou en heures ouvrées — quand il n'y en a aucun
|
||||
- Un périmètre sans calendrier est signalé dans son écran ; faute de choix, il vise `24x7`
|
||||
sur le central, et la validation le rappelle
|
||||
|
||||
## 1.18.0
|
||||
|
||||
### Modifié
|
||||
|
||||
@@ -10,7 +10,7 @@ Projet indépendant, sans lien avec Centreon SAS.
|
||||
|
||||
- **Éditeur libre** : commandes, modèles de service, modèles d'hôte, hôtes. Héritage,
|
||||
duplication, rattachement des services aux modèles d'hôte.
|
||||
- **Catalogue de départ** : 52 packs, 224 sondes, importables puis modifiables.
|
||||
- **Catalogue de départ** : 71 packs, 266 sondes, importables puis modifiables.
|
||||
- **Validation** avant génération : noms en double, références manquantes, point-virgule
|
||||
interdit, services rattachés à aucun modèle d'hôte, mots de passe en clair.
|
||||
- **Quatre fichiers** : `deploy.sh` (avec `--dry-run`), `deploy.clapi` (import CLAPI),
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
id: app-activemq-jmx
|
||||
name: Apache ActiveMQ (JMX)
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_activemq_jmx.pl
|
||||
description: Supervision d'un courtier ActiveMQ via JMX et l'agent Jolokia.
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
notes: |
|
||||
Deployer l'agent Jolokia dans la JVM supervisee et exposer son point
|
||||
d'acces au collecteur : les plugins JMX de Centreon passent par lui.
|
||||
host_template:
|
||||
name: App-ActiveMQ-JMX-custom
|
||||
alias: Applicatif ActiveMQ JMX
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: JMXURL, value: "http://localhost:8080/jolokia", description: "URL de l'agent Jolokia"}
|
||||
- {name: JMXUSERNAME, value: "", description: "Compte Jolokia"}
|
||||
- {name: JMXPASSWORD, value: "", description: "Mot de passe Jolokia", is_password: true}
|
||||
- {name: JMXEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-ActiveMQ-JMX
|
||||
alias: Apache ActiveMQ (JMX)
|
||||
notification:
|
||||
perimetre: Apache ActiveMQ (JMX)
|
||||
calendrier:
|
||||
name: TP-App-ActiveMQ-JMX-24x7
|
||||
modele: 24x7
|
||||
alias: Apache ActiveMQ (JMX), en permanence
|
||||
groupe: CG-App-ActiveMQ-JMX
|
||||
criticite: Majeure
|
||||
impact: "Files de messages bloquees"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Queues
|
||||
alias: Queues
|
||||
description: Messages en attente dans les files
|
||||
line: "$CENTREONPLUGINS$/centreon_activemq_jmx.pl --plugin=apps::activemq::jmx::plugin --mode=queues --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Topics
|
||||
alias: Topics
|
||||
description: Sujets et abonnes
|
||||
line: "$CENTREONPLUGINS$/centreon_activemq_jmx.pl --plugin=apps::activemq::jmx::plugin --mode=topics --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Broker-Usage
|
||||
alias: Broker-Usage
|
||||
description: Memoire et stockage du courtier
|
||||
line: "$CENTREONPLUGINS$/centreon_activemq_jmx.pl --plugin=apps::activemq::jmx::plugin --mode=broker-usage --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,38 @@
|
||||
id: app-dhcp-snmp
|
||||
name: Microsoft DHCP (SNMP)
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_microsoft_dhcp_snmp.pl
|
||||
description: Supervision d'un serveur DHCP Microsoft en SNMP (occupation des etendues).
|
||||
host_template:
|
||||
name: App-DHCP-SNMP-custom
|
||||
alias: Applicatif Microsoft DHCP
|
||||
parents: [generic-active-host-custom]
|
||||
check_command: check_centreon_ping
|
||||
check_command_args: "!3!200,20%!400,50%"
|
||||
macros:
|
||||
- {name: SNMPEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-DHCP-SNMP
|
||||
alias: Microsoft DHCP (SNMP)
|
||||
notification:
|
||||
perimetre: Microsoft DHCP (SNMP)
|
||||
calendrier:
|
||||
name: TP-App-DHCP-SNMP-24x7
|
||||
modele: 24x7
|
||||
alias: Microsoft DHCP (SNMP), en permanence
|
||||
groupe: CG-App-DHCP-SNMP
|
||||
criticite: Critique
|
||||
impact: "Attribution d'adresses interrompue, postes sans reseau"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Subnet-Usage
|
||||
alias: Subnet-Usage
|
||||
description: Occupation des etendues
|
||||
line: "$CENTREONPLUGINS$/centreon_microsoft_dhcp_snmp.pl --plugin=apps::microsoft::dhcp::snmp::plugin --mode=subnet-usage --hostname=$HOSTADDRESS$ --snmp-version='$_HOSTSNMPVERSION$' --snmp-community='$_HOSTSNMPCOMMUNITY$' $_HOSTSNMPEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,41 @@
|
||||
id: app-grafana
|
||||
name: Grafana
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_grafana_restapi.pl
|
||||
description: Supervision d'un serveur Grafana via son API REST (etat de fonctionnement).
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
host_template:
|
||||
name: App-Grafana-custom
|
||||
alias: Applicatif Grafana
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: APIPORT, value: "443", description: "Port de l'API"}
|
||||
- {name: APIPROTO, value: "https", description: "Protocole d'acces"}
|
||||
- {name: APITOKEN, value: "", description: "Jeton d'API", is_password: true}
|
||||
- {name: APIEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Grafana
|
||||
alias: Grafana
|
||||
notification:
|
||||
perimetre: Grafana
|
||||
calendrier:
|
||||
name: TP-App-Grafana-24x7
|
||||
modele: 24x7
|
||||
alias: Grafana, en permanence
|
||||
groupe: CG-App-Grafana
|
||||
criticite: Mineure
|
||||
impact: "Tableaux de bord indisponibles"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Health
|
||||
alias: Health
|
||||
description: Etat de fonctionnement du serveur
|
||||
line: "$CENTREONPLUGINS$/centreon_grafana_restapi.pl --plugin=apps::grafana::restapi::plugin --mode=health --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-token='$_HOSTAPITOKEN$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,50 @@
|
||||
id: app-graylog
|
||||
name: Graylog
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_graylog_restapi.pl
|
||||
description: Supervision d'un serveur Graylog via son API REST (notifications, recherches).
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
host_template:
|
||||
name: App-Graylog-custom
|
||||
alias: Applicatif Graylog
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: APIPORT, value: "443", description: "Port de l'API"}
|
||||
- {name: APIPROTO, value: "https", description: "Protocole d'acces"}
|
||||
- {name: APIUSERNAME, value: "centreon", description: "Compte de supervision"}
|
||||
- {name: APIPASSWORD, value: "", description: "Mot de passe du compte", is_password: true}
|
||||
- {name: APIEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Graylog
|
||||
alias: Graylog
|
||||
notification:
|
||||
perimetre: Graylog
|
||||
calendrier:
|
||||
name: TP-App-Graylog-24x7
|
||||
modele: 24x7
|
||||
alias: Graylog, en permanence
|
||||
groupe: CG-App-Graylog
|
||||
criticite: Majeure
|
||||
impact: "Collecte et recherche de journaux interrompues"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Notifications
|
||||
alias: Notifications
|
||||
description: Notifications systeme du cluster
|
||||
line: "$CENTREONPLUGINS$/centreon_graylog_restapi.pl --plugin=apps::graylog::restapi::plugin --mode=notifications --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-username='$_HOSTAPIUSERNAME$' --api-password='$_HOSTAPIPASSWORD$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Query
|
||||
alias: Query
|
||||
description: Nombre de messages correspondant a une recherche
|
||||
line: "$CENTREONPLUGINS$/centreon_graylog_restapi.pl --plugin=apps::graylog::restapi::plugin --mode=query --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-username='$_HOSTAPIUSERNAME$' --api-password='$_HOSTAPIPASSWORD$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,46 @@
|
||||
id: app-haproxy-snmp
|
||||
name: HAProxy (SNMP)
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_haproxy_snmp.pl
|
||||
description: Supervision d'un repartiteur HAProxy en SNMP (frontaux, arrieres, sessions).
|
||||
host_template:
|
||||
name: App-HAProxy-SNMP-custom
|
||||
alias: Applicatif HAProxy SNMP
|
||||
parents: [generic-active-host-custom]
|
||||
check_command: check_centreon_ping
|
||||
check_command_args: "!3!200,20%!400,50%"
|
||||
macros:
|
||||
- {name: SNMPEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-HAProxy-SNMP
|
||||
alias: HAProxy (SNMP)
|
||||
notification:
|
||||
perimetre: HAProxy (SNMP)
|
||||
calendrier:
|
||||
name: TP-App-HAProxy-SNMP-24x7
|
||||
modele: 24x7
|
||||
alias: HAProxy (SNMP), en permanence
|
||||
groupe: CG-App-HAProxy-SNMP
|
||||
criticite: Critique
|
||||
impact: "Repartition de charge degradee, services web inaccessibles"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Frontend-Usage
|
||||
alias: Frontend-Usage
|
||||
description: Sessions et trafic des frontaux
|
||||
line: "$CENTREONPLUGINS$/centreon_haproxy_snmp.pl --plugin=apps::haproxy::snmp::plugin --mode=frontend-usage --hostname=$HOSTADDRESS$ --snmp-version='$_HOSTSNMPVERSION$' --snmp-community='$_HOSTSNMPCOMMUNITY$' $_HOSTSNMPEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Backend-Usage
|
||||
alias: Backend-Usage
|
||||
description: Sessions et etat des arrieres
|
||||
line: "$CENTREONPLUGINS$/centreon_haproxy_snmp.pl --plugin=apps::haproxy::snmp::plugin --mode=backend-usage --hostname=$HOSTADDRESS$ --snmp-version='$_HOSTSNMPVERSION$' --snmp-community='$_HOSTSNMPCOMMUNITY$' $_HOSTSNMPEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,49 @@
|
||||
id: app-hashicorp-vault
|
||||
name: HashiCorp Vault
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_hashicorp_vault_restapi.pl
|
||||
description: Supervision d'un serveur HashiCorp Vault via son API REST (scellement, stockage Raft).
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
host_template:
|
||||
name: App-Vault-custom
|
||||
alias: Applicatif HashiCorp Vault
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: APIPORT, value: "443", description: "Port de l'API"}
|
||||
- {name: APIPROTO, value: "https", description: "Protocole d'acces"}
|
||||
- {name: APITOKEN, value: "", description: "Jeton d'API", is_password: true}
|
||||
- {name: APIEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Vault
|
||||
alias: HashiCorp Vault
|
||||
notification:
|
||||
perimetre: HashiCorp Vault
|
||||
calendrier:
|
||||
name: TP-App-Vault-24x7
|
||||
modele: 24x7
|
||||
alias: HashiCorp Vault, en permanence
|
||||
groupe: CG-App-Vault
|
||||
criticite: Critique
|
||||
impact: "Secrets inaccessibles, applications dependantes bloquees"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Seal-Status
|
||||
alias: Seal-Status
|
||||
description: Etat de scellement du coffre
|
||||
line: "$CENTREONPLUGINS$/centreon_hashicorp_vault_restapi.pl --plugin=apps::hashicorp::vault::restapi::plugin --mode=seal-status --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-token='$_HOSTAPITOKEN$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Raft-Storage
|
||||
alias: Raft-Storage
|
||||
description: Performances du stockage Raft
|
||||
line: "$CENTREONPLUGINS$/centreon_hashicorp_vault_restapi.pl --plugin=apps::hashicorp::vault::restapi::plugin --mode=raft-storage --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-token='$_HOSTAPITOKEN$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,50 @@
|
||||
id: app-iis-restapi
|
||||
name: Microsoft IIS (API REST)
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_iis_restapi.pl
|
||||
description: Supervision d'un serveur IIS via l'API REST de l'administration (pools, sites).
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
host_template:
|
||||
name: App-IIS-custom
|
||||
alias: Applicatif Microsoft IIS
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: APIPORT, value: "443", description: "Port de l'API"}
|
||||
- {name: APIPROTO, value: "https", description: "Protocole d'acces"}
|
||||
- {name: APIUSERNAME, value: "centreon", description: "Compte de supervision"}
|
||||
- {name: APIPASSWORD, value: "", description: "Mot de passe du compte", is_password: true}
|
||||
- {name: APIEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-IIS
|
||||
alias: Microsoft IIS (API REST)
|
||||
notification:
|
||||
perimetre: Microsoft IIS (API REST)
|
||||
calendrier:
|
||||
name: TP-App-IIS-24x7
|
||||
modele: 24x7
|
||||
alias: Microsoft IIS (API REST), en permanence
|
||||
groupe: CG-App-IIS
|
||||
criticite: Majeure
|
||||
impact: "Sites et applications web indisponibles"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Application-Pools
|
||||
alias: Application-Pools
|
||||
description: Etat des pools d'applications
|
||||
line: "$CENTREONPLUGINS$/centreon_iis_restapi.pl --plugin=apps::microsoft::iis::restapi::plugin --mode=application-pools --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-username='$_HOSTAPIUSERNAME$' --api-password='$_HOSTAPIPASSWORD$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Web-Sites
|
||||
alias: Web-Sites
|
||||
description: Trafic et connexions des sites
|
||||
line: "$CENTREONPLUGINS$/centreon_iis_restapi.pl --plugin=apps::microsoft::iis::restapi::plugin --mode=web-sites --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-username='$_HOSTAPIUSERNAME$' --api-password='$_HOSTAPIPASSWORD$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,49 @@
|
||||
id: app-jenkins
|
||||
name: Jenkins
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_jenkins_restapi.pl
|
||||
description: Supervision d'un serveur Jenkins via son API REST (etat des travaux).
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
host_template:
|
||||
name: App-Jenkins-custom
|
||||
alias: Applicatif Jenkins
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: APIPORT, value: "443", description: "Port de l'API"}
|
||||
- {name: APIPROTO, value: "https", description: "Protocole d'acces"}
|
||||
- {name: APITOKEN, value: "", description: "Jeton d'API", is_password: true}
|
||||
- {name: APIEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Jenkins
|
||||
alias: Jenkins
|
||||
notification:
|
||||
perimetre: Jenkins
|
||||
calendrier:
|
||||
name: TP-App-Jenkins-24x7
|
||||
modele: 24x7
|
||||
alias: Jenkins, en permanence
|
||||
groupe: CG-App-Jenkins
|
||||
criticite: Mineure
|
||||
impact: "Chaines d'integration continue a l'arret"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Jobs
|
||||
alias: Jobs
|
||||
description: Etat des travaux
|
||||
line: "$CENTREONPLUGINS$/centreon_jenkins_restapi.pl --plugin=apps::jenkins::restapi::plugin --mode=jobs --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-token='$_HOSTAPITOKEN$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Nodes
|
||||
alias: Nodes
|
||||
description: Etat des agents de construction
|
||||
line: "$CENTREONPLUGINS$/centreon_jenkins_restapi.pl --plugin=apps::jenkins::restapi::plugin --mode=nodes --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-token='$_HOSTAPITOKEN$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,70 @@
|
||||
id: app-jvm-jmx
|
||||
name: Machine virtuelle Java (JMX)
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_java_jvm.pl
|
||||
description: Supervision d'une machine virtuelle Java via JMX et l'agent Jolokia.
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
notes: |
|
||||
Deployer l'agent Jolokia dans la JVM supervisee et exposer son point
|
||||
d'acces au collecteur : les plugins JMX de Centreon passent par lui.
|
||||
host_template:
|
||||
name: App-JVM-JMX-custom
|
||||
alias: Applicatif JVM JMX
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: JMXURL, value: "http://localhost:8080/jolokia", description: "URL de l'agent Jolokia"}
|
||||
- {name: JMXUSERNAME, value: "", description: "Compte Jolokia"}
|
||||
- {name: JMXPASSWORD, value: "", description: "Mot de passe Jolokia", is_password: true}
|
||||
- {name: JMXEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-JVM-JMX
|
||||
alias: Machine virtuelle Java (JMX)
|
||||
notification:
|
||||
perimetre: Machine virtuelle Java (JMX)
|
||||
calendrier:
|
||||
name: TP-App-JVM-JMX-24x7
|
||||
modele: 24x7
|
||||
alias: Machine virtuelle Java (JMX), en permanence
|
||||
groupe: CG-App-JVM-JMX
|
||||
criticite: Majeure
|
||||
impact: "Application Java degradee ou arretee"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Memory
|
||||
alias: Memory
|
||||
description: Memoire utilisee par la JVM
|
||||
line: "$CENTREONPLUGINS$/centreon_java_jvm.pl --plugin=apps::java::jvm::plugin --mode=memory --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Gc
|
||||
alias: Gc
|
||||
description: Ramasse-miettes
|
||||
line: "$CENTREONPLUGINS$/centreon_java_jvm.pl --plugin=apps::java::jvm::plugin --mode=gcutil --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Threads
|
||||
alias: Threads
|
||||
description: Fils d'execution
|
||||
line: "$CENTREONPLUGINS$/centreon_java_jvm.pl --plugin=apps::java::jvm::plugin --mode=threads --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Class-Count
|
||||
alias: Class-Count
|
||||
description: Classes chargees
|
||||
line: "$CENTREONPLUGINS$/centreon_java_jvm.pl --plugin=apps::java::jvm::plugin --mode=class-count --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,62 @@
|
||||
id: app-kafka-jmx
|
||||
name: Apache Kafka (JMX)
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_kafka_jmx.pl
|
||||
description: Supervision d'un courtier Kafka via JMX et l'agent Jolokia.
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
notes: |
|
||||
Deployer l'agent Jolokia dans la JVM supervisee et exposer son point
|
||||
d'acces au collecteur : les plugins JMX de Centreon passent par lui.
|
||||
host_template:
|
||||
name: App-Kafka-JMX-custom
|
||||
alias: Applicatif Kafka JMX
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: JMXURL, value: "http://localhost:8080/jolokia", description: "URL de l'agent Jolokia"}
|
||||
- {name: JMXUSERNAME, value: "", description: "Compte Jolokia"}
|
||||
- {name: JMXPASSWORD, value: "", description: "Mot de passe Jolokia", is_password: true}
|
||||
- {name: JMXEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Kafka-JMX
|
||||
alias: Apache Kafka (JMX)
|
||||
notification:
|
||||
perimetre: Apache Kafka (JMX)
|
||||
calendrier:
|
||||
name: TP-App-Kafka-JMX-24x7
|
||||
modele: 24x7
|
||||
alias: Apache Kafka (JMX), en permanence
|
||||
groupe: CG-App-Kafka-JMX
|
||||
criticite: Majeure
|
||||
impact: "Echanges entre applications interrompus"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Broker-Status
|
||||
alias: Broker-Status
|
||||
description: Etat du courtier et partitions
|
||||
line: "$CENTREONPLUGINS$/centreon_kafka_jmx.pl --plugin=apps::kafka::jmx::plugin --mode=brokers --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Topics
|
||||
alias: Topics
|
||||
description: Trafic par sujet
|
||||
line: "$CENTREONPLUGINS$/centreon_kafka_jmx.pl --plugin=apps::kafka::jmx::plugin --mode=topics --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Global
|
||||
alias: Global
|
||||
description: Statistiques globales du cluster
|
||||
line: "$CENTREONPLUGINS$/centreon_kafka_jmx.pl --plugin=apps::kafka::jmx::plugin --mode=global --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,36 @@
|
||||
id: app-keepalived-snmp
|
||||
name: Keepalived (SNMP)
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_keepalived_snmp.pl
|
||||
description: Supervision de l'etat VRRP d'un noeud Keepalived en SNMP.
|
||||
host_template:
|
||||
name: App-Keepalived-SNMP-custom
|
||||
alias: Applicatif Keepalived SNMP
|
||||
parents: [generic-active-host-custom]
|
||||
check_command: check_centreon_ping
|
||||
check_command_args: "!3!200,20%!400,50%"
|
||||
macros:
|
||||
- {name: SNMPEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Keepalived-SNMP
|
||||
alias: Keepalived (SNMP)
|
||||
notification:
|
||||
perimetre: Keepalived (SNMP)
|
||||
calendrier:
|
||||
name: TP-App-Keepalived-SNMP-24x7
|
||||
modele: 24x7
|
||||
alias: Keepalived (SNMP), en permanence
|
||||
groupe: CG-App-Keepalived-SNMP
|
||||
criticite: Critique
|
||||
impact: "Bascule d'adresse virtuelle compromise"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Vrrp-Status
|
||||
alias: Vrrp-Status
|
||||
description: Etat des instances VRRP
|
||||
line: "$CENTREONPLUGINS$/centreon_keepalived_snmp.pl --plugin=apps::keepalived::snmp::plugin --mode=vrrp-status --hostname=$HOSTADDRESS$ --snmp-version='$_HOSTSNMPVERSION$' --snmp-community='$_HOSTSNMPCOMMUNITY$' $_HOSTSNMPEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,54 @@
|
||||
id: app-php-fpm
|
||||
name: PHP-FPM
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_php_fpm_web.pl
|
||||
description: Supervision d'un pool PHP-FPM via sa page de statut (processus, file d'attente, requetes).
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl]
|
||||
rhel: [perl-libwww-perl]
|
||||
notes: |
|
||||
Activer pm.status_path dans la configuration du pool, et exposer ce chemin
|
||||
au collecteur depuis le serveur web.
|
||||
host_template:
|
||||
name: App-PHP-FPM-custom
|
||||
alias: Applicatif PHP-FPM
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: FPMPORT, value: "80", description: "Port du serveur web"}
|
||||
- {name: FPMPROTO, value: "http", description: "Protocole d'acces"}
|
||||
- {name: FPMURLPATH, value: "/status", description: "Chemin de la page de statut"}
|
||||
- {name: FPMEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-PHP-FPM
|
||||
alias: PHP-FPM
|
||||
notification:
|
||||
perimetre: PHP-FPM
|
||||
calendrier:
|
||||
name: TP-App-PHP-FPM-24x7
|
||||
modele: 24x7
|
||||
alias: PHP-FPM, en permanence
|
||||
groupe: CG-App-PHP-FPM
|
||||
criticite: Majeure
|
||||
impact: "Applications PHP indisponibles ou saturees"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Processes
|
||||
alias: Processes
|
||||
description: Processus actifs, inactifs et file d'attente
|
||||
line: "$CENTREONPLUGINS$/centreon_php_fpm_web.pl --plugin=apps::php::fpm::web::plugin --mode=usage --hostname=$HOSTADDRESS$ --port='$_HOSTFPMPORT$' --proto='$_HOSTFPMPROTO$' --urlpath='$_HOSTFPMURLPATH$' --warning-active-processes='$_SERVICEWARNING$' --critical-active-processes='$_SERVICECRITICAL$' $_HOSTFPMEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning sur les processus actifs"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical sur les processus actifs"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Listen-Queue
|
||||
alias: Listen-Queue
|
||||
description: File d'attente des connexions
|
||||
line: "$CENTREONPLUGINS$/centreon_php_fpm_web.pl --plugin=apps::php::fpm::web::plugin --mode=usage --hostname=$HOSTADDRESS$ --port='$_HOSTFPMPORT$' --proto='$_HOSTFPMPROTO$' --urlpath='$_HOSTFPMURLPATH$' --warning-listen-queue='$_SERVICEWARNING$' --critical-listen-queue='$_SERVICECRITICAL$' $_HOSTFPMEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "1", description: "Seuil warning sur la file d'attente"}
|
||||
- {name: CRITICAL, value: "10", description: "Seuil critical sur la file d'attente"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,43 @@
|
||||
id: app-prometheus
|
||||
name: Prometheus
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_prometheus_api.pl
|
||||
description: Supervision d'un serveur Prometheus via son API REST (cibles).
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
host_template:
|
||||
name: App-Prometheus-custom
|
||||
alias: Applicatif Prometheus
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: APIPORT, value: "443", description: "Port de l'API"}
|
||||
- {name: APIPROTO, value: "https", description: "Protocole d'acces"}
|
||||
- {name: APITOKEN, value: "", description: "Jeton d'API", is_password: true}
|
||||
- {name: APIEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Prometheus
|
||||
alias: Prometheus
|
||||
notification:
|
||||
perimetre: Prometheus
|
||||
calendrier:
|
||||
name: TP-App-Prometheus-24x7
|
||||
modele: 24x7
|
||||
alias: Prometheus, en permanence
|
||||
groupe: CG-App-Prometheus
|
||||
criticite: Mineure
|
||||
impact: "Collecte de metriques interrompue"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Targets
|
||||
alias: Targets
|
||||
description: Etat des cibles de collecte
|
||||
line: "$CENTREONPLUGINS$/centreon_prometheus_api.pl --plugin=cloud::prometheus::restapi::plugin --mode=targets --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-token='$_HOSTAPITOKEN$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,54 @@
|
||||
id: app-squid-snmp
|
||||
name: Squid (SNMP)
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_squid_snmp.pl
|
||||
description: Supervision d'un mandataire Squid en SNMP (cache, trafic, ressources).
|
||||
host_template:
|
||||
name: App-Squid-SNMP-custom
|
||||
alias: Applicatif Squid SNMP
|
||||
parents: [generic-active-host-custom]
|
||||
check_command: check_centreon_ping
|
||||
check_command_args: "!3!200,20%!400,50%"
|
||||
macros:
|
||||
- {name: SNMPEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Squid-SNMP
|
||||
alias: Squid (SNMP)
|
||||
notification:
|
||||
perimetre: Squid (SNMP)
|
||||
calendrier:
|
||||
name: TP-App-Squid-SNMP-24x7
|
||||
modele: 24x7
|
||||
alias: Squid (SNMP), en permanence
|
||||
groupe: CG-App-Squid-SNMP
|
||||
criticite: Majeure
|
||||
impact: "Acces web des postes bloque ou ralenti"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Cache-Usage
|
||||
alias: Cache-Usage
|
||||
description: Taux de succes et occupation du cache
|
||||
line: "$CENTREONPLUGINS$/centreon_squid_snmp.pl --plugin=apps::squid::snmp::plugin --mode=cache-usage --hostname=$HOSTADDRESS$ --snmp-version='$_HOSTSNMPVERSION$' --snmp-community='$_HOSTSNMPCOMMUNITY$' $_HOSTSNMPEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Traffic
|
||||
alias: Traffic
|
||||
description: Trafic HTTP et ICP
|
||||
line: "$CENTREONPLUGINS$/centreon_squid_snmp.pl --plugin=apps::squid::snmp::plugin --mode=traffic --hostname=$HOSTADDRESS$ --snmp-version='$_HOSTSNMPVERSION$' --snmp-community='$_HOSTSNMPCOMMUNITY$' $_HOSTSNMPEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: System
|
||||
alias: System
|
||||
description: Processeur et memoire du service
|
||||
line: "$CENTREONPLUGINS$/centreon_squid_snmp.pl --plugin=apps::squid::snmp::plugin --mode=system --hostname=$HOSTADDRESS$ --snmp-version='$_HOSTSNMPVERSION$' --snmp-community='$_HOSTSNMPCOMMUNITY$' $_HOSTSNMPEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,70 @@
|
||||
id: app-tomcat-jmx
|
||||
name: Apache Tomcat (JMX)
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_tomcat_jmx.pl
|
||||
description: Supervision d'un serveur Tomcat via JMX et l'agent Jolokia.
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
notes: |
|
||||
Deployer l'agent Jolokia dans la JVM supervisee et exposer son point
|
||||
d'acces au collecteur : les plugins JMX de Centreon passent par lui.
|
||||
host_template:
|
||||
name: App-Tomcat-JMX-custom
|
||||
alias: Applicatif Tomcat JMX
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: JMXURL, value: "http://localhost:8080/jolokia", description: "URL de l'agent Jolokia"}
|
||||
- {name: JMXUSERNAME, value: "", description: "Compte Jolokia"}
|
||||
- {name: JMXPASSWORD, value: "", description: "Mot de passe Jolokia", is_password: true}
|
||||
- {name: JMXEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Tomcat-JMX
|
||||
alias: Apache Tomcat (JMX)
|
||||
notification:
|
||||
perimetre: Apache Tomcat (JMX)
|
||||
calendrier:
|
||||
name: TP-App-Tomcat-JMX-24x7
|
||||
modele: 24x7
|
||||
alias: Apache Tomcat (JMX), en permanence
|
||||
groupe: CG-App-Tomcat-JMX
|
||||
criticite: Majeure
|
||||
impact: "Applications Java hebergees indisponibles"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Memory
|
||||
alias: Memory
|
||||
description: Memoire de la JVM
|
||||
line: "$CENTREONPLUGINS$/centreon_tomcat_jmx.pl --plugin=apps::tomcat::jmx::plugin --mode=memory-detailed --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Threads
|
||||
alias: Threads
|
||||
description: Fils d'execution
|
||||
line: "$CENTREONPLUGINS$/centreon_tomcat_jmx.pl --plugin=apps::tomcat::jmx::plugin --mode=threads --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Sessions
|
||||
alias: Sessions
|
||||
description: Sessions des applications web
|
||||
line: "$CENTREONPLUGINS$/centreon_tomcat_jmx.pl --plugin=apps::tomcat::jmx::plugin --mode=sessions --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Requests
|
||||
alias: Requests
|
||||
description: Requetes traitees par les connecteurs
|
||||
line: "$CENTREONPLUGINS$/centreon_tomcat_jmx.pl --plugin=apps::tomcat::jmx::plugin --mode=connector-usage --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,50 @@
|
||||
id: app-veeam-vbem
|
||||
name: Veeam Backup Enterprise Manager
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_veeam_vbem_restapi.pl
|
||||
description: Supervision de Veeam Backup Enterprise Manager via son API REST (travaux, depots).
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
host_template:
|
||||
name: App-Veeam-VBEM-custom
|
||||
alias: Applicatif Veeam Enterprise Manager
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: APIPORT, value: "443", description: "Port de l'API"}
|
||||
- {name: APIPROTO, value: "https", description: "Protocole d'acces"}
|
||||
- {name: APIUSERNAME, value: "centreon", description: "Compte de supervision"}
|
||||
- {name: APIPASSWORD, value: "", description: "Mot de passe du compte", is_password: true}
|
||||
- {name: APIEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Veeam-VBEM
|
||||
alias: Veeam Backup Enterprise Manager
|
||||
notification:
|
||||
perimetre: Veeam Backup Enterprise Manager
|
||||
calendrier:
|
||||
name: TP-App-Veeam-VBEM-24x7
|
||||
modele: 24x7
|
||||
alias: Veeam Backup Enterprise Manager, en permanence
|
||||
groupe: CG-App-Veeam-VBEM
|
||||
criticite: Critique
|
||||
impact: "Sauvegardes non verifiees, restauration compromise"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Job-Status
|
||||
alias: Job-Status
|
||||
description: Etat des travaux de sauvegarde
|
||||
line: "$CENTREONPLUGINS$/centreon_veeam_vbem_restapi.pl --plugin=apps::backup::veeam::vbem::restapi::plugin --mode=job-status --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-username='$_HOSTAPIUSERNAME$' --api-password='$_HOSTAPIPASSWORD$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Repository-Usage
|
||||
alias: Repository-Usage
|
||||
description: Occupation des depots
|
||||
line: "$CENTREONPLUGINS$/centreon_veeam_vbem_restapi.pl --plugin=apps::backup::veeam::vbem::restapi::plugin --mode=repository-usage --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-username='$_HOSTAPIUSERNAME$' --api-password='$_HOSTAPIPASSWORD$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,50 @@
|
||||
id: app-wazuh
|
||||
name: Wazuh
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_wazuh_restapi.pl
|
||||
description: Supervision d'un gestionnaire Wazuh via son API REST (agents, processus).
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
host_template:
|
||||
name: App-Wazuh-custom
|
||||
alias: Applicatif Wazuh
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: APIPORT, value: "443", description: "Port de l'API"}
|
||||
- {name: APIPROTO, value: "https", description: "Protocole d'acces"}
|
||||
- {name: APIUSERNAME, value: "centreon", description: "Compte de supervision"}
|
||||
- {name: APIPASSWORD, value: "", description: "Mot de passe du compte", is_password: true}
|
||||
- {name: APIEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Wazuh
|
||||
alias: Wazuh
|
||||
notification:
|
||||
perimetre: Wazuh
|
||||
calendrier:
|
||||
name: TP-App-Wazuh-24x7
|
||||
modele: 24x7
|
||||
alias: Wazuh, en permanence
|
||||
groupe: CG-App-Wazuh
|
||||
criticite: Critique
|
||||
impact: "Detection d'intrusion et conformite hors service"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Agents
|
||||
alias: Agents
|
||||
description: Etat de connexion des agents
|
||||
line: "$CENTREONPLUGINS$/centreon_wazuh_restapi.pl --plugin=apps::wazuh::restapi::plugin --mode=agents --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-username='$_HOSTAPIUSERNAME$' --api-password='$_HOSTAPIPASSWORD$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Manager
|
||||
alias: Manager
|
||||
description: Processus du gestionnaire
|
||||
line: "$CENTREONPLUGINS$/centreon_wazuh_restapi.pl --plugin=apps::wazuh::restapi::plugin --mode=manager --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-username='$_HOSTAPIUSERNAME$' --api-password='$_HOSTAPIPASSWORD$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,62 @@
|
||||
id: app-zookeeper-jmx
|
||||
name: Apache ZooKeeper (JMX)
|
||||
category: applications
|
||||
status: to-verify
|
||||
plugin: centreon_zookeeper_jmx.pl
|
||||
description: Supervision d'un noeud ZooKeeper via JMX et l'agent Jolokia.
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
notes: |
|
||||
Deployer l'agent Jolokia dans la JVM supervisee et exposer son point
|
||||
d'acces au collecteur : les plugins JMX de Centreon passent par lui.
|
||||
host_template:
|
||||
name: App-ZooKeeper-JMX-custom
|
||||
alias: Applicatif ZooKeeper JMX
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: JMXURL, value: "http://localhost:8080/jolokia", description: "URL de l'agent Jolokia"}
|
||||
- {name: JMXUSERNAME, value: "", description: "Compte Jolokia"}
|
||||
- {name: JMXPASSWORD, value: "", description: "Mot de passe Jolokia", is_password: true}
|
||||
- {name: JMXEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-ZooKeeper-JMX
|
||||
alias: Apache ZooKeeper (JMX)
|
||||
notification:
|
||||
perimetre: Apache ZooKeeper (JMX)
|
||||
calendrier:
|
||||
name: TP-App-ZooKeeper-JMX-24x7
|
||||
modele: 24x7
|
||||
alias: Apache ZooKeeper (JMX), en permanence
|
||||
groupe: CG-App-ZooKeeper-JMX
|
||||
criticite: Majeure
|
||||
impact: "Coordination du cluster perdue"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Connections
|
||||
alias: Connections
|
||||
description: Connexions clientes
|
||||
line: "$CENTREONPLUGINS$/centreon_zookeeper_jmx.pl --plugin=apps::zookeeper::jmx::plugin --mode=connections --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Latency
|
||||
alias: Latency
|
||||
description: Latence des requetes
|
||||
line: "$CENTREONPLUGINS$/centreon_zookeeper_jmx.pl --plugin=apps::zookeeper::jmx::plugin --mode=latency --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Packets
|
||||
alias: Packets
|
||||
description: Paquets emis et recus
|
||||
line: "$CENTREONPLUGINS$/centreon_zookeeper_jmx.pl --plugin=apps::zookeeper::jmx::plugin --mode=packets --url='$_HOSTJMXURL$' --username='$_HOSTJMXUSERNAME$' --password='$_HOSTJMXPASSWORD$' $_HOSTJMXEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "80", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "90", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
@@ -0,0 +1,50 @@
|
||||
id: app-podman
|
||||
name: Podman (API REST)
|
||||
category: virtualization
|
||||
status: to-verify
|
||||
plugin: centreon_podman_restapi.pl
|
||||
description: Supervision d'un hote Podman via son API REST (conteneurs, pods).
|
||||
prerequis:
|
||||
paquets:
|
||||
debian: [libwww-perl, libjson-xs-perl]
|
||||
rhel: [perl-libwww-perl, perl-JSON-XS]
|
||||
host_template:
|
||||
name: App-Podman-custom
|
||||
alias: Applicatif Podman
|
||||
parents: [generic-active-host-custom]
|
||||
macros:
|
||||
- {name: APIPORT, value: "443", description: "Port de l'API"}
|
||||
- {name: APIPROTO, value: "https", description: "Protocole d'acces"}
|
||||
- {name: APIUSERNAME, value: "centreon", description: "Compte de supervision"}
|
||||
- {name: APIPASSWORD, value: "", description: "Mot de passe du compte", is_password: true}
|
||||
- {name: APIEXTRAOPTIONS, value: "", description: "Options supplementaires passees au plugin"}
|
||||
groupe_hote:
|
||||
name: HG-App-Podman
|
||||
alias: Podman (API REST)
|
||||
notification:
|
||||
perimetre: Podman (API REST)
|
||||
calendrier:
|
||||
name: TP-App-Podman-24x7
|
||||
modele: 24x7
|
||||
alias: Podman (API REST), en permanence
|
||||
groupe: CG-App-Podman
|
||||
criticite: Majeure
|
||||
impact: "Conteneurs applicatifs arretes ou degrades"
|
||||
options_hote: d,u,r
|
||||
options_service: w,c,r
|
||||
intervalle: 30
|
||||
services:
|
||||
- name: Container-Usage
|
||||
alias: Container-Usage
|
||||
description: Consommation des conteneurs
|
||||
line: "$CENTREONPLUGINS$/centreon_podman_restapi.pl --plugin=apps::podman::restapi::plugin --mode=container-usage --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-username='$_HOSTAPIUSERNAME$' --api-password='$_HOSTAPIPASSWORD$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: WARNING, value: "", description: "Seuil warning"}
|
||||
- {name: CRITICAL, value: "", description: "Seuil critical"}
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
- name: Pod-Usage
|
||||
alias: Pod-Usage
|
||||
description: Etat des pods
|
||||
line: "$CENTREONPLUGINS$/centreon_podman_restapi.pl --plugin=apps::podman::restapi::plugin --mode=pod-usage --hostname=$HOSTADDRESS$ --port='$_HOSTAPIPORT$' --proto='$_HOSTAPIPROTO$' --api-username='$_HOSTAPIUSERNAME$' --api-password='$_HOSTAPIPASSWORD$' $_HOSTAPIEXTRAOPTIONS$ $_SERVICEEXTRAOPTIONS$"
|
||||
macros:
|
||||
- {name: EXTRAOPTIONS, value: "", description: "Options supplementaires"}
|
||||
+4
-3
@@ -583,9 +583,10 @@ def validate(project: Project) -> list[dict[str, str]]:
|
||||
|
||||
calendriers = {c.name for c in project.calendriers}
|
||||
for perimetre in project.perimetres:
|
||||
if not perimetre.calendrier:
|
||||
error(f"Perimetre {perimetre.name} : aucun calendrier de notification.")
|
||||
elif perimetre.calendrier not in calendriers:
|
||||
# Un calendrier vide devient 24x7 a la lecture : le perimetre pointe
|
||||
# alors le calendrier du central, ce que l'avertissement ci-dessous
|
||||
# signale.
|
||||
if perimetre.calendrier not in calendriers:
|
||||
warn(
|
||||
f"Perimetre {perimetre.name} : le calendrier {perimetre.calendrier} n'est pas "
|
||||
"dans le projet, il devra exister sur le central."
|
||||
|
||||
@@ -152,7 +152,11 @@ function nouvelObjet(type) {
|
||||
if (type === 'groupehote') return { name: '', alias: '' };
|
||||
if (type === 'calendrier') return { name: '', alias: '', jours: {} };
|
||||
if (type === 'perimetre') return {
|
||||
name: '', description: '', calendrier: '', contacts: [], groupe: '',
|
||||
name: '', description: '',
|
||||
calendrier: projet.calendriers.length
|
||||
? projet.calendriers[projet.calendriers.length - 1].name
|
||||
: '',
|
||||
contacts: [], groupe: '',
|
||||
options_hote: 'd,u,r', options_service: 'w,c,u,r', intervalle: 30,
|
||||
application: '', responsable: '', procedure: '', criticite: '', impact: '',
|
||||
couleur: '#2f6f9f',
|
||||
@@ -575,6 +579,7 @@ function rendrePerimetre(main, perimetre) {
|
||||
calendriers.push({ valeur: c[0], libelle: c[0] + ' \u2014 ' + c[1] + ', livre par Centreon' });
|
||||
});
|
||||
grille.appendChild(champChoix('Calendrier', perimetre, 'calendrier', calendriers));
|
||||
main.appendChild(barreCalendrier(perimetre));
|
||||
main.appendChild(grille);
|
||||
main.appendChild(champ('Description', perimetre, 'description'));
|
||||
|
||||
@@ -942,6 +947,59 @@ function ouvrirApercu(perimetre, pour) {
|
||||
}).catch(function () { notifier('Apercu indisponible.', 'erreur'); });
|
||||
}
|
||||
|
||||
// Sans calendrier, un perimetre ne notifie jamais. Plutot que de laisser
|
||||
// l'utilisateur deviner, on lui propose d'en creer un a la bonne cadence.
|
||||
function barreCalendrier(perimetre) {
|
||||
var bloc = elt('div');
|
||||
var connu = projet.calendriers.some(function (c) { return c.name === perimetre.calendrier; });
|
||||
|
||||
if (!perimetre.calendrier) {
|
||||
var manque = elt('div', { className: 'notice bad' });
|
||||
manque.appendChild(elt('b', { textContent: 'Aucun calendrier' }));
|
||||
manque.appendChild(elt('p', {
|
||||
textContent: 'Sans calendrier, ce perimetre ne notifiera jamais.'
|
||||
}));
|
||||
bloc.appendChild(manque);
|
||||
}
|
||||
|
||||
if (!connu) {
|
||||
var barre = elt('div', { className: 'barre' });
|
||||
[
|
||||
['Creer un calendrier en permanence', '24x7', '00:00-24:00',
|
||||
['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']],
|
||||
['Creer un calendrier en heures ouvrees', 'Heures-Ouvrees', '08:00-18:00',
|
||||
['monday', 'tuesday', 'wednesday', 'thursday', 'friday']]
|
||||
].forEach(function (modele) {
|
||||
barre.appendChild(elt('button', {
|
||||
type: 'button', className: 'small', textContent: modele[0],
|
||||
onclick: function () {
|
||||
if (!perimetre.name) {
|
||||
notifier('Nommez le perimetre avant de creer son calendrier.', 'attention');
|
||||
return;
|
||||
}
|
||||
var slug = perimetre.name.replace(/[^A-Za-z0-9]+/g, '-').replace(/^-|-$/g, '');
|
||||
var nom = 'TP-' + slug + '-' + modele[1];
|
||||
if (!projet.calendriers.some(function (c) { return c.name === nom; })) {
|
||||
var jours = {};
|
||||
modele[3].forEach(function (jour) { jours[jour] = modele[2]; });
|
||||
projet.calendriers.push({
|
||||
name: nom,
|
||||
alias: perimetre.name + ', ' + (modele[1] === '24x7' ? 'en permanence' : 'heures ouvrees'),
|
||||
jours: jours,
|
||||
creer: true
|
||||
});
|
||||
}
|
||||
perimetre.calendrier = nom;
|
||||
sauver(); rendre();
|
||||
notifier('Calendrier ' + nom + ' cree et rattache.', 'succes');
|
||||
}
|
||||
}));
|
||||
});
|
||||
bloc.appendChild(barre);
|
||||
}
|
||||
return bloc;
|
||||
}
|
||||
|
||||
// Cases a cocher qui composent une liste de lettres, comme Centreon l'attend.
|
||||
// Groupes qui existent deja sur le central : ils ne sont pas dans le projet,
|
||||
// donc pas cochables, mais doivent pouvoir etre indiques.
|
||||
|
||||
@@ -185,6 +185,20 @@ if (erreurs.length === 0) {
|
||||
erreurs.push('catalogue de packs : ' + erreur.message);
|
||||
}
|
||||
|
||||
// Un perimetre cree apres un import doit reprendre le calendrier du projet.
|
||||
try {
|
||||
const ajouts = [...rail.querySelectorAll('button')].filter((b) => b.textContent === '+');
|
||||
ajouts[ajouts.length - 1].click(); // dernier groupe du rail : perimetres
|
||||
await new Promise((r) => setTimeout(r, 20));
|
||||
const projet = window.projetCourant();
|
||||
const dernier = projet.perimetres[projet.perimetres.length - 1];
|
||||
if (projet.calendriers.length && !dernier.calendrier) {
|
||||
erreurs.push('un perimetre neuf ne reprend pas le calendrier du projet');
|
||||
}
|
||||
} catch (erreur) {
|
||||
erreurs.push('creation d un perimetre : ' + erreur.message);
|
||||
}
|
||||
|
||||
// Un champ sans valeur ne doit jamais afficher le mot « undefined ».
|
||||
for (const entree of rail.querySelectorAll('.rail-item')) {
|
||||
principal.innerHTML = '';
|
||||
|
||||
@@ -540,3 +540,29 @@ def test_un_calendrier_du_central_peut_etre_force():
|
||||
lignes = [o.import_line() for o in build_plan(projet).ops if o.obj == "TP"]
|
||||
assert lignes[0].startswith("TP;ADD;24x7;")
|
||||
assert "TP;setparam;24x7;monday;00:00-24:00" in lignes
|
||||
|
||||
|
||||
def test_un_perimetre_sans_calendrier_retombe_sur_celui_du_central():
|
||||
"""Plutot que de ne jamais notifier, il vise 24x7 — et l'avertissement le dit."""
|
||||
projet = Project.from_dict(
|
||||
{"perimetres": [{"name": "Sans calendrier", "calendrier": "", "contacts": ["hcornet"]}]}
|
||||
)
|
||||
assert projet.perimetres[0].calendrier == "24x7"
|
||||
|
||||
messages = [i["message"] for i in validate(projet)]
|
||||
assert any("n'est pas dans le projet" in m for m in messages)
|
||||
|
||||
|
||||
def test_chaque_perimetre_de_pack_a_son_calendrier():
|
||||
"""Sur les 52 packs, aucun perimetre ne doit pointer dans le vide."""
|
||||
from enclume.catalog import Catalog
|
||||
from enclume.packs import pack_to_project
|
||||
|
||||
manquants = []
|
||||
for pack in Catalog("catalog").packs.values():
|
||||
projet = pack_to_project(pack)
|
||||
connus = {c.name for c in projet.calendriers}
|
||||
for perimetre in projet.perimetres:
|
||||
if not perimetre.calendrier or perimetre.calendrier not in connus:
|
||||
manquants.append((pack.id, perimetre.calendrier))
|
||||
assert not manquants, manquants
|
||||
Reference in new issue
Block a user