From 39b950a12adae406ce036a9f434d1fd6e398b8c2 Mon Sep 17 00:00:00 2001 From: YanMeddour Date: Thu, 9 Jan 2025 16:39:46 +0100 Subject: [PATCH] [CTOR-1285]-Refresh hardware-storage-fujitsu-eternus-dx-ssh doc page --- ...hardware-storage-fujitsu-eternus-dx-ssh.md | 540 +++++++++++++++++- ...hardware-storage-fujitsu-eternus-dx-ssh.md | 533 ++++++++++++++++- 2 files changed, 1012 insertions(+), 61 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs-pp/current/integrations/plugin-packs/procedures/hardware-storage-fujitsu-eternus-dx-ssh.md b/i18n/fr/docusaurus-plugin-content-docs-pp/current/integrations/plugin-packs/procedures/hardware-storage-fujitsu-eternus-dx-ssh.md index 07e2654af1ae..374bbc9ae926 100644 --- a/i18n/fr/docusaurus-plugin-content-docs-pp/current/integrations/plugin-packs/procedures/hardware-storage-fujitsu-eternus-dx-ssh.md +++ b/i18n/fr/docusaurus-plugin-content-docs-pp/current/integrations/plugin-packs/procedures/hardware-storage-fujitsu-eternus-dx-ssh.md @@ -2,51 +2,529 @@ id: hardware-storage-fujitsu-eternus-dx-ssh title: Fujitsu Eternus DX --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; -## Prerequisites +## Dépendances du Connecteur de supervision -This chapter describes the prerequisites installation needed by plugins to run. +Les connecteurs de supervision suivants sont automatiquement installés lors de l'installation du connecteur **Fujitsu Eternus DX** +depuis la page **Configuration > Gestionnaire de connecteurs de supervision** : +* [Base Pack](./base-generic.md) -### Centreon Plugin +## Contenu du pack -Install this plugin on each needed poller: +### Modèles -``` shell +Le connecteur de supervision **Fujitsu Eternus DX** apporte un modèle d'hôte : + +* **HW-Storage-Fujitsu-Eternus-DX-SSH-custom** + +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 | +|:--------------|:-------------------------------------------------------|:----------------------------------------------| +| Cpu | HW-Storage-Fujitsu-Eternus-DX-SSH-Cpu-custom | Contrôle du taux d'utilisation CPU de la baie | +| Physical-Disk | HW-Storage-Fujitsu-Eternus-DX-SSH-Physical-Disk-custom | Contrôle l'état des disques | +| Port-Stats | HW-Storage-Fujitsu-Eternus-DX-SSH-Port-Stats-custom | Contrôle l'état des ports | +| Psu | HW-Storage-Fujitsu-Eternus-DX-SSH-Psu-custom | Contrôle l'état de l'alimentation | +| Raid-Groups | HW-Storage-Fujitsu-Eternus-DX-SSH-Raid-Groups-custom | Contrôle de l'espace disques. | +| Volume-Stats | HW-Storage-Fujitsu-Eternus-DX-SSH-Stats-custom | Contrôle de l'état général de la baie. | + +> Les services listés ci-dessus sont créés automatiquement lorsque le modèle d'hôte **HW-Storage-Fujitsu-Eternus-DX-SSH-custom** est utilisé. + + + + +### Métriques & statuts collectés + +Voici le tableau des services pour ce connecteur, détaillant les métriques et statuts rattachés à chaque service. + + + + +| Nom | Unité | +|:---------------------------------|:------| +| *cpu*#cpu.utilization.percentage | % | + +> Pour obtenir ce nouveau format de métrique, incluez la valeur **--use-new-perfdata** dans la macro de service **EXTRAOPTIONS**. + + + + +| Nom | Unité | +|:----------------------------------------------|:------| +| disk-status | N/A | + + + + +| Nom | Unité | +|:----------------------------------------------|:------| +| *port*#port.io.read.usage.iops | iops | +| *port*#port.io.write.usage.iops | iops | +| *port*#port.traffic.read.usage.bitspersecond | b/s | +| *port*#port.traffic.write.usage.bitspersecond | b/s | + +> Pour obtenir ce nouveau format de métrique, incluez la valeur **--use-new-perfdata** dans la macro de service **EXTRAOPTIONS**. + + + + +| Nom | Unité | +|:----------------------------------------------|:------| +| hardware.powersupply.power.watt | W | + + + + +| Nom | Unité | +|:---------------------------------|:------| +| status | N/A | +| *rg*#raidgroup.space.usage.bytes | B | + +> Pour obtenir ce nouveau format de métrique, incluez la valeur **--use-new-perfdata** dans la macro de service **EXTRAOPTIONS**. + + + + +| Nom | Unité | +|:-------------------------------------------------------|:------| +| *volume1*#volume.io.read.usage.iops | iops | +| *volume2*#volume.io.read.usage.iops | iops | +| *volume1*#volume.io.write.usage.iops | iops | +| *volume2*#volume.io.write.usage.iops | iops | +| *volume1*#volume.traffic.read.usage.bitspersecond | b/s | +| *volume2*#volume.traffic.read.usage.bitspersecond | b/s | +| *volume1*#volume.traffic.write.usage.bitspersecond | b/s | +| *volume2*#volume.traffic.write.usage.bitspersecond | b/s | +| *volume1*#volume.io.read.time.response.milliseconds | ms | +| *volume2*#volume.io.read.time.response.milliseconds | ms | +| *volume1*#volume.io.write.time.response.milliseconds | ms | +| *volume2*#volume.io.write.time.response.milliseconds | ms | +| *volume1*#volume.io.read.time.processing.milliseconds | ms | +| *volume2*#volume.io.read.time.processing.milliseconds | ms | +| *volume1*#volume.io.write.time.processing.milliseconds | ms | +| *volume2*#volume.io.write.time.processing.milliseconds | ms | +| *volume1*#volume.io.read.cache.hits.percentage | % | +| *volume2*#volume.io.read.cache.hits.percentage | % | +| *volume1*#volume.io.write.cache.hits.percentage | % | +| *volume2*#volume.io.write.cache.hits.percentage | % | + +> Pour obtenir ce nouveau format de métrique, incluez la valeur **--use-new-perfdata** dans la macro de service **EXTRAOPTIONS**. + + + + +## Prérequis + +### Configuration SSH + +L'utilisation de ce connecteur requiert la création d'un utilisateur sur la +ressource supervisée, lequel sera utilisé par le collecteur Centreon pour +s'authentifier et exécuter les requêtes SSH. Les privilèges `sudo` ou `root` ne +sont pas nécessaires, un utilisateur 'simple' est suffisant. + +Deux méthodes de connexion SSH sont possibles : +* soit en échangeant la clé SSH publique de l'utilisateur `centreon-engine` du collecteur Centreon +* soit en définissant votre utilisateur et votre mot de passe directement dans les macros d'hôtes. + +## 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 : + + + + +```bash +dnf install centreon-pack-hardware-storage-fujitsu-eternus-dx-ssh +``` + + + + +```bash +dnf install centreon-pack-hardware-storage-fujitsu-eternus-dx-ssh +``` + + + + +```bash +apt install centreon-pack-hardware-storage-fujitsu-eternus-dx-ssh +``` + + + + +```bash +yum install centreon-pack-hardware-storage-fujitsu-eternus-dx-ssh +``` + + + + +2. Quel que soit le type de la licence (*online* ou *offline*), installez le connecteur **Fujitsu Eternus DX** +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. + +> Plus d'informations dans la section [Installer le plugin](/docs/monitoring/pluginpacks/#installer-le-plugin). + +Utilisez les commandes ci-dessous en fonction du gestionnaire de paquets de votre système d'exploitation : + + + + +```bash +dnf install centreon-plugin-Hardware-Storage-Fujitsu-Eternus-Dx-Ssh +``` + + + + +```bash +dnf install centreon-plugin-Hardware-Storage-Fujitsu-Eternus-Dx-Ssh +``` + + + + +```bash +apt install centreon-plugin-hardware-storage-fujitsu-eternus-dx-ssh +``` + + + + +```bash yum install centreon-plugin-Hardware-Storage-Fujitsu-Eternus-Dx-Ssh ``` -SSH key exchange must be done between poller and monitored server. Create a user -centreon on your Fujitsu Eternus DX equipment. + + + +## Utiliser le connecteur de supervision + +### Utiliser un modèle d'hôte issu du connecteur + +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 **HW-Storage-Fujitsu-Eternus-DX-SSH-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 | +|:----------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| SSHUSERNAME | Define the user name to log in to the host | centreon | | +| SSHPASSWORD | Define the password associated with the user name. Cannot be used with the sshcli backend. Warning: using a password is not recommended. Use --ssh-priv-key instead | | | +| SSHPORT | Define the TCP port on which SSH is listening | | | +| SSHBACKEND | Define the backend you want to use. It can be: sshcli (default), plink and libssh | libssh | | +| SSHEXTRAOPTIONS | Any extra option you may want to add to every command (a --verbose flag for example). 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 | +|:-------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| CRITICAL | Critical threshold (in percent) | 90 | | +| WARNING | Warning threshold (in percent) | 80 | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). Toutes les options sont listées [ici](#options-disponibles). | | | -Generate key for centreon-engine user with command: + + - # su - centreon-engine - # ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa - # ssh-keygen -e -f .ssh/identity.pub > identity.pub.ietf - # telnet \ - CLI> import ssh-public-key -server \ -port maintenance -user \ -filename identity.pub.ietf -account-name centreon - Password: - importing ./identity.pub.ietf from ... - CLI> exit +| Macro | Description | Valeur par défaut | Obligatoire | +|:-------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). Toutes les options sont listées [ici](#options-disponibles). | | | -You can now try to connect you without password + + - # su - centreon-engine - # ssh -l centreon \ +| Macro | Description | Valeur par défaut | Obligatoire | +|:---------------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| WARNINGREADIOPS | Threshold | | | +| CRITICALREADIOPS | Threshold | | | +| WARNINGREADTRAFFIC | Threshold | | | +| CRITICALREADTRAFFIC | Threshold | | | +| WARNINGWRITEIOPS | Threshold | | | +| CRITICALWRITEIOPS | Threshold | | | +| CRITICALWRITETRAFFIC | Threshold | | | +| WARNINGWRTIETRAFFIC | Threshold | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). Toutes les options sont listées [ici](#options-disponibles). | | | -## Centreon Configuration + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:-------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). Toutes les options sont listées [ici](#options-disponibles). | | | + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:-------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| WARNING | Warning threshold (in percent) | 80 | | +| CRITICAL | Critical threshold (in percent) | 90 | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). Toutes les options sont listées [ici](#options-disponibles). | | | + + + + +| Macro | Description | Valeur par défaut | Obligatoire | +|:--------------------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| WARNINGREADCACHEHITRATE | Threshold | | | +| CRITICALREADCACHEHITRATE | Threshold | | | +| WARNINGREADIOPS | Threshold | | | +| CRITICALREADIOPS | Threshold | | | +| WARNINGREADPROCTIME | Threshold | | | +| CRITICALREADPROCTIME | Threshold | | | +| WARNINGREADREPTIME | Threshold | | | +| CRITICALREADREPTIME | Threshold | | | +| WARNINGREADTRAFFIC | Threshold | | | +| CRITICALREADTRAFFIC | Threshold | | | +| WARNINGWRITECACHEHITRATE | Threshold | | | +| CRITICALWRITECACHEHITRATE | Threshold | | | +| WARNINGWRITEIOPS | Threshold | | | +| CRITICALWRITEIOPS | Threshold | | | +| WARNINGWRITEPROCTIME | Threshold | | | +| CRITICALWRITEPROCTIME | Threshold | | | +| WARNINGWRITEREPTIME | Threshold | | | +| CRITICALWRITEREPTIME | Threshold | | | +| CRITICALWRITETRAFFIC | Threshold | | | +| WARNINGWRTIETRAFFIC | Threshold | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). 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_fujitsu_eternus_dx.pl \ + --plugin=storage::fujitsu::eternus::dx::ssh::plugin \ + --mode=volume-stats \ + --hostname='10.0.0.1' \ + --ssh-backend='libssh' \ + --ssh-username='centreon' \ + --ssh-password='' \ + --ssh-port='' \ + --warning-read-iops='' \ + --warning-write-iops='' \ + --warning-read-traffic='' \ + --warning-write-traffic='' \ + --warning-read-response-time='' \ + --warning-write-response-time='' \ + --warning-read-processing-time='' \ + --warning-write-processing-time='' \ + --warning-read-cache-hit-rate='' \ + --warning-write-cache-hit-rate='' \ + --critical-read-iops='' \ + --critical-write-iops='' \ + --critical-read-traffic='' \ + --critical-write-traffic='' \ + --critical-read-response-time='' \ + --critical-write-response-time='' \ + --critical-read-processing-time='' \ + --critical-write-processing-time='' \ + --critical-read-cache-hit-rate='' \ + --critical-write-cache-hit-rate='' +``` + +La commande devrait retourner un message de sortie similaire à : + +```bash +OK: All Volumes are ok | 'volume1#volume.io.read.usage.iops'=78441iops;;;0; 'volume2#volume.io.read.usage.iops'=57008iops;;;0; 'volume1#volume.io.write.usage.iops'=96963iops;;;0; 'volume2#volume.io.write.usage.iops'=58589iops;;;0; 'volume1#volume.traffic.read.usage.bitspersecond'=96814b/s;;;0; 'volume2#volume.traffic.read.usage.bitspersecond'=20356b/s;;;0; 'volume1#volume.traffic.write.usage.bitspersecond'=69148b/s;;;0; 'volume2#volume.traffic.write.usage.bitspersecond'=41615b/s;;;0; 'volume1#volume.io.read.time.response.milliseconds'=46774ms;;;0; 'volume2#volume.io.read.time.response.milliseconds'=80980ms;;;0; 'volume1#volume.io.write.time.response.milliseconds'=61404ms;;;0; 'volume2#volume.io.write.time.response.milliseconds'=50417ms;;;0; 'volume1#volume.io.read.time.processing.milliseconds'=52991ms;;;0; 'volume2#volume.io.read.time.processing.milliseconds'=91359ms;;;0; 'volume1#volume.io.write.time.processing.milliseconds'=90175ms;;;0; 'volume2#volume.io.write.time.processing.milliseconds'=77084ms;;;0; 'volume1#volume.io.read.cache.hits.percentage'=88455%;;;0;100 'volume2#volume.io.read.cache.hits.percentage'=91718%;;;0;100 'volume1#volume.io.write.cache.hits.percentage'=28616%;;;0;100 'volume2#volume.io.write.cache.hits.percentage'=44490%;;;0;100 +``` -### Create a host using the appropriate template +### Diagnostic des erreurs communes -Go to *Configuration \> Hosts* and click *Add*. Then, fill the form as shown by -the following table: +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. -| Field | Value | -| :----------------------------------- | :--------------------------------------- | -| Host name | *Name of the host* | -| Alias | *Host description* | -| IP | *Host IP Address* | -| Monitored from | *Monitoring Poller to use* | -| Host Multiple Templates | HW-Storage-Fujitsu-Eternus-DX-SSH-custom | +### Modes disponibles -Click on the *Save* button. +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_fujitsu_eternus_dx.pl \ + --plugin=storage::fujitsu::eternus::dx::ssh::plugin \ + --list-mode +``` + +Le plugin apporte les modes suivants : + +| Mode | Modèle de service associé | +|:-----------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------| +| cpu [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/cpu.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Cpu-custom | +| physicaldisk [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/physicaldisk.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Physical-Disk-custom | +| port-stats [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/portstats.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Port-Stats-custom | +| psu [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/psu.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Psu-custom | +| raid-groups [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/raidgroups.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Raid-Groups-custom | +| volume-stats [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/volumestats.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Stats-custom | + +### 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). Example: 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\],\[max\]\] Common examples: =over 4 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()' =back | +| --change-perfdata | Change or extend perfdata. Syntax: --extend-perfdata=searchlabel,newlabel,target\[,\[newuom\],\[min\],\[max\]\] Common examples: =over 4 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()' =back | +| --extend-perfdata | Change or extend perfdata. Syntax: --extend-perfdata=searchlabel,newlabel,target\[,\[newuom\],\[min\],\[max\]\] Common examples: =over 4 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()' =back | +| --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\[,\[newuom\],\[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: =over 4 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(traffic\_(in\|out)\_$1)' =back | +| --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-short-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-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. Example: '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'. =head1 DESCRIPTION B\. =cut | +| --ssh-backend | Define the backend you want to use. It can be: sshcli (default), plink and libssh. | +| --ssh-username | Define the user name to log in to the host. | +| --ssh-password | Define the password associated with the user name. Cannot be used with the sshcli backend. Warning: using a password is not recommended. Use --ssh-priv-key instead. | +| --ssh-port | Define the TCP port on which SSH is listening. | +| --ssh-priv-key | Define the private key file to use for user authentication. | +| --hostname | Hostname to query in ssh. | +| --timeout | Timeout in seconds for the command (default: 45). Default value can be override by the mode. | +| --command | Command to get information. Used it you have output in a file. | +| --command-path | Command path. | +| --command-options | Command options. | +| --sudo | sudo command. | + +#### Options des modes + +Les options disponibles pour chaque modèle de services sont listées ci-dessous : + + + + +| Option | Description | +|:------------------|:------------------------------------------------------------------------------------------------------------------------------| +| --filter-counters | Only display some counters (regexp can be used). Example to check SSL connections only : --filter-counters='^xxxx\|yyyy$' | +| --filter-name | Filter by name (regexp can be used). | +| --warning-usage | Warning threshold (in percent). | +| --critical-usage | Critical threshold (in percent). | + + + + +| Option | Description | +|:---------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --filter | Exclude some parts (comma separated list) You can also exclude items from specific instances: --filter=disk,CE-Disk#0 | +| --threshold-overload | Use this option to override the status returned by the plugin when the status label matches a regular expression (syntax: section,status,regexp). Example: --threshold-overload='disk,CRITICAL,^(?!(Available\|Spare)$)' | +| --no-component | Define the expected status if no components are found (default: critical). | + + + + +| Option | Description | +|:------------------|:------------------------------------------------------------------------------------------------------------------------------| +| --filter-counters | Only display some counters (regexp can be used). Example to check SSL connections only : --filter-counters='^xxxx\|yyyy$' | +| --filter-name | Filter by name (regexp can be used). | +| --warning-* | Warning threshold. Can be: 'read-iops', 'write-iops', 'read-traffic', 'write-traffic'. | +| --critical-* | Critical threshold. Can be: 'read-iops', 'write-iops', 'read-traffic', 'write-traffic'. | + + + + +| Option | Description | +|:---------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --filter | Exclude some parts (comma separated list) You can also exclude items from specific instances: --filter=psu,ce#0\_0 | +| --threshold-overload | Use this option to override the status returned by the plugin when the status label matches a regular expression (syntax: section,status,regexp). Example: --threshold-overload='psu,CRITICAL,^(?!(Normal)$)' | +| --no-component | Define the expected status if no components are found (default: critical). | + + + + +| Option | Description | +|:---------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --filter-counters | Only display some counters (regexp can be used). Example to check SSL connections only : --filter-counters='^xxxx\|yyyy$' | +| --threshold-overload | Use this option to override the status returned by the plugin when the status label matches a regular expression (syntax: section,status,regexp). Example: --threshold-overload='rg,CRITICAL,^(?!(Available\|Spare)$)' | +| --filter-name | Filter by name (regexp can be used). | +| --filter-level | Filter by raid level (regexp can be used). | +| --warning-usage | Warning threshold (in percent). | +| --critical-usage | Critical threshold (in percent). | + + + + +| Option | Description | +|:-------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --filter-counters | Only display some counters (regexp can be used). Example to check SSL connections only : --filter-counters='^xxxx\|yyyy$' | +| --filter-name | Filter by name (regexp can be used). | +| --warning-* --critical-* | Thresholds. Can be: 'read-iops', 'write-iops', 'read-traffic', 'write-traffic', 'read-response-time', 'write-response-time', 'read-processing-time', 'write-processing-time', 'read-cache-hit-rate', 'write-cache-hit-rate'. | + + + + +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_fujitsu_eternus_dx.pl \ + --plugin=storage::fujitsu::eternus::dx::ssh::plugin \ + --mode=volume-stats \ + --help +``` diff --git a/pp/integrations/plugin-packs/procedures/hardware-storage-fujitsu-eternus-dx-ssh.md b/pp/integrations/plugin-packs/procedures/hardware-storage-fujitsu-eternus-dx-ssh.md index 07e2654af1ae..ecef63ea3bf3 100644 --- a/pp/integrations/plugin-packs/procedures/hardware-storage-fujitsu-eternus-dx-ssh.md +++ b/pp/integrations/plugin-packs/procedures/hardware-storage-fujitsu-eternus-dx-ssh.md @@ -2,51 +2,524 @@ id: hardware-storage-fujitsu-eternus-dx-ssh title: Fujitsu Eternus DX --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Connector dependencies + +The following monitoring connectors will be installed when you install the **Fujitsu Eternus DX** connector through the +**Configuration > Monitoring Connector Manager** menu: +* [Base Pack](./base-generic.md) + +## Pack assets + +### Templates + +The Monitoring Connector **Fujitsu Eternus DX** brings a host template: + +* **HW-Storage-Fujitsu-Eternus-DX-SSH-custom** + +The connector brings the following service templates (sorted by the host template they are attached to): + + + + +| Service Alias | Service Template | Service Description | +|:--------------|:-------------------------------------------------------|:------------------------------------------------| +| Cpu | HW-Storage-Fujitsu-Eternus-DX-SSH-Cpu-custom | Check the rate of utilization of CPU of the bay | +| Physical-Disk | HW-Storage-Fujitsu-Eternus-DX-SSH-Physical-Disk-custom | Check the state of the disks | +| Port-Stats | HW-Storage-Fujitsu-Eternus-DX-SSH-Port-Stats-custom | Check the state of the ports | +| Psu | HW-Storage-Fujitsu-Eternus-DX-SSH-Psu-custom | Check the state of the power supply | +| Raid-Groups | HW-Storage-Fujitsu-Eternus-DX-SSH-Raid-Groups-custom | Check the disks capacity. | +| Volume-Stats | HW-Storage-Fujitsu-Eternus-DX-SSH-Stats-custom | Check global health of the bay. | + +> The services listed above are created automatically when the **HW-Storage-Fujitsu-Eternus-DX-SSH-custom** host template is used. + + + + +### Collected metrics & status + +Here is the list of services for this connector, detailing all metrics and statuses linked to each service. + + + + +| Name | Unit | +|:---------------------------------|:------| +| *cpu*#cpu.utilization.percentage | % | + +> To obtain this new metric format, include **--use-new-perfdata** in the **EXTRAOPTIONS** service macro. + + + + +| Name | Unit | +|:----------------------------------------------|:------| +| disk-status | N/A | + + + + +| Name | Unit | +|:----------------------------------------------|:------| +| *port*#port.io.read.usage.iops | iops | +| *port*#port.io.write.usage.iops | iops | +| *port*#port.traffic.read.usage.bitspersecond | b/s | +| *port*#port.traffic.write.usage.bitspersecond | b/s | + +> To obtain this new metric format, include **--use-new-perfdata** in the **EXTRAOPTIONS** service macro. + + + + +| Name | Unit | +|:----------------------------------------------|:------| +| hardware.powersupply.power.watt | W | + + + + +| Name | Unit | +|:---------------------------------|:------| +| status | N/A | +| *rg*#raidgroup.space.usage.bytes | B | + +> To obtain this new metric format, include **--use-new-perfdata** in the **EXTRAOPTIONS** service macro. + + + + +| Name | Unit | +|:-------------------------------------------------------|:------| +| *volume1*#volume.io.read.usage.iops | iops | +| *volume2*#volume.io.read.usage.iops | iops | +| *volume1*#volume.io.write.usage.iops | iops | +| *volume2*#volume.io.write.usage.iops | iops | +| *volume1*#volume.traffic.read.usage.bitspersecond | b/s | +| *volume2*#volume.traffic.read.usage.bitspersecond | b/s | +| *volume1*#volume.traffic.write.usage.bitspersecond | b/s | +| *volume2*#volume.traffic.write.usage.bitspersecond | b/s | +| *volume1*#volume.io.read.time.response.milliseconds | ms | +| *volume2*#volume.io.read.time.response.milliseconds | ms | +| *volume1*#volume.io.write.time.response.milliseconds | ms | +| *volume2*#volume.io.write.time.response.milliseconds | ms | +| *volume1*#volume.io.read.time.processing.milliseconds | ms | +| *volume2*#volume.io.read.time.processing.milliseconds | ms | +| *volume1*#volume.io.write.time.processing.milliseconds | ms | +| *volume2*#volume.io.write.time.processing.milliseconds | ms | +| *volume1*#volume.io.read.cache.hits.percentage | % | +| *volume2*#volume.io.read.cache.hits.percentage | % | +| *volume1*#volume.io.write.cache.hits.percentage | % | +| *volume2*#volume.io.write.cache.hits.percentage | % | + +> To obtain this new metric format, include **--use-new-perfdata** in the **EXTRAOPTIONS** service macro. + + + ## Prerequisites -This chapter describes the prerequisites installation needed by plugins to run. +### SSH configuration + +A user is required to query the resource by SSH. There is no need for root or sudo +privileges. There are two possible ways to log in through SSH, either by +exchanging the SSH key from **centreon-engine** user to the target resource, or by +setting your unique user and password directly in the host macros. + +## 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 Connector 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: + + + + +```bash +dnf install centreon-pack-hardware-storage-fujitsu-eternus-dx-ssh +``` + + + + +```bash +dnf install centreon-pack-hardware-storage-fujitsu-eternus-dx-ssh +``` + + + + +```bash +apt install centreon-pack-hardware-storage-fujitsu-eternus-dx-ssh +``` + + + + +```bash +yum install centreon-pack-hardware-storage-fujitsu-eternus-dx-ssh +``` + + + + +2. Whatever the license type (*online* or *offline*), install the **Fujitsu Eternus DX** connector through +the **Configuration > Monitoring Connector Manager** menu. + +### Plugin -### Centreon Plugin +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. -Install this plugin on each needed poller: +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 -``` shell +> More information in the [Installing the plugin](/docs/monitoring/pluginpacks/#installing-the-plugin) section. + +Use the commands below according to your operating system's package manager: + + + + +```bash +dnf install centreon-plugin-Hardware-Storage-Fujitsu-Eternus-Dx-Ssh +``` + + + + +```bash +dnf install centreon-plugin-Hardware-Storage-Fujitsu-Eternus-Dx-Ssh +``` + + + + +```bash +apt install centreon-plugin-hardware-storage-fujitsu-eternus-dx-ssh +``` + + + + +```bash yum install centreon-plugin-Hardware-Storage-Fujitsu-Eternus-Dx-Ssh ``` -SSH key exchange must be done between poller and monitored server. Create a user -centreon on your Fujitsu Eternus DX equipment. + + + +## 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 in the **Name**, **Alias** & **IP Address/DNS** fields according to your resource's settings. +3. Apply the **HW-Storage-Fujitsu-Eternus-DX-SSH-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 | +|:----------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| SSHUSERNAME | Define the user name to log in to the host | centreon | | +| SSHPASSWORD | Define the password associated with the user name. Cannot be used with the sshcli backend. Warning: using a password is not recommended. Use --ssh-priv-key instead | | | +| SSHPORT | Define the TCP port on which SSH is listening | | | +| SSHBACKEND | Define the backend you want to use. It can be: sshcli (default), plink and libssh | libssh | | +| SSHEXTRAOPTIONS | Any extra option you may want to add to every command (a --verbose flag for example). 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 | +|:-------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| CRITICAL | Critical threshold (in percent) | 90 | | +| WARNING | Warning threshold (in percent) | 80 | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). All options are listed [here](#available-options). | | | -Generate key for centreon-engine user with command: + + - # su - centreon-engine - # ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa - # ssh-keygen -e -f .ssh/identity.pub > identity.pub.ietf - # telnet \ - CLI> import ssh-public-key -server \ -port maintenance -user \ -filename identity.pub.ietf -account-name centreon - Password: - importing ./identity.pub.ietf from ... - CLI> exit +| Macro | Description | Default value | Mandatory | +|:-------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). All options are listed [here](#available-options). | | | -You can now try to connect you without password + + - # su - centreon-engine - # ssh -l centreon \ +| Macro | Description | Default value | Mandatory | +|:---------------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| WARNINGREADIOPS | Threshold | | | +| CRITICALREADIOPS | Threshold | | | +| WARNINGREADTRAFFIC | Threshold | | | +| CRITICALREADTRAFFIC | Threshold | | | +| WARNINGWRITEIOPS | Threshold | | | +| CRITICALWRITEIOPS | Threshold | | | +| CRITICALWRITETRAFFIC | Threshold | | | +| WARNINGWRTIETRAFFIC | Threshold | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). All options are listed [here](#available-options). | | | -## Centreon Configuration + + + +| Macro | Description | Default value | Mandatory | +|:-------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). All options are listed [here](#available-options). | | | + + + + +| Macro | Description | Default value | Mandatory | +|:-------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| WARNING | Warning threshold (in percent) | 80 | | +| CRITICAL | Critical threshold (in percent) | 90 | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). All options are listed [here](#available-options). | | | + + + + +| Macro | Description | Default value | Mandatory | +|:--------------------------|:---------------------------------------------------------------------------------------------------|:------------------|:-----------:| +| WARNINGREADCACHEHITRATE | Threshold | | | +| CRITICALREADCACHEHITRATE | Threshold | | | +| WARNINGREADIOPS | Threshold | | | +| CRITICALREADIOPS | Threshold | | | +| WARNINGREADPROCTIME | Threshold | | | +| CRITICALREADPROCTIME | Threshold | | | +| WARNINGREADREPTIME | Threshold | | | +| CRITICALREADREPTIME | Threshold | | | +| WARNINGREADTRAFFIC | Threshold | | | +| CRITICALREADTRAFFIC | Threshold | | | +| WARNINGWRITECACHEHITRATE | Threshold | | | +| CRITICALWRITECACHEHITRATE | Threshold | | | +| WARNINGWRITEIOPS | Threshold | | | +| CRITICALWRITEIOPS | Threshold | | | +| WARNINGWRITEPROCTIME | Threshold | | | +| CRITICALWRITEPROCTIME | Threshold | | | +| WARNINGWRITEREPTIME | Threshold | | | +| CRITICALWRITEREPTIME | Threshold | | | +| CRITICALWRITETRAFFIC | Threshold | | | +| WARNINGWRTIETRAFFIC | Threshold | | | +| EXTRAOPTIONS | Any extra option you may want to add to the command (a --verbose flag for example). 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_fujitsu_eternus_dx.pl \ + --plugin=storage::fujitsu::eternus::dx::ssh::plugin \ + --mode=volume-stats \ + --hostname='10.0.0.1' \ + --ssh-backend='libssh' \ + --ssh-username='centreon' \ + --ssh-password='' \ + --ssh-port='' \ + --warning-read-iops='' \ + --warning-write-iops='' \ + --warning-read-traffic='' \ + --warning-write-traffic='' \ + --warning-read-response-time='' \ + --warning-write-response-time='' \ + --warning-read-processing-time='' \ + --warning-write-processing-time='' \ + --warning-read-cache-hit-rate='' \ + --warning-write-cache-hit-rate='' \ + --critical-read-iops='' \ + --critical-write-iops='' \ + --critical-read-traffic='' \ + --critical-write-traffic='' \ + --critical-read-response-time='' \ + --critical-write-response-time='' \ + --critical-read-processing-time='' \ + --critical-write-processing-time='' \ + --critical-read-cache-hit-rate='' \ + --critical-write-cache-hit-rate='' +``` + +The expected command output is shown below: + +```bash +OK: All Volumes are ok | 'volume1#volume.io.read.usage.iops'=78441iops;;;0; 'volume2#volume.io.read.usage.iops'=57008iops;;;0; 'volume1#volume.io.write.usage.iops'=96963iops;;;0; 'volume2#volume.io.write.usage.iops'=58589iops;;;0; 'volume1#volume.traffic.read.usage.bitspersecond'=96814b/s;;;0; 'volume2#volume.traffic.read.usage.bitspersecond'=20356b/s;;;0; 'volume1#volume.traffic.write.usage.bitspersecond'=69148b/s;;;0; 'volume2#volume.traffic.write.usage.bitspersecond'=41615b/s;;;0; 'volume1#volume.io.read.time.response.milliseconds'=46774ms;;;0; 'volume2#volume.io.read.time.response.milliseconds'=80980ms;;;0; 'volume1#volume.io.write.time.response.milliseconds'=61404ms;;;0; 'volume2#volume.io.write.time.response.milliseconds'=50417ms;;;0; 'volume1#volume.io.read.time.processing.milliseconds'=52991ms;;;0; 'volume2#volume.io.read.time.processing.milliseconds'=91359ms;;;0; 'volume1#volume.io.write.time.processing.milliseconds'=90175ms;;;0; 'volume2#volume.io.write.time.processing.milliseconds'=77084ms;;;0; 'volume1#volume.io.read.cache.hits.percentage'=88455%;;;0;100 'volume2#volume.io.read.cache.hits.percentage'=91718%;;;0;100 'volume1#volume.io.write.cache.hits.percentage'=28616%;;;0;100 'volume2#volume.io.write.cache.hits.percentage'=44490%;;;0;100 +``` -### Create a host using the appropriate template +### Troubleshooting -Go to *Configuration \> Hosts* and click *Add*. Then, fill the form as shown by -the following table: +Please find the [troubleshooting documentation](../getting-started/how-to-guides/troubleshooting-plugins.md) +for Centreon Plugins typical issues. -| Field | Value | -| :----------------------------------- | :--------------------------------------- | -| Host name | *Name of the host* | -| Alias | *Host description* | -| IP | *Host IP Address* | -| Monitored from | *Monitoring Poller to use* | -| Host Multiple Templates | HW-Storage-Fujitsu-Eternus-DX-SSH-custom | +### Available modes -Click on the *Save* button. +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. + +All available modes can be displayed by adding the `--list-mode` parameter to +the command: + +```bash +/usr/lib/centreon/plugins/centreon_fujitsu_eternus_dx.pl \ + --plugin=storage::fujitsu::eternus::dx::ssh::plugin \ + --list-mode +``` + +The plugin brings the following modes: + +| Mode | Linked service template | +|:-----------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------| +| cpu [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/cpu.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Cpu-custom | +| physicaldisk [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/physicaldisk.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Physical-Disk-custom | +| port-stats [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/portstats.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Port-Stats-custom | +| psu [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/psu.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Psu-custom | +| raid-groups [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/raidgroups.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Raid-Groups-custom | +| volume-stats [[code](https://github.com/centreon/centreon-plugins/blob/develop/src/storage/fujitsu/eternus/dx/ssh/mode/volumestats.pm)] | HW-Storage-Fujitsu-Eternus-DX-SSH-Stats-custom | + +### 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 | 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). Example: 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\],\[max\]\] Common examples: =over 4 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()' =back | +| --change-perfdata | Change or extend perfdata. Syntax: --extend-perfdata=searchlabel,newlabel,target\[,\[newuom\],\[min\],\[max\]\] Common examples: =over 4 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()' =back | +| --extend-perfdata | Change or extend perfdata. Syntax: --extend-perfdata=searchlabel,newlabel,target\[,\[newuom\],\[min\],\[max\]\] Common examples: =over 4 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()' =back | +| --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\[,\[newuom\],\[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: =over 4 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(traffic\_(in\|out)\_$1)' =back | +| --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-short-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-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. Example: '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'. =head1 DESCRIPTION B\. =cut | +| --ssh-backend | Define the backend you want to use. It can be: sshcli (default), plink and libssh. | +| --ssh-username | Define the user name to log in to the host. | +| --ssh-password | Define the password associated with the user name. Cannot be used with the sshcli backend. Warning: using a password is not recommended. Use --ssh-priv-key instead. | +| --ssh-port | Define the TCP port on which SSH is listening. | +| --ssh-priv-key | Define the private key file to use for user authentication. | +| --hostname | Hostname to query in ssh. | +| --timeout | Timeout in seconds for the command (default: 45). Default value can be override by the mode. | +| --command | Command to get information. Used it you have output in a file. | +| --command-path | Command path. | +| --command-options | Command options. | +| --sudo | sudo command. | + +#### Modes options + +All available options for each service template are listed below: + + + + +| Option | Description | +|:------------------|:------------------------------------------------------------------------------------------------------------------------------| +| --filter-counters | Only display some counters (regexp can be used). Example to check SSL connections only : --filter-counters='^xxxx\|yyyy$' | +| --filter-name | Filter by name (regexp can be used). | +| --warning-usage | Warning threshold (in percent). | +| --critical-usage | Critical threshold (in percent). | + + + + +| Option | Description | +|:---------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --filter | Exclude some parts (comma separated list) You can also exclude items from specific instances: --filter=disk,CE-Disk#0 | +| --threshold-overload | Use this option to override the status returned by the plugin when the status label matches a regular expression (syntax: section,status,regexp). Example: --threshold-overload='disk,CRITICAL,^(?!(Available\|Spare)$)' | +| --no-component | Define the expected status if no components are found (default: critical). | + + + + +| Option | Description | +|:------------------|:------------------------------------------------------------------------------------------------------------------------------| +| --filter-counters | Only display some counters (regexp can be used). Example to check SSL connections only : --filter-counters='^xxxx\|yyyy$' | +| --filter-name | Filter by name (regexp can be used). | +| --warning-* | Warning threshold. Can be: 'read-iops', 'write-iops', 'read-traffic', 'write-traffic'. | +| --critical-* | Critical threshold. Can be: 'read-iops', 'write-iops', 'read-traffic', 'write-traffic'. | + + + + +| Option | Description | +|:---------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --filter | Exclude some parts (comma separated list) You can also exclude items from specific instances: --filter=psu,ce#0\_0 | +| --threshold-overload | Use this option to override the status returned by the plugin when the status label matches a regular expression (syntax: section,status,regexp). Example: --threshold-overload='psu,CRITICAL,^(?!(Normal)$)' | +| --no-component | Define the expected status if no components are found (default: critical). | + + + + +| Option | Description | +|:---------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --filter-counters | Only display some counters (regexp can be used). Example to check SSL connections only : --filter-counters='^xxxx\|yyyy$' | +| --threshold-overload | Use this option to override the status returned by the plugin when the status label matches a regular expression (syntax: section,status,regexp). Example: --threshold-overload='rg,CRITICAL,^(?!(Available\|Spare)$)' | +| --filter-name | Filter by name (regexp can be used). | +| --filter-level | Filter by raid level (regexp can be used). | +| --warning-usage | Warning threshold (in percent). | +| --critical-usage | Critical threshold (in percent). | + + + + +| Option | Description | +|:-------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| --filter-counters | Only display some counters (regexp can be used). Example to check SSL connections only : --filter-counters='^xxxx\|yyyy$' | +| --filter-name | Filter by name (regexp can be used). | +| --warning-* --critical-* | Thresholds. Can be: 'read-iops', 'write-iops', 'read-traffic', 'write-traffic', 'read-response-time', 'write-response-time', 'read-processing-time', 'write-processing-time', 'read-cache-hit-rate', 'write-cache-hit-rate'. | + + + + +All available options for a given mode can be displayed by adding the +`--help` parameter to the command: + +```bash +/usr/lib/centreon/plugins/centreon_fujitsu_eternus_dx.pl \ + --plugin=storage::fujitsu::eternus::dx::ssh::plugin \ + --mode=volume-stats \ + --help +```