diff --git a/i18n/fr/docusaurus-plugin-content-docs-pp/current/integrations/plugin-packs/procedures/virtualization-vmware2-vm.md b/i18n/fr/docusaurus-plugin-content-docs-pp/current/integrations/plugin-packs/procedures/virtualization-vmware2-vm.md index bb950ff853df..2e5c8c2a1269 100644 --- a/i18n/fr/docusaurus-plugin-content-docs-pp/current/integrations/plugin-packs/procedures/virtualization-vmware2-vm.md +++ b/i18n/fr/docusaurus-plugin-content-docs-pp/current/integrations/plugin-packs/procedures/virtualization-vmware2-vm.md @@ -9,75 +9,167 @@ import TabItem from '@theme/TabItem'; VMWare est une solution de Virtualisation et d'infrastructure de Cloud Computing. -Le connecteur de supervision Centreon s'appuie sur le SDK VMWare pour requêter l'API du vCenter au travers d'un connecteur dédié. +Le connecteur de supervision Centreon s'appuie sur le SDK VMWare pour requêter l'API du vCenter au travers d'un connecteur dédié. -> Ce connecteur de supervision fonctionne avec les versions 6 et 7 de l'API VMware. +## Contenu du pack +### Modèles -## Contenu du connecteur de supervision +Le connecteur de supervision **VMware VM** apporte un modèle d'hôte : -### Objets supervisés +* **Virt-VMWare2-VM-custom** -* Virtual Machines - -### Règles de découvertes +Le connecteur apporte les modèles de service suivants +(classés selon le modèle d'hôte auquel ils sont rattachés) : - + + +| Alias | Modèle de service | Description | +|:--------------------|:------------------------------------------------|:-------------------------------------------------------------------------------------------------------------| +| Vm-Limit | Virt-VMWare2-Vm-Limit-Generic-custom | Contrôle permettant de vérifier la définition de limites. | +| Vm-Snapshot | Virt-VMWare2-Vm-Snapshot-Generic-custom | Contrôle permettant de vérifier l'âge des snapshots sur la machine virtuelle. | +| Vm-Status | Virt-VMWare2-Vm-Status-Generic-custom | Contrôle permettant de vérifier l'état global d'une machine virtuelle. | +| Vm-Thinprovisioning | Virt-VMWare2-Vm-Thinprovisioning-Generic-custom | Contrôle permettant de vérifier si une machine virtuelle possède un disque en mode 'thin provisioning' ou non. | +| Vm-Tools | Virt-VMWare2-Vm-Tools-Generic-custom | Contrôle permettant de vérifier l'état des vmtools d'une machine virtuelle. | + +> Les services listés ci-dessus sont créés automatiquement lorsque le modèle d'hôte **Virt-VMWare2-VM-custom** est utilisé. + + + -| Rule name | Description | -| :----------------------------- | :---------------------------------------------------------------- | -| Virt-VMWare2-VM-HostDiscovery | Découvrez vos Machines Virtuelles liées à un vCenter ou à un ESXi | +| Alias | Modèle de service | Description | +|:-------------------|:-----------------------------------------------|:----------------------------------------------------------------------------------------------------------| +| Vm-Cpu | Virt-VMWare2-Vm-Cpu-Generic-custom | Contrôle permettant de vérifier le taux d'utilisation CPU d'une machine virtuelle. | +| Vm-Datastores-Iops | Virt-VMWare2-Vm-Datastores-Iops-Generic-custom | Contrôle permettant de vérifier le taux d'utilisation des datastores rattachés à une machine virtuelle. | +| Vm-Device | Virt-VMWare2-Vm-Device-Generic-custom | Contrôle permettant de vérifier le taux d'utilisation CPU d'une machine virtuelle. | +| Vm-Memory | Virt-VMWare2-Vm-Memory-Generic-custom | Contrôle permettant de vérifier le taux d'utilisation mémoire d'une machine virtuelle. | +| Vm-Swap | Virt-VMWare2-Vm-Swap-Generic-custom | Contrôle permettant de vérifier si une machine virtuelle swappe. | + +> Les services listés ci-dessus ne sont pas créés automatiquement lorsqu'un modèle d'hôte est appliqué. Pour les utiliser, [créez un service manuellement](/docs/monitoring/basic-objects/services) et appliquez le modèle de service souhaité. -### Métriques Collectées +### Règles de découverte + +#### Découverte d'hôtes + +| Nom de la règle | Description | +|:----------------|:--------------------------------| +| VMWare VM | Discover VMWare virtual machines. | -En plus des modes et des métriques détaillées ci-après, il est également possible de superviser les éléments suivants : +Rendez-vous sur la [documentation dédiée](/docs/monitoring/discovery/hosts-discovery) pour en savoir plus sur la découverte automatique d'hôtes. -* VM-Cpu : Supervision avancée du CPU (CPU ready) -* VM-Datastores-Iops : Utilisation de la VM en Iops sur les Datastores -* VM-Swap : Utilisation du swap de la VM -* VM-Device : Contrôle un périphérique d'une VM (Par exemple VirtualCdrom) +### Métriques & statuts collectés + +Voici le tableau des services pour ce connecteur, détaillant les métriques rattachées à chaque service. - + -| Metric name | Description | Unit | -| :---------- | :------------------------------------------------------------- | :--- | -| status | Status of the VMware Tools (installed, running and up-to-date) | | +| Métrique | Unité | +|:----------------------------------------------|:------| +| *vm*~status | N/A | +| *vm*~vm.cpu.utilization.percentage | % | +| *vm*~vm.cpu.utilization.mhz | MHz | +| *vm*~vm.cpu.ready.percentage | % | +| *vm*~*cpu*#vm.core.cpu.utilization.percentage | MHz | + +> Pour obtenir ce nouveau format de métrique, incluez la valeur **--use-new-perfdata** dans la macro de service **EXTRAOPTIONS**. - + + +| Métrique | Unité | +|:-----------------------------------------------|:------| +| *vm*~status | N/A | +| *vm*~vm.datastore.latency.max.milliseconds | ms | +| *vm*~*datastore*#vm.datastore.read.usage.iops | iops | +| *vm*~*datastore*#vm.datastore.write.usage.iops | iops | -| Metric name | Description | Unit | -| :---------- | :----------------------------------------- | :--- | -| status | Status of the Thinprovisoning virtualdisks | | +> Pour obtenir ce nouveau format de métrique, incluez la valeur **--use-new-perfdata** dans la macro de service **EXTRAOPTIONS**. - + + +| Métrique | Unité | +|:--------------------------------|:------| +| vm.devices.connected.count | count | +| *vm*#status | N/A | +| *vm*#vm.devices.connected.count | count | + +> Pour obtenir ce nouveau format de métrique, incluez la valeur **--use-new-perfdata** dans la macro de service **EXTRAOPTIONS**. + + + + +| Métrique | Unité | +|:--------------|:------| +| cpu-status | N/A | +| memory-status | N/A | +| disk-status | N/A | -| Metric name | Description | Unit | -| :------------ | :----------------------- | :--- | -| status | Overall status of the VM | | +> Pour obtenir ce nouveau format de métrique, incluez la valeur **--use-new-perfdata** dans la macro de service **EXTRAOPTIONS**. + + + + +| Métrique | Unité | +|:------------------------------------|:------| +| *vm*~status | N/A | +| *vm*~vm.memory.consumed.usage.bytes | B | +| *vm*~vm.memory.active.usage.bytes | B | +| *vm*~vm.memory.overhead.bytes | B | +| *vm*~vm.memory.ballooning.bytes | B | +| *vm*~vm.memory.shared.bytes | B | + +> Pour obtenir ce nouveau format de métrique, incluez la valeur **--use-new-perfdata** dans la macro de service **EXTRAOPTIONS**. -| Metric name | Description | Unit | -| :---------------------------------- | :------------------------------------------------------------ | :---- | -| vm.snapshots.warning.current.count | Number of VM's snapshot older than 3 days (default threshold) | Count | -| vm.snapshots.critical.current.count | Number of VM's snapshot older than 5 days (default threshold) | Count | +| Métrique | Unité | +|:------------------------------------|:------| +| vm.snapshots.warning.current.count | count | +| vm.snapshots.critical.current.count | count | - + + +| Métrique | Unité | +|:--------------------|:------| +| *vm*#status | N/A | +| *vm*#overall-status | N/A | + +> Pour obtenir ce nouveau format de métrique, incluez la valeur **--use-new-perfdata** dans la macro de service **EXTRAOPTIONS**. + + + + +| Métrique | Unité | +|:--------------------------------------|:------| +| *vm*#status | N/A | +| *vm*#vm.swap.in.usage.bytespersecond | B/s | +| *vm*#vm.swap.out.usage.bytespersecond | B/s | + +> Pour obtenir ce nouveau format de métrique, incluez la valeur **--use-new-perfdata** dans la macro de service **EXTRAOPTIONS**. + + + + +| Métrique | Description | Unité | +|:------------|:-------------------------------------------|:------| +| status | Status of the thin provisoning virtual disks | | + + + -| Metric name | Description | Unit | -| :--------------------------- | :--------------------- | :---- | -| vm.limit.cpu.alerts.count | Alerts on CPU limit | Count | -| vm.limit.memory.alerts.count | Alerts on Memory limit | Count | -| vm.limit.disk.alerts.count | Alerts on Disk limit | Count | +| Métrique | Unité | +|:------------------------------------|:------| +| vm.tools.notupdated.current.count | count | +| vm.tools.notrunning.current.count | count | +| vm.tools.notinstalled.current.count | count | @@ -90,10 +182,23 @@ Pour la supervision VMWare, centreon utlise un daemon pour se connecter et requ Installer le daemon sur tous les pollers : + + + +```bash +apt install centreon-plugin-virtualization-vmware-daemon ``` + + + + +```bash yum install centreon-plugin-Virtualization-VMWare-daemon ``` + + + Pour configurer les accès à votre infrastructure, éditer le fichier "/etc/centreon/centreon\_vmware.pm" : @@ -154,7 +259,7 @@ Vous pouvez vérifiez que votre configuration est fonctionelle en consultant les ### Balises et Attributs personnalisés -Pour découvrir les balises et les attributs personnalisés, vous devez : +Pour découvrir les balises et les attributs personnalisés, vous devez : * utiliser la version **3.2.5** de **centreon-vmware-daemon** * ajouter **--tags** dans les options supplémentaires de découverte : allez à la page **Configuration > Hôtes > Découverte**, et à la 3ème étape (**Définir les paramètres de découverte**), dans la section **Paramètres supplémentaires**, dans le champ **Options supplémentaires**, saisissez **--tags**. @@ -163,128 +268,620 @@ Pour découvrir les balises et les attributs personnalisés, vous devez : Le Collecteur Centreon avec le connecteur VMWare d'installé doit accéder en HTTPS (TCP/443) au vCenter. -Les Collecteurs requêtant le Collecteur avec le connecteur VMWare doit accéder en TCP/5700 au Collecteur avec le Connecteur VMWare. +Les collecteurs requêtant le collecteur avec le connecteur VMWare doivent accéder en TCP/5700 au collecteur avec le connecteur VMWare. -## Installation +## Installer le connecteur de supervision - - +### Pack + +1. Si la plateforme est configurée avec une licence *online*, l'installation d'un paquet +n'est pas requise pour voir apparaître le connecteur dans le menu **Configuration > Gestionnaire de connecteurs de supervision**. +Au contraire, si la plateforme utilise une licence *offline*, installez le paquet +sur le **serveur central** via la commande correspondant au gestionnaire de paquets +associé à sa distribution : -1. Installer le Plugin sur l'ensemble des Collecteurs Centreon supervisant l'infrastructure VMWare: + + ```bash -yum install centreon-plugin-Virtualization-Vmware2-Connector-Plugin +dnf install centreon-pack-virtualization-vmware2-vm ``` -2. Installer le connecteur de supervision 'Vmware VM' depuis la page **Configuration > Gestionnaire de connecteurs de supervision** sur l'interface Web de Centreon. - - + -1. Installer le Plugin sur l'ensemble des collecteurs Centreon supervisant l'infrastructure VMWare: +```bash +dnf install centreon-pack-virtualization-vmware2-vm +``` + + + ```bash -yum install centreon-plugin-Virtualization-Vmware2-Connector-Plugin +apt install centreon-pack-virtualization-vmware2-vm ``` -2. Installer le RPM du connecteur de supervision contenant les modèles de supervision: + + ```bash yum install centreon-pack-virtualization-vmware2-vm ``` -3. Installer le connecteur de supervision 'Vmware VM' depuis la page **Configuration > Gestionnaire de connecteurs de supervision** sur l'interface Web de Centreon. - -## Configuration +2. Quel que soit le type de la licence (*online* ou *offline*), installez le connecteur **VMware VM** +depuis l'interface web et le menu **Configuration > Gestionnaire de connecteurs de supervision**. + +### Plugin + +À partir de Centreon 22.04, il est possible de demander le déploiement automatique +du plugin lors de l'utilisation d'un connecteur. Si cette fonctionnalité est activée, et +que vous ne souhaitez pas découvrir des éléments pour la première fois, alors cette +étape n'est pas requise. -* Depuis l'interface Web de Centreon, ajoutez un nouvel Hôte depuis la page "Configuration > Hôtes". -* Appliquez le modèle "Virt-VMWare2-VM-custom" et configurez toutes les macros : +> Plus d'informations dans la section [Installer le plugin](/docs/monitoring/pluginpacks/#installer-le-plugin). -| Mandatory | Name | Description | -| :---------- | :------------------------- | :----------------------------------------------------- | -| X | CENTREONVMWARECONTAINER | Name of your container in the file centreon_vmware.pm | -| X | CENTREONVMWAREHOST | The Centreon server that launches the connection | -| X | CENTREONVMWAREPORT | By default: 5700 | -| X | VMNAME | Name of the VM (defined in your VMWare infrastructure) | -| | VMUUID | Specify The VM UUID | -| | VMWAREEXTRAOPTIONS | Customize it with your own if needed | +Utilisez les commandes ci-dessous en fonction du gestionnaire de paquets de votre système d'exploitation : -## FAQ + + -### Comment puis-je tester le Plugin et que signifient les options des commandes ? +```bash +dnf install centreon-plugin-Virtualization-Vmware2-Connector-Plugin +``` -Une fois le Plugin installé, vous pouvez tester celui-ci directement en ligne de commande depuis votre collecteur Centreon avec l'utilisateur centreon-engine : + + ```bash -/usr/lib/centreon/plugins//centreon_vmware_connector_client.pl - --plugin=apps::vmware::connector::plugin - --mode=tools-vm - --custommode=connector - --connector-hostname='localhost' - --connector-port='5700' - --container='vcenter01' - --vm-hostname='SRV-LIN-TLS' - --filter-uuid='' - --tools-notinstalled-status='critical' - --tools-notrunning-status='critical' - --tools-notup2date-status='warning' +dnf install centreon-plugin-Virtualization-Vmware2-Connector-Plugin ``` -La commande retourne le message de sortie ci-dessous: + + ```bash -OK: VMTools are OK +apt install centreon-plugin-virtualization-vmware2-connector-plugin ``` -Cette commande supervise le statut des VMTools (```--plugin=apps::vmware::connector::plugin --mode=tools-vm```) de la VM **SRV-LIN-TLS** (```--vm-hostname='SRV-LIN-TLS'```). -Le plugin se connecte au daemon VMWare sur **localhost** (```--connector-hostname='localhost'```) sur le port **5700** (```--connector-port='5700'```). -Puis la command requête le **container** **vcenter01** (```--container='vcenter01'```) parce que la VM **SRV-LIN-TLS** est managée par **vcenter01**. + + + +```bash +yum install centreon-plugin-Virtualization-Vmware2-Connector-Plugin +``` + + + + +## Utiliser le connecteur de supervision -La commande déclenchera : -* Une alarme WARNING si les VMTools ne sont pas à jour (```--tools-notup2date-status='warning'```) -* Une alarme CRITICAL si les VMTools ne sont pas démarrés ou installés (```--tools-notinstalled-status='critical' --tools-notrunning-status='critical'```) +### Utiliser un modèle d'hôte issu du connecteur -Vous pouvez afficher tous les modes disponibles à l'aide de la commande suivante :` +1. Ajoutez un hôte à Centreon depuis la page **Configuration > Hôtes**. +2. Complétez les champs **Nom**, **Alias** & **IP Address/DNS** correspondant à votre ressource. +3. Appliquez le modèle d'hôte **Virt-VMWare2-VM-custom**. Une liste de macros apparaît. Les macros vous permettent de définir comment le connecteur se connectera à la ressource, ainsi que de personnaliser le comportement du connecteur. +4. Renseignez les macros désirées. Attention, certaines macros sont obligatoires. + +| Macro | Description | Valeur par défaut | Obligatoire | +|:---------------------------|:------------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| CENTREONVMWAREPORT | Connector port (default: 5700). | 5700 | | +| CENTREONVMWARECONTAINER | Container to use (it depends on the connector's configuration). | default | | +| CENTREONVMWAREHOST | Connector hostname (required). | localhost |X | +| VMNAME | Hostname of the VM to monitor. If not set, we check all VMs. | | | +| VMUUID | Specify the VM's UUID. | | | +| CENTREONVMWAREEXTRAOPTIONS | Any extra option you may want to add to every command (e.g. a --verbose flag). Toutes les options sont listées [ici](#options-disponibles) | | | + +5. [Déployez la configuration](/docs/monitoring/monitoring-servers/deploying-a-configuration). L'hôte apparaît dans la liste des hôtes supervisés, et dans la page **Statut des ressources**. La commande envoyée par le connecteur est indiquée dans le panneau de détails de l'hôte : celle-ci montre les valeurs des macros. + +### Utiliser un modèle de service issu du connecteur + +1. Si vous avez utilisé un modèle d'hôte et coché la case **Créer aussi les services liés aux modèles**, les services associés au modèle ont été créés automatiquement, avec les modèles de services correspondants. Sinon, [créez les services désirés manuellement](/docs/monitoring/basic-objects/services) et appliquez-leur un modèle de service. +2. Renseignez les macros désirées (par exemple, ajustez les seuils d'alerte). Les macros indiquées ci-dessous comme requises (**Obligatoire**) doivent être renseignées. + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:-----------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------|:-----------:| +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | %{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i | | +| WARNINGCPU | Warning threshold | | | +| CRITICALCPU | Critical threshold | | | +| WARNINGREADY | Warning threshold | 5 | | +| CRITICALREADY | Critical threshold | 10 | | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| WARNINGUSAGE | Warning threshold | 80 | | +| CRITICALUSAGE | Critical threshold | 90 | | +| WARNINGUSAGEMHZ | Warning threshold | | | +| CRITICALUSAGEMHZ | Critical threshold | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). Toutes les options sont listées [ici](#options-disponibles) | | | + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------|:-----------:| +| FILTERDATASTORENAME | Datastore to check. If not set, we check all datastores. | .* | | +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | %{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i | | +| WARNINGMAXTOTALLATENCY | Thresholds | | | +| CRITICALMAXTOTALLATENCY | Thresholds | | | +| WARNINGREAD | Thresholds | | | +| CRITICALREAD | Thresholds | | | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| WARNINGWRITE | Thresholds | | | +| CRITICALWRITE | Thresholds | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). Toutes les options sont listées [ici](#options-disponibles) | --verbose | | + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:-----------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------|:-----------:| +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i'). You can use the following variables: %{connection\_state} | %{connection\_state} !~ /^connected$/i | | +| FILTERDEVICE | Device to check (required). (Example: --device='VirtualCdrom') | | X | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state} | | | +| WARNINGTOTALDEVICECONNECTED | Warning threshold | | | +| CRITICALTOTALDEVICECONNECTED | Critical threshold | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). Toutes les options sont listées [ici](#options-disponibles) | | | + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:---------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------|:-----------:| +| CRITICALCPUSTATUS | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | %{connection\_state} !~ /^connected$/i \|\| %{limit} != -1 | | +| WARNINGCPUSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | | | +| CRITICALDISKSTATUS | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | %{connection\_state} !~ /^connected$/i \|\| %{limit} != -1 | | +| WARNINGDISKSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | | | +| CRITICALMEMORYSTATUS | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | %{connection\_state} !~ /^connected$/i \|\| %{limit} != -1 | | +| WARNINGMEMORYSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). Toutes les options sont listées [ici](#options-disponibles) | --verbose | | + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:-------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------|:-----------:| +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | %{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i | | +| WARNING | Warning threshold | | | +| CRITICAL | Critical threshold | | | +| WARNINGACTIVE | Warning threshold | | | +| CRITICALACTIVE | Critical threshold | | | +| WARNINGBALLOONING | Warning threshold | | | +| CRITICALBALLOONING | Critical threshold | | | +| WARNINGOVERHEAD | Warning threshold | | | +| CRITICALOVERHEAD | Critical threshold | | | +| WARNINGSHARED | Warning threshold | | | +| CRITICALSHARED | Critical threshold | | | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). Toutes les options sont listées [ici](#options-disponibles) | | | + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:-------------|:----------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| WARNING | Warning threshold for snapshot's age | 259200 | | +| CRITICAL | Critical threshold for snapshot's age | 432000 | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). Toutes les options sont listées [ici](#options-disponibles) | | | + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------|:-----------:| +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | %{connection\_state} !~ /^connected$/i | | +| UNKNOWNOVERALLSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{overall\_status} =~ /gray/i'). You can use the following variables: %{overall\_status} | %{overall\_status} =~ /gray/i | | +| WARNINGOVERALLSTATUS | Define the conditions to match for the status to be WARNING (Default: '%{overall\_status} =~ /yellow/i'). You can use the following variables: %{overall\_status} | %{overall\_status} =~ /yellow/i | | +| CRITICALOVERALLSTATUS | Define the conditions to match for the status to be CRITICAL (Default: '%{overall\_status} =~ /red/i'). You can use the following variables: %{overall\_status} | %{overall\_status} =~ /red/i | | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING. You can use the following variables: %{connection\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL. You can use the following variables: %{connection\_state}, %{power\_state} | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). Toutes les options sont listées [ici](#options-disponibles) | --verbose | | + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:----------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------|:-----------:| +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | %{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i | | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| WARNINGSWAPIN | Warning threshold | | | +| CRITICALSWAPIN | Critical threshold | | | +| WARNINGSWAPOUT | Warning threshold | | | +| CRITICALSWAPOUT | Critical threshold | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). Toutes les options sont listées [ici](#options-disponibles) | | | + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:-------------|:----------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| STATUS | Thin provisioning status (default: none). Example: 'active,CRITICAL' or 'notactive,WARNING' | active,WARNING | X | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). Toutes les options sont listées [ici](#options-disponibles) | --verbose | | + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:-------------------|:----------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| NOTINSTALLEDSTATUS | Status if vmtools is not installed (default: critical) | critical | X | +| NOTRUNNINGSTATUS | Status if vmtools is not running (default: critical) | critical | X | +| NOTUP2DATESTATUS | Status if vmtools is not up to date (default: warning) | warning | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). Toutes les options sont listées [ici](#options-disponibles) | | | + + + + +3. [Déployez la configuration](/docs/monitoring/monitoring-servers/deploying-a-configuration). Le service apparaît dans la liste des services supervisés, et dans la page **Statut des ressources**. La commande envoyée par le connecteur est indiquée dans le panneau de détails du service : celle-ci montre les valeurs des macros. + +## Comment puis-je tester le plugin et que signifient les options des commandes ? + +Une fois le plugin installé, vous pouvez tester celui-ci directement en ligne +de commande depuis votre collecteur Centreon en vous connectant avec +l'utilisateur **centreon-engine** (`su - centreon-engine`). Vous pouvez tester +que le connecteur arrive bien à superviser une ressource en utilisant une commande +telle que celle-ci (remplacez les valeurs d'exemple par les vôtres) : + +```bash +/usr/lib/centreon/plugins/centreon_vmware_connector_client.pl \ + --plugin=apps::vmware::connector::plugin \ + --mode=swap-vm \ + --custommode=connector \ + --connector-hostname='localhost' \ + --connector-port='5700' \ + --container='default' \ + --vm-hostname='' \ + --filter-uuid='' \ + --unknown-status='%{connection_state} !~ /^connected$/i or %{power_state} !~ /^poweredOn$/i' \ + --warning-status='' \ + --critical-status='' \ + --warning-swap-in='' \ + --critical-swap-in='' \ + --warning-swap-out='' \ + --critical-swap-out='' +``` + +La commande devrait retourner un message de sortie similaire à : ```bash -/usr/lib/centreon/plugins/./centreon_vmware_connector_client.pl \ - --plugin=apps::vmware::connector::plugin \ - --list-mode +OK: All virtual machines are ok | '*vm*#vm.swap.in.usage.bytespersecond'=B/s;;;0;'*vm*#vm.swap.out.usage.bytespersecond'=B/s;;;0; ``` -Pour chaque mode, les options disponibles peuvent être consultées en ajoutant l'option --help à la commande : +### Diagnostic des erreurs communes + +Rendez-vous sur la [documentation dédiée](../getting-started/how-to-guides/troubleshooting-plugins.md) +pour le diagnostic des erreurs communes des plugins Centreon. + +### Modes disponibles + +Dans la plupart des cas, un mode correspond à un modèle de service. Le mode est renseigné dans la commande d'exécution +du connecteur. Dans l'interface de Centreon, il n'est pas nécessaire de les spécifier explicitement, leur utilisation est +implicite dès lors que vous utilisez un modèle de service. En revanche, vous devrez spécifier le mode correspondant à ce +modèle si vous voulez tester la commande d'exécution du connecteur dans votre terminal. + +Tous les modes disponibles peuvent être affichés en ajoutant le paramètre +`--list-mode` à la commande : ```bash -/usr/lib/centreon/plugins/./centreon_vmware_connector_client.pl \ - --plugin=apps::vmware::connector::plugin \ - --mode=tools-vm \ - --help +/usr/lib/centreon/plugins/centreon_vmware_connector_client.pl \ + --plugin=apps::vmware::connector::plugin \ + --list-mode ``` -### J'obtiens les erreurs suivantes : +Le plugin apporte les modes suivants : + +| Mode | Modèle de service associé | +|:---------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------| +| alarm-datacenter [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/alarmdatacenter.pm)] | Not used in this Monitoring Connector | +| alarm-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/alarmhost.pm)] | Not used in this Monitoring Connector | +| countvm-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/countvmhost.pm)] | Not used in this Monitoring Connector | +| cpu-cluster [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/cpucluster.pm)] | Not used in this Monitoring Connector | +| cpu-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/cpuhost.pm)] | Not used in this Monitoring Connector | +| cpu-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/cpuvm.pm)] | Virt-VMWare2-Vm-Cpu-Generic-custom | +| datastore-countvm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastorecountvm.pm)] | Not used in this Monitoring Connector | +| datastore-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastorehost.pm)] | Not used in this Monitoring Connector | +| datastore-io [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastoreio.pm)] | Not used in this Monitoring Connector | +| datastore-iops [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastoreiops.pm)] | Not used in this Monitoring Connector | +| datastore-snapshot [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastoresnapshot.pm)] | Not used in this Monitoring Connector | +| datastore-usage [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastoreusage.pm)] | Not used in this Monitoring Connector | +| datastore-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastorevm.pm)] | Virt-VMWare2-Vm-Datastores-Iops-Generic-custom | +| device-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/devicevm.pm)] | Virt-VMWare2-Vm-Device-Generic-custom | +| discovery [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/discovery.pm)] | Used for host discovery | +| getmap [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/getmap.pm)] | Not used in this Monitoring Connector | +| health-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/healthhost.pm)] | Not used in this Monitoring Connector | +| licenses [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/licenses.pm)] | Not used in this Monitoring Connector | +| limit-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/limitvm.pm)] | Virt-VMWare2-Vm-Limit-Generic-custom | +| list-clusters [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/listclusters.pm)] | Not used in this Monitoring Connector | +| list-datacenters [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/listdatacenters.pm)] | Not used in this Monitoring Connector | +| list-datastores [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/listdatastores.pm)] | Not used in this Monitoring Connector | +| list-nichost [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/listnichost.pm)] | Not used in this Monitoring Connector | +| maintenance-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/maintenancehost.pm)] | Not used in this Monitoring Connector | +| memory-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/memoryhost.pm)] | Not used in this Monitoring Connector | +| memory-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/memoryvm.pm)] | Virt-VMWare2-Vm-Memory-Generic-custom | +| net-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/nethost.pm)] | Not used in this Monitoring Connector | +| net-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/netvm.pm)] | Not used in this Monitoring Connector | +| service-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/servicehost.pm)] | Not used in this Monitoring Connector | +| snapshot-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/snapshotvm.pm)] | Virt-VMWare2-Vm-Snapshot-Generic-custom | +| stat-connectors [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/statconnectors.pm)] | Not used in this Monitoring Connector | +| status-cluster [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/statuscluster.pm)] | Not used in this Monitoring Connector | +| status-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/statushost.pm)] | Not used in this Monitoring Connector | +| status-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/statusvm.pm)] | Virt-VMWare2-Vm-Status-Generic-custom | +| storage-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/storagehost.pm)] | Not used in this Monitoring Connector | +| swap-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/swaphost.pm)] | Not used in this Monitoring Connector | +| swap-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/swapvm.pm)] | Virt-VMWare2-Vm-Swap-Generic-custom | +| thinprovisioning-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/thinprovisioningvm.pm)] | Virt-VMWare2-Vm-Thinprovisioning-Generic-custom | +| time-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/timehost.pm)] | Not used in this Monitoring Connector | +| tools-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/toolsvm.pm)] | Virt-VMWare2-Vm-Tools-Generic-custom | +| uptime-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/uptimehost.pm)] | Not used in this Monitoring Connector | +| vmoperation-cluster [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/vmoperationcluster.pm)] | Not used in this Monitoring Connector | +| vsan-cluster-usage [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/vsanclusterusage.pm)] | Not used in this Monitoring Connector | + +### Options disponibles + +#### Options génériques + +Les options génériques sont listées ci-dessous : + +| Option | Description | +|:-------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --mode | Define the mode in which you want the plugin to be executed (see--list-mode). | +| --dyn-mode | Specify a mode with the module's path (advanced). | +| --list-mode | List all available modes. | +| --mode-version | Check minimal version of mode. If not, unknown error. | +| --version | Return the version of the plugin. | +| --custommode | When a plugin offers several ways (CLI, library, etc.) to get information the desired one must be defined with this option. | +| --list-custommode | List all available custom modes. | +| --multiple | Multiple custom mode objects. This may be required by some specific modes (advanced). | +| --pass-manager | Define the password manager you want to use. Supported managers are: environment, file, keepass, hashicorpvault and teampass. | +| --verbose | Display extended status information (long output). | +| --debug | Display debug messages. | +| --filter-perfdata | Filter perfdata that match the regexp. Example: adding --filter-perfdata='avg' will remove all metrics that do not contain 'avg' from performance data. | +| --filter-perfdata-adv | Filter perfdata based on a "if" condition using the following variables: label, value, unit, warning, critical, min, max. Variables must be written either %{variable} or %(variable). Example: adding --filter-perfdata-adv='not (%(value) == 0 and %(max) eq "")' will remove all metrics whose value equals 0 and that don't have a maximum value. | +| --explode-perfdata-max | Create a new metric for each metric that comes with a maximum limit. The new metric will be named identically with a '\_max' suffix). Eg: it will split 'used\_prct'=26.93%;0:80;0:90;0;100 into 'used\_prct'=26.93%;0:80;0:90;0;100 'used\_prct\_max'=100%;;;; | +| --change-perfdata --extend-perfdata | Change or extend perfdata. Syntax: --extend-perfdata=searchlabel,newlabel,target\[,\[newuom\],\[min\],\[m ax\]\] Common examples: Convert storage free perfdata into used: --change-perfdata=free,used,invert() Convert storage free perfdata into used: --change-perfdata=used,free,invert() Scale traffic values automatically: --change-perfdata=traffic,,scale(auto) Scale traffic values in Mbps: --change-perfdata=traffic\_in,,scale(Mbps),mbps Change traffic values in percent: --change-perfdata=traffic\_in,,percent() | +| --extend-perfdata-group | Add new aggregated metrics (min, max, average or sum) for groups of metrics defined by a regex match on the metrics' names. Syntax: --extend-perfdata-group=regex,namesofnewmetrics,calculation\[,\[ne wuom\],\[min\],\[max\]\] regex: regular expression namesofnewmetrics: how the new metrics' names are composed (can use $1, $2... for groups defined by () in regex). calculation: how the values of the new metrics should be calculated newuom (optional): unit of measure for the new metrics min (optional): lowest value the metrics can reach max (optional): highest value the metrics can reach Common examples: Sum wrong packets from all interfaces (with interface need --units-errors=absolute): --extend-perfdata-group=',packets\_wrong,sum(packets\_(discard \|error)\_(in\|out))' Sum traffic by interface: --extend-perfdata-group='traffic\_in\_(.*),traffic\_$1,sum(traf fic\_(in\|out)\_$1)' | +| --change-short-output --change-long-output | Modify the short/long output that is returned by the plugin. Syntax: --change-short-output=pattern~replacement~modifier Most commonly used modifiers are i (case insensitive) and g (replace all occurrences). Example: adding --change-short-output='OK~Up~gi' will replace all occurrences of 'OK', 'ok', 'Ok' or 'oK' with 'Up' | +| --change-exit | Replace an exit code with one of your choice. Example: adding --change-exit=unknown=critical will result in a CRITICAL state instead of an UNKNOWN state. | +| --range-perfdata | Rewrite the ranges displayed in the perfdata. Accepted values: 0: nothing is changed. 1: if the lower value of the range is equal to 0, it is removed. 2: remove the thresholds from the perfdata. | +| --filter-uom | Mask the units when they don't match the given regular expression. | +| --opt-exit | Replace the exit code in case of an execution error (i.e. wrong option provided, SSH connection refused, timeout, etc). Default: unknown. | +| --output-ignore-perfdata | Remove all the metrics from the service. The service will still have a status and an output. | +| --output-ignore-label | Remove the status label ("OK:", "WARNING:", "UNKNOWN:", CRITICAL:") from the beginning of the output. Eg: 'OK: Ram Total:...' will become 'Ram Total:...' | +| --output-xml | Return the output in XML format (to send to an XML API). | +| --output-json | Return the output in JSON format (to send to a JSON API). | +| --output-openmetrics | Return the output in OpenMetrics format (to send to a tool expecting this format). | +| --output-file | Write output in file (can be combined with json, xml and openmetrics options). E.g.: --output-file=/tmp/output.txt will write the output in /tmp/output.txt. | +| --disco-format | Applies only to modes beginning with 'list-'. Returns the list of available macros to configure a service discovery rule (formatted in XML). | +| --disco-show | Applies only to modes beginning with 'list-'. Returns the list of discovered objects (formatted in XML) for service discovery. | +| --float-precision | Define the float precision for thresholds (default: 8). | +| --source-encoding | Define the character encoding of the response sent by the monitored resource Default: 'UTF-8'. | +| --connector-hostname | Connector hostname (required). | +| --connector-port | Connector port (default: 5700). | +| --container | Container to use (it depends on the connector's configuration). | +| --vsphere-address | Address of the vpshere/ESX instance to connect to. | +| --vsphere-username | Username to use to connect to the vpshere/ESX instance (with --vsphere-address). | +| --vsphere-password | Password used to connect to the vpshere/ESX instance (with --vsphere-address). | +| --timeout | Set global execution timeout (Default: 50) | +| --sampling-period | Choose the sampling period (can change the default sampling for counters). Should be not different from 300 or 20. | +| --time-shift | Can shift the time. With the following option you can average X counter values (default: 0). | +| --case-insensitive | Searches are case insensitive. | +| --unknown-connector-status | Set unknown threshold for connector status (Default: '%{code} \< 0 \|\| (%{code} \> 0 && %{code} \< 200)'). You can use the following variables: %{code}, %{short\_message}, %{extra\_message}. | +| --warning-connector-status | Set warning threshold for connector status (Default: ''). You can use the following variables: %{code}, %{short\_message}, %{extra\_message}. | +| --critical-connector-status | Set critical threshold for connector status (Default: ''). You can use the following variables: %{code}, %{short\_message}, %{extra\_message}. | + +#### Options des modes + +Les options disponibles pour chaque modèle de services sont listées ci-dessous : + + + + +| Option | Description | +|:---------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to monitor. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. Exemple : --vm-hostname='^((VM-PROD-*))' --filter | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-* | Warning threshold. Can be: 'total-cpu', 'total-cpu-mhz', 'cpu-ready', 'cpu'. | +| --critical-* | Critical threshold. Can be: 'total-cpu', 'total-cpu-mhz', 'cpu-ready', 'cpu'. | + + + + +| Option | Description | +|:-------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --datastore-name | Datastore to check. If not set, we check all datastores. | +| --filter-datastore | Datastore name is a regexp. | +| --display-description | Display the description of the virtual machine. | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-* --critical-* | Thresholds. Can be: 'max-total-latency', 'read', 'write'. | + + + + +| Option | Description | +|:----------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --display-description | Display the description of the virtual machine. | +| --device | Device to check (Required) (Example: --device='VirtualCdrom'). | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i'). You can use the following variables: %{connection\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state} | +| --warning-* | Warning threshold. Can be: 'total-device-connected', 'device-connected'. | +| --critical-* | Critical threshold. Can be: 'total-device-connected', 'device-connected'. | + + + + +| Option | Description | +|:-------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --display-description | Display the description of the virtual machine. | +| --check-disk-limit | Check disk limits (since vsphere 5.0). | +| --warning-disk-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | +| --critical-disk-status | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | +| --warning-cpu-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | +| --critical-cpu-status | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | +| --warning-memory-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | +| --critical-memory-status | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | -#### UNKNOWN: Unknown container name 'default' | + + + +| Option | Description | +|:----------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --display-description | Display the description of the virtual machine. | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --units | Units of thresholds (Default: '%') ('%', 'B'). | +| --free | Thresholds are on free space left. | +| --warning-* | Warning threshold. Can be: 'consumed', 'active', 'overhead', 'ballooning', 'shared'. | +| --critical-* | Critical threshold. Can be: 'consumed', 'active', 'overhead', 'ballooning', 'shared'. | -Ce message d'erreur signifie que le **container* passé en argument n'existe pas dans la configuration du connecteur VMWare. -Vérifiez la macro **CENTREONVMWARECONTAINER** sur l'hôte ou vérifiez la configuration dans le fichier */etc/centreon/centreon_vmware.pm* + + -#### UNKNOWN: Cannot get response (timeout received) +| Option | Description | +|:----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --display-description | Display the description of the virtual machine. | +| --check-consolidation | Check if VM needs consolidation (since vsphere 5.0). | +| --disconnect-status | Status if the VM is disconnected (default: 'unknown'). | +| --nopoweredon-skip | Skip check if VM is not poweredOn. | +| --empty-continue | Ask to the connector that an empty response is ok. | +| --unit | Select the unit for performance data and thresholds. May be 's'for seconds, 'm' for minutes, 'h' for hours, 'd' for days, 'w' for weeks. Default is seconds | +| --warning | Warning threshold for snapshot's age. | +| --critical | Critical threshold for snapshot's age. | + + + -Ce messsage d'erreur signifie que le plugin n'a pas eu de réponse du daemon VMWare. -Vérifiez vos paramètres de connexion et les macros **CENTREONVMWAREHOST** et **CENTREONVMWAREPORT**. +| Option | Description | +|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING. You can use the following variables: %{connection\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL. You can use the following variables: %{connection\_state}, %{power\_state} | +| --unknown-overall-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{overall\_status} =~ /gray/i'). You can use the following variables: %{overall\_status} | +| --warning-overall-status | Define the conditions to match for the status to be WARNING (Default: '%{overall\_status} =~ /yellow/i'). You can use the following variables: %{overall\_status} | +| --critical-overall-status | Define the conditions to match for the status to be CRITICAL (Default: '%{overall\_status} =~ /red/i'). You can use the following variables: %{overall\_status} | -#### UNKNOWN: Container connection problem | + + + +| Option | Description | +|:----------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --display-description | Display the description of the virtual machine. | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-* | Warning threshold. Can be: 'swap-in', 'swap-out'. | +| --critical-* | Critical threshold. Can be: 'swap-in', 'swap-out'. | -Ce message signifie que vous avez un problème avec les identifiants liés à votre **container**. -Vérifiez les identifiants dans le fichier */etc/centreon/centreon_vmware.pm*. -Vous pouvez aussi regarder les logs pour plus d'informations: */var/log/centreon/centreon_vmware.log* + + -#### UNKNOWN: Cannot find 'VirtualMachine' object | +| Option | Description | +|:--------------------------|:---------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --disconnect-status | Status if VM disconnected (default: 'unknown'). | +| --nopoweredon-skip | Skip check if VM is not poweredOn. | +| --display-description | Display the description of the virtual machine. | +| --thinprovisioning-status | Thin provisioning status (default: none) Example: 'active,CRITICAL' or 'notactive,WARNING' | -Ce message d'erreur signifie que le plugin n'a pas trouvé la machine virtuelle. -Vérifiez le nom de la machine virtuelle dans la macro **HOSTVMNAME**, -This error message means that the Plugin didn't find the Virtual Machine. -Check the Virtual Machine name in the macro **HOSTVMNAME**, il doit correspondre au nom défini dans votre infrastructure VMWare. + + + +| Option | Description | +|:----------------------------|:--------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --disconnect-status | Status if VM disconnected (default: 'unknown'). | +| --nopoweredon-skip | Skip check if VM is not powered on. | +| --empty-continue | Ask to the connector that an empty response is ok. | +| --display-description | Display the description of the virtual machine. | +| --tools-notinstalled-status | Status if vmtools is not installed (default: critical). | +| --tools-notrunning-status | Status if vmtools is not running (default: critical). | +| --tools-notup2date-status | Status if vmtools is not up to date (default: warning). | + + + + +Pour un mode, la liste de toutes les options disponibles et leur signification peut être +affichée en ajoutant le paramètre `--help` à la commande : + +```bash +/usr/lib/centreon/plugins/centreon_vmware_connector_client.pl \ + --plugin=apps::vmware::connector::plugin \ + --mode=swap-vm \ + --help +``` diff --git a/pp/integrations/plugin-packs/procedures/virtualization-vmware2-vm.md b/pp/integrations/plugin-packs/procedures/virtualization-vmware2-vm.md index 7b208dd789e1..b9e7fa30a069 100644 --- a/pp/integrations/plugin-packs/procedures/virtualization-vmware2-vm.md +++ b/pp/integrations/plugin-packs/procedures/virtualization-vmware2-vm.md @@ -11,72 +11,164 @@ VMware is an software compagny based in USA. VMware provides cloud computing and The Centreon Plugin and Monitoring Connectors rely on the Centreon VMWare Connector to request the vCenter SDK. -> This Monitoring Connector can be used with either version 6 or 7 of the VMware API. +## Pack assets -## Monitoring Connector Assets +### Templates -### Monitored Objects +The Monitoring Connector **VMware VM** brings a host template: -* Virtual Machine +* **Virt-VMWare2-VM-custom** -### Discovery Rules +The connector brings the following service templates (sorted by the host template they are attached to): - + -| Rule name | Description | -| :----------------------------- | :------------------------------------------ | -| Virt-VMWare2-VM-HostDiscovery | Discover the VMs bound to a vCenter or ESXi | +| Service Alias | Service Template | Service Description | +|:--------------------|:------------------------------------------------|:------------------------------------------------------------------------| +| Vm-Limit | Virt-VMWare2-Vm-Limit-Generic-custom | Check limit definition. | +| Vm-Snapshot | Virt-VMWare2-Vm-Snapshot-Generic-custom | Check the age of the snapshot for a virtual machine. | +| Vm-Status | Virt-VMWare2-Vm-Status-Generic-custom | Check global status of a virtual machine. | +| Vm-Thinprovisioning | Virt-VMWare2-Vm-Thinprovisioning-Generic-custom | Check if a virtual machine has a disk in mode 'thin provisioning' or not. | +| Vm-Tools | Virt-VMWare2-Vm-Tools-Generic-custom | Check the state of vmtools for a virtual machine. | + +> The services listed above are created automatically when the **Virt-VMWare2-VM-custom** host template is used. + + + + +| Service Alias | Service Template | Service Description | +|:-------------------|:-----------------------------------------------|:------------------------------------------------------| +| Vm-Cpu | Virt-VMWare2-Vm-Cpu-Generic-custom | Check CPU usage for a virtual machine. | +| Vm-Datastores-Iops | Virt-VMWare2-Vm-Datastores-Iops-Generic-custom | Check datastores IOPS linked to the virtual machine. | +| Vm-Device | Virt-VMWare2-Vm-Device-Generic-custom | Check CPU usage for a virtual machine. | +| Vm-Memory | Virt-VMWare2-Vm-Memory-Generic-custom | Check memory usage for a virtual machine. | +| Vm-Swap | Virt-VMWare2-Vm-Swap-Generic-custom | Check if a virtual machine is swapping. | + +> The services listed above are not created automatically when a host template is applied. To use them, [create a service manually](/docs/monitoring/basic-objects/services), then apply the service template you want. -### Collected Metrics +### Discovery rules -In addition to modes and metrics described here, it is also possible to monitor the following indicators: +#### Host discovery -* VM-Cpu: Advanced monitoring of the CPU (CPU ready) -* VM-Datastores-Iops: VM Iops usage on the Datastore -* VM-Swap: VM swap usage -* VM-Device: Check VM's devices status (e.g. VirtualCdrom) +| Rule name | Description | +|:----------------|:--------------------------------| +| VMWare VM | Discover VMWare virtual machines | + +More information about discovering hosts automatically is available on the [dedicated page](/docs/monitoring/discovery/hosts-discovery). + +### Collected metrics & status + +Here is the list of services for this connector, detailing all metrics linked to each service. - + + +| Metric name | Unit | +|:----------------------------------------------|:------| +| *vm*~status | N/A | +| *vm*~vm.cpu.utilization.percentage | % | +| *vm*~vm.cpu.utilization.mhz | MHz | +| *vm*~vm.cpu.ready.percentage | % | +| *vm*~*cpu*#vm.core.cpu.utilization.percentage | MHz | -| Metric name | Description | Unit | -| :---------- | :------------------------------------------------------------- | :--- | -| status | Status of the VMware Tools (installed, running and up-to-date) | | +> To obtain this new metric format, include **--use-new-perfdata** in the **EXTRAOPTIONS** service macro. - + + +| Metric name | Unit | +|:-----------------------------------------------|:------| +| *vm*~status | N/A | +| *vm*~vm.datastore.latency.max.milliseconds | ms | +| *vm*~*datastore*#vm.datastore.read.usage.iops | iops | +| *vm*~*datastore*#vm.datastore.write.usage.iops | iops | -| Metric name | Description | Unit | -| :---------- | :----------------------------------------- | :--- | -| status | Status of the Thinprovisoning virtualdisks | | +> To obtain this new metric format, include **--use-new-perfdata** in the **EXTRAOPTIONS** service macro. - + + +| Metric name | Unit | +|:--------------------------------|:------| +| vm.devices.connected.count | count | +| *vm*#status | N/A | +| *vm*#vm.devices.connected.count | count | + +> To obtain this new metric format, include **--use-new-perfdata** in the **EXTRAOPTIONS** service macro. -| Metric name | Description | Unit | -| :------------ | :----------------------- | :--- | -| status | Overall status of the VM | | + + + +| Metric name | Unit | +|:--------------|:------| +| cpu-status | N/A | +| memory-status | N/A | +| disk-status | N/A | + +> To obtain this new metric format, include **--use-new-perfdata** in the **EXTRAOPTIONS** service macro. + + + + +| Metric name | Unit | +|:------------------------------------|:------| +| *vm*~status | N/A | +| *vm*~vm.memory.consumed.usage.bytes | B | +| *vm*~vm.memory.active.usage.bytes | B | +| *vm*~vm.memory.overhead.bytes | B | +| *vm*~vm.memory.ballooning.bytes | B | +| *vm*~vm.memory.shared.bytes | B | + +> To obtain this new metric format, include **--use-new-perfdata** in the **EXTRAOPTIONS** service macro. -| Metric name | Description | Unit | -| :---------------------------------- | :------------------------------------------------------------ | :---- | -| vm.snapshots.warning.current.count | Number of VM's snapshot older than 3 days (default threshold) | Count | -| vm.snapshots.critical.current.count | Number of VM's snapshot older than 5 days (default threshold) | Count | +| Metric name | Unit | +|:------------------------------------|:------| +| vm.snapshots.warning.current.count | count | +| vm.snapshots.critical.current.count | count | - + + +| Metric name | Unit | +|:--------------------|:------| +| *vm*#status | N/A | +| *vm*#overall-status | N/A | + +> To obtain this new metric format, include **--use-new-perfdata** in the **EXTRAOPTIONS** service macro. + + + + +| Metric name | Unit | +|:--------------------------------------|:------| +| *vm*#status | N/A | +| *vm*#vm.swap.in.usage.bytespersecond | B/s | +| *vm*#vm.swap.out.usage.bytespersecond | B/s | -| Metric name | Description | Unit | -| :--------------------------- | :--------------------- | :---- | -| vm.limit.cpu.alerts.count | Alerts on CPU limit | Count | -| vm.limit.memory.alerts.count | Alerts on Memory limit | Count | -| vm.limit.disk.alerts.count | Alerts on Disk limit | Count | +> To obtain this new metric format, include **--use-new-perfdata** in the **EXTRAOPTIONS** service macro. + + + + +| Metric name | Description | Unit | +|:------------|:-------------------------------------------|:------| +| status | Status of the thin provisoning virtual disks | | + + + + +| Metric name | Unit | +|:------------------------------------|:------| +| vm.tools.notupdated.current.count | count | +| vm.tools.notrunning.current.count | count | +| vm.tools.notinstalled.current.count | count | @@ -89,10 +181,24 @@ For the VMWare monitoring, Centreon use daemon to connect and request the vCente Install this daemon on each needed poller: + + + +```bash +apt install centreon-plugin-virtualization-vmware-daemon ``` + + + + +```bash yum install centreon-plugin-Virtualization-VMWare-daemon ``` + + + + To configure the access to your infrastructure, edit the "/etc/centreon/centreon\_vmware.pm" configuration file: @@ -155,7 +261,7 @@ Make sure that the daemon configuration works fine by looking for errors in ### Tags and Custom Attributes -To discover Tags and Custom Attributes, you must : +To discover Tags and Custom Attributes, you must : * use version **3.2.5** of **centreon-vmware-daemon** * add **--tags** in the additional discovery options: go to the **Configuration > Hosts > Discovery** page, and to the 3rd step (**Set discovery parameters**), in the section **Additional parameters**, in the **Additional options** field, type **--tags**. @@ -166,124 +272,618 @@ The Poller with the Centreon VMware Connector installed need to access in TCP/44 The Pollers that request the Centreon VMWare Connector host need to access in TCP/5700 to the Centreon VMWare Connector host. -## Installation +## Installing the monitoring connector - - +### Pack + +1. If the platform uses an *online* license, you can skip the package installation +instruction below as it is not required to have the connector displayed within the +**Configuration > Monitoring Connectors Manager** menu. +If the platform uses an *offline* license, install the package on the **central server** +with the command corresponding to the operating system's package manager: -1. Install the Vmware2 Connector Centreon Plugin on every poller expected to monitor the devices: + + ```bash -yum install centreon-plugin-Virtualization-Vmware2-Connector-Plugin +dnf install centreon-pack-virtualization-vmware2-vm ``` -2. Install the 'Vmware VM' Centreon Monitoring Connector on the **Configuration > Monitoring Connector Manager** page - - + -1. Install the Vmware VM Centreon Plugin on every poller expected to monitor the devices: +```bash +dnf install centreon-pack-virtualization-vmware2-vm +``` + + + ```bash -yum install centreon-plugin-Virtualization-Vmware2-Connector-Plugin +apt install centreon-pack-virtualization-vmware2-vm ``` -2. Install the Centreon Monitoring Connector RPM: + + ```bash yum install centreon-pack-virtualization-vmware2-vm ``` -3. Install the 'Vmware VM' Centreon Monitoring Connector on the **Configuration > Monitoring Connector Manager** page - -## Configuration +2. Whatever the license type (*online* or *offline*), install the **VMware VM** connector through +the **Configuration > Monitoring Connectors Manager** menu. -* Log into Centreon and add a new Host through "Configuration > Hosts". -* Apply the relevant Host Template "VVirt-VMWare2-Vm-custom", and configure the mandatory Macros: +### Plugin -| Mandatory | Name | Description | -| :---------- | :------------------------- | :----------------------------------------------------- | -| X | CENTREONVMWARECONTAINER | Name of your container in the file centreon_vmware.pm | -| X | CENTREONVMWAREHOST | The Centreon server that launches the connection | -| X | CENTREONVMWAREPORT | By default: 5700 | -| X | VMNAME | Name of the VM (defined in your VMWare infrastructure) | -| | VMUUID | Specify The VM UUID | -| | VMWAREEXTRAOPTIONS | Customize it with your own if needed | +Since Centreon 22.04, you can benefit from the 'Automatic plugin installation' feature. +When this feature is enabled, you can skip the installation part below. -## FAQ +You still have to manually install the plugin on the poller(s) when: +- Automatic plugin installation is turned off +- You want to run a discovery job from a poller that doesn't monitor any resource of this kind yet -### How do I run my plugin through the CLI and what do the main parameters stand for ? +> More information in the [Installing the plugin](/docs/monitoring/pluginpacks/#installing-the-plugin) section. -Once you've installed the plugin, you can test it logging with centreon-engine user: +Use the commands below according to your operating system's package manager: + + + ```bash -/usr/lib/centreon/plugins//centreon_vmware_connector_client.pl - --plugin=apps::vmware::connector::plugin - --mode=tools-vm - --custommode=connector - --connector-hostname='localhost' - --connector-port='5700' - --container='vcenter01' - --vm-hostname='SRV-LIN-TLS' - --filter-uuid='' - --tools-notinstalled-status='critical' - --tools-notrunning-status='critical' - --tools-notup2date-status='warning' +dnf install centreon-plugin-Virtualization-Vmware2-Connector-Plugin ``` -Expected command output is shown below: + + ```bash -OK: VMTools are OK +dnf install centreon-plugin-Virtualization-Vmware2-Connector-Plugin ``` -This command above checks the status of the VMTools (```--plugin=apps::vmware::connector::plugin --mode=tools-vm```) of the VM **SRV-LIN-TLS** (```--vm-hostname='SRV-LIN-TLS'```). -It connects to the VMWare daemon on **localhost** (```--connector-hostname='localhost'```) on the port **5700** (```--connector-port='5700'```). -Then the command requests the container **vcenter01** (```--container='vcenter01'```) because the VM **SRV-LIN-TLS** is managed by **vcenter01**. + + -It will trigger : -* WARNING alarm if the VMTools are not up-to-date (```--tools-notup2date-status='warning'```) -* CRITICAL alarm if the VMTools are not running or installed (```--tools-notinstalled-status='critical' --tools-notrunning-status='critical'```) +```bash +apt install centreon-plugin-virtualization-vmware2-connector-plugin +``` -All available modes with the plugin can be displayed with: + + ```bash -/usr/lib/centreon/plugins/./centreon_vmware_connector_client.pl \ - --plugin=apps::vmware::connector::plugin \ - --list-mode +yum install centreon-plugin-Virtualization-Vmware2-Connector-Plugin ``` -The available options for a mode can be displayed using the ```--help``` parameter: + + + +## Using the monitoring connector + +### Using a host template provided by the connector + +1. Log into Centreon and add a new host through **Configuration > Hosts**. +2. Fill the **Name**, **Alias** & **IP Address/DNS** fields according to your ressource settings. +3. Apply the **Virt-VMWare2-VM-custom** template to the host. A list of macros appears. Macros allow you to define how the connector will connect to the resource, and to customize the connector's behavior. +4. Fill in the macros you want. Some macros are mandatory. + +| Macro | Description | Default value | Mandatory | +|:---------------------------|:------------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| CENTREONVMWAREPORT | Connector port (default: 5700) | 5700 | | +| CENTREONVMWARECONTAINER | Container to use (it depends on the connector's configuration) | default | | +| CENTREONVMWAREHOST | Connector hostname (required) | localhost | X | +| VMNAME | Hostname of the VM to check. If not set, we check all VMs | | | +| VMUUID | Specify the VM's UUID | | | +| CENTREONVMWAREEXTRAOPTIONS | Any extra option you may want to add to every command (e.g. a --verbose flag). All options are listed [here](#available-options) | | | + +5. [Deploy the configuration](/docs/monitoring/monitoring-servers/deploying-a-configuration). The host appears in the list of hosts, and on the **Resources Status** page. The command that is sent by the connector is displayed in the details panel of the host: it shows the values of the macros. + +### Using a service template provided by the connector + +1. If you have used a host template and checked **Create Services linked to the Template too**, the services linked to the template have been created automatically, using the corresponding service templates. Otherwise, [create manually the services you want](/docs/monitoring/basic-objects/services) and apply a service template to them. +2. Fill in the macros you want (e.g. to change the thresholds for the alerts). Some macros are mandatory (see the table below). + + + + +| Macro | Description | Default value | Mandatory | +|:-----------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------|:-----------:| +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | %{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i | | +| WARNINGCPU | Warning threshold | | | +| CRITICALCPU | Critical threshold | | | +| WARNINGREADY | Warning threshold | 5 | | +| CRITICALREADY | Critical threshold | 10 | | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| WARNINGUSAGE | Warning threshold | 80 | | +| CRITICALUSAGE | Critical threshold | 90 | | +| WARNINGUSAGEMHZ | Warning threshold | | | +| CRITICALUSAGEMHZ | Critical threshold | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). All options are listed [here](#available-options) | | | + + + + +| Macro | Description | Default value | Mandatory | +|:------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------|:-----------:| +| FILTERDATASTORENAME | Datastore to check. If not set, we check all datastores | .* | | +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | %{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i | | +| WARNINGMAXTOTALLATENCY | Thresholds | | | +| CRITICALMAXTOTALLATENCY | Thresholds | | | +| WARNINGREAD | Thresholds | | | +| CRITICALREAD | Thresholds | | | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| WARNINGWRITE | Thresholds | | | +| CRITICALWRITE | Thresholds | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). All options are listed [here](#available-options) | --verbose | | + + + + +| Macro | Description | Default value | Mandatory | +|:-----------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------|:-----------:| +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i'). You can use the following variables: %{connection\_state} | %{connection\_state} !~ /^connected$/i | | +| FILTERDEVICE | Device to check (required). (Example: --device='VirtualCdrom') | | X | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state} | | | +| WARNINGTOTALDEVICECONNECTED | Warning threshold | | | +| CRITICALTOTALDEVICECONNECTED | Critical threshold | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). All options are listed [here](#available-options) | | | + + + + +| Macro | Description | Default value | Mandatory | +|:---------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------|:-----------:| +| CRITICALCPUSTATUS | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | %{connection\_state} !~ /^connected$/i \|\| %{limit} != -1 | | +| WARNINGCPUSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | | | +| CRITICALDISKSTATUS | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | %{connection\_state} !~ /^connected$/i \|\| %{limit} != -1 | | +| WARNINGDISKSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | | | +| CRITICALMEMORYSTATUS | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | %{connection\_state} !~ /^connected$/i \|\| %{limit} != -1 | | +| WARNINGMEMORYSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). All options are listed [here](#available-options) | --verbose | | + + + + +| Macro | Description | Default value | Mandatory | +|:-------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------|:-----------:| +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | %{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i | | +| WARNING | Warning threshold | | | +| CRITICAL | Critical threshold | | | +| WARNINGACTIVE | Warning threshold | | | +| CRITICALACTIVE | Critical threshold | | | +| WARNINGBALLOONING | Warning threshold | | | +| CRITICALBALLOONING | Critical threshold | | | +| WARNINGOVERHEAD | Warning threshold | | | +| CRITICALOVERHEAD | Critical threshold | | | +| WARNINGSHARED | Warning threshold | | | +| CRITICALSHARED | Critical threshold | | | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). All options are listed [here](#available-options) | | | + + + + +| Macro | Description | Default value | Mandatory | +|:-------------|:----------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| WARNING | Warning threshold for snapshot's age | 259200 | | +| CRITICAL | Critical threshold for snapshot's age | 432000 | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). All options are listed [here](#available-options) | | | + + + + +| Macro | Description | Default value | Mandatory | +|:----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------|:-----------:| +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | %{connection\_state} !~ /^connected$/i | | +| UNKNOWNOVERALLSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{overall\_status} =~ /gray/i'). You can use the following variables: %{overall\_status} | %{overall\_status} =~ /gray/i | | +| WARNINGOVERALLSTATUS | Define the conditions to match for the status to be WARNING (Default: '%{overall\_status} =~ /yellow/i'). You can use the following variables: %{overall\_status} | %{overall\_status} =~ /yellow/i | | +| CRITICALOVERALLSTATUS | Define the conditions to match for the status to be CRITICAL (Default: '%{overall\_status} =~ /red/i'). You can use the following variables: %{overall\_status} | %{overall\_status} =~ /red/i | | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING. You can use the following variables: %{connection\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL. You can use the following variables: %{connection\_state}, %{power\_state} | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). All options are listed [here](#available-options) | --verbose | | + + + + +| Macro | Description | Default value | Mandatory | +|:----------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------|:-----------:| +| UNKNOWNSTATUS | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | %{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i | | +| WARNINGSTATUS | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| CRITICALSTATUS | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | | | +| WARNINGSWAPIN | Warning threshold | | | +| CRITICALSWAPIN | Critical threshold | | | +| WARNINGSWAPOUT | Warning threshold | | | +| CRITICALSWAPOUT | Critical threshold | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). All options are listed [here](#available-options) | | | + + + + +| Macro | Description | Default value | Mandatory | +|:-------------|:----------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| STATUS | Thin provisioning status (default: none). Example: 'active,CRITICAL' or 'notactive,WARNING' | active,WARNING | X | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). All options are listed [here](#available-options) | --verbose | | + + + + +| Macro | Description | Default value | Mandatory | +|:-------------------|:----------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| NOTINSTALLEDSTATUS | Status if vmtools is not installed (default: critical) | critical | X | +| NOTRUNNINGSTATUS | Status if vmtools is not running (default: critical) | critical | X | +| NOTUP2DATESTATUS | Status if vmtools is not up to date (default: warning) | warning | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (e.g. a --verbose flag). All options are listed [here](#available-options) | | | + + + + +3. [Deploy the configuration](/docs/monitoring/monitoring-servers/deploying-a-configuration). The service appears in the list of services, and on the **Resources Status** page. The command that is sent by the connector is displayed in the details panel of the service: it shows the values of the macros. + +## How to check in the CLI that the configuration is OK and what are the main options for? + +Once the plugin is installed, log into your Centreon poller's CLI using the +**centreon-engine** user account (`su - centreon-engine`). Test that the connector +is able to monitor a resource using a command like this one (replace the sample values by yours): ```bash -/usr/lib/centreon/plugins/./centreon_vmware_connector_client.pl \ - --plugin=apps::vmware::connector::plugin \ - --mode=tools-vm \ - --help +/usr/lib/centreon/plugins/centreon_vmware_connector_client.pl \ + --plugin=apps::vmware::connector::plugin \ + --mode=swap-vm \ + --custommode=connector \ + --connector-hostname='localhost' \ + --connector-port='5700' \ + --container='default' \ + --vm-hostname='' \ + --filter-uuid='' \ + --unknown-status='%{connection_state} !~ /^connected$/i or %{power_state} !~ /^poweredOn$/i' \ + --warning-status='' \ + --critical-status='' \ + --warning-swap-in='' \ + --critical-swap-in='' \ + --warning-swap-out='' \ + --critical-swap-out='' ``` -### Why do I get the following error: +The expected command output is shown below: -#### UNKNOWN: Unknown container name 'default' | +```bash +OK: All virtual machines are ok | '*vm*#vm.swap.in.usage.bytespersecond'=B/s;;;0;'*vm*#vm.swap.out.usage.bytespersecond'=B/s;;;0; +``` -This error message means that the container invoked in the command doesn't exist in your VMWare connector configuration. -Check your macro **CENTREONVMWARECONTAINER** on your host or check the file */etc/centreon/centreon_vmware.pm* +### Troubleshooting -#### UNKNOWN: Cannot get response (timeout received) +Please find the [troubleshooting documentation](../getting-started/how-to-guides/troubleshooting-plugins.md) +for Centreon Plugins typical issues. -This error message means that the Plugin didn't get a response off the VMWare Daemon. -Check your connection parameters and the macros **CENTREONVMWAREHOST** and **CENTREONVMWAREPORT**. +### Available modes -#### UNKNOWN: Container connection problem | +In most cases, a mode corresponds to a service template. The mode appears in the execution command for the connector. +In the Centreon interface, you don't need to specify a mode explicitly: its use is implied when you apply a service template. +However, you will need to specify the correct mode for the template if you want to test the execution command for the +connector in your terminal. -This error message means that you have a issue with the credentials provided for your Container. -Check your credentials in */etc/centreon/centreon_vmware.pm*. -You can also take a look into the log for more information: */var/log/centreon/centreon_vmware.log* +All available modes can be displayed by adding the `--list-mode` parameter to +the command: -#### UNKNOWN: Cannot find 'VirtualMachine' object | +```bash +/usr/lib/centreon/plugins/centreon_vmware_connector_client.pl \ + --plugin=apps::vmware::connector::plugin \ + --list-mode +``` + +The plugin brings the following modes: + +| Mode | Linked service template | +|:---------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------| +| alarm-datacenter [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/alarmdatacenter.pm)] | Not used in this Monitoring Connector | +| alarm-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/alarmhost.pm)] | Not used in this Monitoring Connector | +| countvm-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/countvmhost.pm)] | Not used in this Monitoring Connector | +| cpu-cluster [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/cpucluster.pm)] | Not used in this Monitoring Connector | +| cpu-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/cpuhost.pm)] | Not used in this Monitoring Connector | +| cpu-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/cpuvm.pm)] | Virt-VMWare2-Vm-Cpu-Generic-custom | +| datastore-countvm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastorecountvm.pm)] | Not used in this Monitoring Connector | +| datastore-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastorehost.pm)] | Not used in this Monitoring Connector | +| datastore-io [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastoreio.pm)] | Not used in this Monitoring Connector | +| datastore-iops [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastoreiops.pm)] | Not used in this Monitoring Connector | +| datastore-snapshot [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastoresnapshot.pm)] | Not used in this Monitoring Connector | +| datastore-usage [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastoreusage.pm)] | Not used in this Monitoring Connector | +| datastore-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/datastorevm.pm)] | Virt-VMWare2-Vm-Datastores-Iops-Generic-custom | +| device-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/devicevm.pm)] | Virt-VMWare2-Vm-Device-Generic-custom | +| discovery [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/discovery.pm)] | Used for host discovery | +| getmap [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/getmap.pm)] | Not used in this Monitoring Connector | +| health-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/healthhost.pm)] | Not used in this Monitoring Connector | +| licenses [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/licenses.pm)] | Not used in this Monitoring Connector | +| limit-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/limitvm.pm)] | Virt-VMWare2-Vm-Limit-Generic-custom | +| list-clusters [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/listclusters.pm)] | Not used in this Monitoring Connector | +| list-datacenters [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/listdatacenters.pm)] | Not used in this Monitoring Connector | +| list-datastores [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/listdatastores.pm)] | Not used in this Monitoring Connector | +| list-nichost [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/listnichost.pm)] | Not used in this Monitoring Connector | +| maintenance-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/maintenancehost.pm)] | Not used in this Monitoring Connector | +| memory-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/memoryhost.pm)] | Not used in this Monitoring Connector | +| memory-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/memoryvm.pm)] | Virt-VMWare2-Vm-Memory-Generic-custom | +| net-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/nethost.pm)] | Not used in this Monitoring Connector | +| net-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/netvm.pm)] | Not used in this Monitoring Connector | +| service-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/servicehost.pm)] | Not used in this Monitoring Connector | +| snapshot-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/snapshotvm.pm)] | Virt-VMWare2-Vm-Snapshot-Generic-custom | +| stat-connectors [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/statconnectors.pm)] | Not used in this Monitoring Connector | +| status-cluster [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/statuscluster.pm)] | Not used in this Monitoring Connector | +| status-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/statushost.pm)] | Not used in this Monitoring Connector | +| status-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/statusvm.pm)] | Virt-VMWare2-Vm-Status-Generic-custom | +| storage-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/storagehost.pm)] | Not used in this Monitoring Connector | +| swap-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/swaphost.pm)] | Not used in this Monitoring Connector | +| swap-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/swapvm.pm)] | Virt-VMWare2-Vm-Swap-Generic-custom | +| thinprovisioning-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/thinprovisioningvm.pm)] | Virt-VMWare2-Vm-Thinprovisioning-Generic-custom | +| time-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/timehost.pm)] | Not used in this Monitoring Connector | +| tools-vm [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/toolsvm.pm)] | Virt-VMWare2-Vm-Tools-Generic-custom | +| uptime-host [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/uptimehost.pm)] | Not used in this Monitoring Connector | +| vmoperation-cluster [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/vmoperationcluster.pm)] | Not used in this Monitoring Connector | +| vsan-cluster-usage [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/apps/vmware/connector/mode/vsanclusterusage.pm)] | Not used in this Monitoring Connector | + +### Available options + +#### Generic options + +All generic options are listed here: + +| Option | Description | +|:-------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --mode | Define the mode in which you want the plugin to be executed (see--list-mode). | +| --dyn-mode | Specify a mode with the module's path (advanced). | +| --list-mode | List all available modes. | +| --mode-version | Check minimal version of mode. If not, unknown error. | +| --version | Return the version of the plugin. | +| --custommode | When a plugin offers several ways (CLI, library, etc.) to get information the desired one must be defined with this option. | +| --list-custommode | List all available custom modes. | +| --multiple | Multiple custom mode objects. This may be required by some specific modes (advanced). | +| --pass-manager | Define the password manager you want to use. Supported managers are: environment, file, keepass, hashicorpvault and teampass. | +| --verbose | Display extended status information (long output). | +| --debug | Display debug messages. | +| --filter-perfdata | Keep only perfdata that match the regexp. Eg: adding --filter-perfdata='avg' will remove all metrics that do not contain 'avg' from performance data. | +| --filter-perfdata-adv | Filter perfdata based on a "if" condition using the following variables: label, value, unit, warning, critical, min, max. Variables must be written either %{variable} or %(variable). Eg: adding --filter-perfdata-adv='not (%(value) == 0 and %(max) eq "")' will remove all metrics whose value equals 0 and that don't have a maximum value. | +| --explode-perfdata-max | Create a new metric for each metric that comes with a maximum limit. The new metric will be named identically with a '\_max' suffix). Eg: it will split 'used\_prct'=26.93%;0:80;0:90;0;100 into 'used\_prct'=26.93%;0:80;0:90;0;100 'used\_prct\_max'=100%;;;; | +| --change-perfdata --extend-perfdata | Change or extend perfdata. Syntax: --extend-perfdata=searchlabel,newlabel,target\[,\[newuom\],\[min\],\[m ax\]\] Common examples: Convert storage free perfdata into used: --change-perfdata=free,used,invert() Convert storage free perfdata into used: --change-perfdata=used,free,invert() Scale traffic values automatically: --change-perfdata=traffic,,scale(auto) Scale traffic values in Mbps: --change-perfdata=traffic\_in,,scale(Mbps),mbps Change traffic values in percent: --change-perfdata=traffic\_in,,percent() | +| --extend-perfdata-group | Add new aggregated metrics (min, max, average or sum) for groups of metrics defined by a regex match on the metrics' names. Syntax: --extend-perfdata-group=regex,namesofnewmetrics,calculation\[,\[ne wuom\],\[min\],\[max\]\] regex: regular expression namesofnewmetrics: how the new metrics' names are composed (can use $1, $2... for groups defined by () in regex). calculation: how the values of the new metrics should be calculated newuom (optional): unit of measure for the new metrics min (optional): lowest value the metrics can reach max (optional): highest value the metrics can reach Common examples: Sum wrong packets from all interfaces (with interface need --units-errors=absolute): --extend-perfdata-group=',packets\_wrong,sum(packets\_(discard \|error)\_(in\|out))' Sum traffic by interface: --extend-perfdata-group='traffic\_in\_(.*),traffic\_$1,sum(traf fic\_(in\|out)\_$1)' | +| --change-short-output --change-long-output | Modify the short/long output that is returned by the plugin. Syntax: --change-short-output=pattern~replacement~modifier Most commonly used modifiers are i (case insensitive) and g (replace all occurrences). Eg: adding --change-short-output='OK~Up~gi' will replace all occurrences of 'OK', 'ok', 'Ok' or 'oK' with 'Up' | +| --change-exit | Replace an exit code with one of your choice. Example: adding --change-exit=unknown=critical will result in a CRITICAL state instead of an UNKNOWN state. | +| --range-perfdata | Rewrite the ranges displayed in the perfdata. Accepted values: 0: nothing is changed. 1: if the lower value of the range is equal to 0, it is removed. 2: remove the thresholds from the perfdata. | +| --filter-uom | Mask the units when they don't match the given regular expression. | +| --opt-exit | Replace the exit code in case of an execution error (i.e. wrong option provided, SSH connection refused, timeout, etc). Default: unknown. | +| --output-ignore-perfdata | Remove all the metrics from the service. The service will still have a status and an output. | +| --output-ignore-label | Remove the status label ("OK:", "WARNING:", "UNKNOWN:", CRITICAL:") from the beginning of the output. Eg: 'OK: Ram Total:...' will become 'Ram Total:...' | +| --output-xml | Return the output in XML format (to send to an XML API). | +| --output-json | Return the output in JSON format (to send to a JSON API). | +| --output-openmetrics | Return the output in OpenMetrics format (to send to a tool expecting this format). | +| --output-file | Write output in file (can be combined with json, xml and openmetrics options). E.g.: --output-file=/tmp/output.txt will write the output in /tmp/output.txt. | +| --disco-format | Applies only to modes beginning with 'list-'. Returns the list of available macros to configure a service discovery rule (formatted in XML). | +| --disco-show | Applies only to modes beginning with 'list-'. Returns the list of discovered objects (formatted in XML) for service discovery. | +| --float-precision | Define the float precision for thresholds (default: 8). | +| --source-encoding | Define the character encoding of the response sent by the monitored resource. Default: 'UTF-8'. | +| --connector-hostname | Connector hostname (required). | +| --connector-port | Connector port (default: 5700). | +| --container | Container to use (it depends on the connector's configuration). | +| --vsphere-address | Address of the vpshere/ESX instance to connect to. | +| --vsphere-username | Username to use to connect to the vpshere/ESX instance (with --vsphere-address). | +| --vsphere-password | Password used to connect to the vpshere/ESX instance (with --vsphere-address). | +| --timeout | Set global execution timeout (Default: 50) | +| --sampling-period | Choose the sampling period (can change the default sampling for counters). Should be not different from 300 or 20. | +| --time-shift | Can shift the time. With the following option you can average X counters values (default: 0). | +| --case-insensitive | Searches are case insensitive. | +| --unknown-connector-status | Set unknown threshold for connector status (Default: '%{code} \< 0 \|\| (%{code} \> 0 && %{code} \< 200)'). You can use the following variables: %{code}, %{short\_message}, %{extra\_message}. | +| --warning-connector-status | Set warning threshold for connector status (Default: ''). You can use the following variables: %{code}, %{short\_message}, %{extra\_message}. | +| --critical-connector-status | Set critical threshold for connector status (Default: ''). You can use the following variables: %{code}, %{short\_message}, %{extra\_message}. | + +#### Modes options + +All available options for each service template are listed below: + + + + +| Option | Description | +|:---------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. Exemple : --vm-hostname='^((VM-PROD-*))' --filter | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-* | Warning threshold. Can be: 'total-cpu', 'total-cpu-mhz', 'cpu-ready', 'cpu'. | +| --critical-* | Critical threshold. Can be: 'total-cpu', 'total-cpu-mhz', 'cpu-ready', 'cpu'. | + + + + +| Option | Description | +|:-------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --datastore-name | Datastore to check. If not set, we check all datastores. | +| --filter-datastore | Datastore name is a regexp. | +| --display-description | Display the description of the virtual machine. | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-* --critical-* | Thresholds. Can be: 'max-total-latency', 'read', 'write'. | + + + + +| Option | Description | +|:----------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --display-description | Display the description of the virtual machine. | +| --device | Device to check (required). (Example: --device='VirtualCdrom'). | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i'). You can use the following variables: %{connection\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state} | +| --warning-* | Warning threshold. Can be: 'total-device-connected', 'device-connected'. | +| --critical-* | Critical threshold. Can be: 'total-device-connected', 'device-connected'. | + + + + +| Option | Description | +|:-------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --display-description | Display the description of the virtual machine. | +| --check-disk-limit | Check disk limits (since vsphere 5.0). | +| --warning-disk-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | +| --critical-disk-status | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | +| --warning-cpu-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | +| --critical-cpu-status | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | +| --warning-memory-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | +| --critical-memory-status | Define the conditions to match for the status to be CRITICAL (Default: '%{connection\_state} !~ /^connected$/i \|\| %{limit} != -1'). You can use the following variables: %{connection\_state}, %{power\_state}, %{limit} | + + + + +| Option | Description | +|:----------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --display-description | Display the description of the virtual machine. | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --units | Units of thresholds (Default: '%') ('%', 'B'). | +| --free | Thresholds are applied on free space left. | +| --warning-* | Warning threshold. Can be: 'consumed', 'active', 'overhead', 'ballooning', 'shared'. | +| --critical-* | Critical threshold. Can be: 'consumed', 'active', 'overhead', 'ballooning', 'shared'. | + + + + +| Option | Description | +|:----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --display-description | Display the description of the virtual machine. | +| --check-consolidation | Check if VM needs consolidation (since vsphere 5.0). | +| --disconnect-status | Status if VM disconnected (default: 'unknown'). | +| --nopoweredon-skip | Skip check if VM is not poweredOn. | +| --empty-continue | Ask to the connector that an empty response is ok. | +| --unit | Select the unit for performance data and thresholds. May be 's'for seconds, 'm' for minutes, 'h' for hours, 'd' for days, 'w' for weeks. Default is seconds | +| --warning | Warning threshold for snapshot's age. | +| --critical | Critical threshold for snapshot's age. | + + + + +| Option | Description | +|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING. You can use the following variables: %{connection\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL. You can use the following variables: %{connection\_state}, %{power\_state} | +| --unknown-overall-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{overall\_status} =~ /gray/i'). You can use the following variables: %{overall\_status} | +| --warning-overall-status | Define the conditions to match for the status to be WARNING (Default: '%{overall\_status} =~ /yellow/i'). You can use the following variables: %{overall\_status} | +| --critical-overall-status | Define the conditions to match for the status to be CRITICAL (Default: '%{overall\_status} =~ /red/i'). You can use the following variables: %{overall\_status} | + + + + +| Option | Description | +|:----------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --display-description | Display the description of the virtual machine. | +| --unknown-status | Define the conditions to match for the status to be UNKNOWN (Default: '%{connection\_state} !~ /^connected$/i or %{power\_state} !~ /^poweredOn$/i'). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-status | Define the conditions to match for the status to be WARNING (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --critical-status | Define the conditions to match for the status to be CRITICAL (Default: ''). You can use the following variables: %{connection\_state}, %{power\_state} | +| --warning-* | Warning threshold. Can be: 'swap-in', 'swap-out'. | +| --critical-* | Critical threshold. Can be: 'swap-in', 'swap-out'. | -This error message means that the Plugin didn't find the Virtual Machine. -Check the Virtual Machine name in the macro **HOSTVMNAME**, it's must fit the name defined in your VMWare infrastructure. + + + +| Option | Description | +|:--------------------------|:---------------------------------------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --disconnect-status | Status if VM disconnected (default: 'unknown'). | +| --nopoweredon-skip | Skip check if VM is not poweredOn. | +| --display-description | Display the description of the virtual machine. | +| --thinprovisioning-status | Thin provisioning status (default: none). Example: 'active,CRITICAL' or 'notactive,WARNING' | + + + + +| Option | Description | +|:----------------------------|:--------------------------------------------------------------| +| --vm-hostname | Hostname of the VM to check. If not set, we check all VMs. | +| --filter | VM hostname is a regexp. | +| --filter-description | Filter also virtual machines description (can be a regexp). | +| --filter-os | Filter also virtual machines OS name (can be a regexp). | +| --scope-datacenter | Search in the following datacenter(s) (can be a regexp). | +| --scope-cluster | Search in the following cluster(s) (can be a regexp). | +| --scope-host | Search in the following host(s) (can be a regexp). | +| --disconnect-status | Status if VM disconnected (default: 'unknown'). | +| --nopoweredon-skip | Skip check if VM is not poweredOn. | +| --empty-continue | Ask to the connector that an empty response is ok. | +| --display-description | Display the description of the virtual machine. | +| --tools-notinstalled-status | Status if vmtools is not installed (default: critical). | +| --tools-notrunning-status | Status if vmtools is not running (default: critical). | +| --tools-notup2date-status | Status if vmtools is not up to date (default: warning). | + + + + +All available options for a given mode can be displayed by adding the +`--help` parameter to the command: + +```bash +/usr/lib/centreon/plugins/centreon_vmware_connector_client.pl \ + --plugin=apps::vmware::connector::plugin \ + --mode=swap-vm \ + --help +```