Hello, nous allons voir dans cet article la supervision des baies de stockage Pure via Rest API avec Centreon & Centreon plugin pack.
Les baies Pure :
- Pure FlashArray//X
- Pure FlashArray//C
Compte REST API :
- Configurer un compte en lecture seul sur chaque Pure.
Pour mettre en place la supervision sur Centreon web, il suffit de parcourir les autres articles ci-dessous, il y a plein d’exemple un peu partout.
Voir également mes projets sur la supervision : /supervision
- Supervision Certificat HTTPS/Windows : supervision-des-certificats-https-windows/
- Supervision Web HTTP(S) : supervision-https-response-expected-content-centreon/
- Supervision ORACLE BDD : oracle-database-monitoring-centreon-plugins/
- Supervision EMC VNX : vnx5300-vnx5200-monitoring-centreon/
- Supervision MSSQL : microsoft-sql-server-monitoring/
- Supervision Switch CISCO : switch-cisco-centreon-partie-1-2/
- Supervision VMWARE ESXi : vmware-esxi-6-7-monitoring/
- Supervision EXCHANGE Server : exchange-server-2016-monitoring-actif/
- Supervision Quotas Windows : supervision-des-quotas-windows-nrpe-nsclient/
- Supervision Skype for Business : supervision-microsoft-skype-for-business/
- Supervision HPE Proliant Gen10 : supervision-hpe-proliant-gen10-snmp-restapi/
- Supervision NETAPP SANTricity : supervision-netapp-santricity-storage-restapi/
- Supervision Microsoft Office 365 : supervision-office-365-avec-centreon/
Mon pack d’icônes pour Centreon : icones-pack/
Supervision Pure FlashArray//X & FlashArray//C
Connectez-vous à votre Pure et allez dans le menu :
- Settings >> Users (ou Access)
- Rôle : Read-Only
Le guide REST API se trouve plus bas : Help >> REST API Guide
Nous allons utiliser le plugin suivant :
[centreon-engine@pixelabs plugins]$ perl centreon_purestorage_restapi.pl --plugin=storage::purestorage::restapi::plugin --list-mode Plugin Description: Check Pure Storage through HTTP/REST API. Global Options: --mode Choose a mode. --dyn-mode Specify a mode with the path (separated by '::'). --list-mode List available modes. --mode-version Check minimal version of mode. If not, unknown error. --version Display plugin version. --custommode Choose a custom mode. --list-custommode List available custom modes. --multiple Multiple custom mode objects (required by some specific modes) --pass-manager Use a password manager. Modes Meta: multi Modes Available: alarms arrays hardware list-pgroups list-volumes pgroup-replication volume-usage [centreon-engine@pixelabs plugins]$
Check-Pure-Alarms
Supervision des alertes présentes sur la Pure (warning, ciritical…etc).
perl centreon_purestorage_restapi.pl --plugin=storage::purestorage::restapi::plugin --mode=alarms --hostname=192.168.1.0 --api-path='/api/1.11' --username='centreon' --password='PiXelabs' --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE" --filter-category='.*' --warning-status='%{severity} =~ /warning/i' --critical-status='%{severity} =~ /critical/i' --verbose WARNING: 1 problem(s) detected | 'alerts'=1;;;0; warning: alarm [component: PURE-X20] [severity: warning] [category: array] [event: degraded] 22h 53m 26s
Si vous souhaitez filtrer et avoir que des alertes critiques :
perl centreon_purestorage_restapi.pl --plugin=storage::purestorage::restapi::plugin --mode=alarms --hostname=192.168.1.0 --api-path='/api/1.11' --username='centreon' --password='PiXelabs' --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE" --filter-category='critical' --warning-status='%{severity} =~ /warning/i' --critical-status='%{severity} =~ /critical/i' --verbose OK: 0 problem(s) detected | 'alerts'=0;;;0;
Check-Pure-Arrays
Supervision de l’espace de votre Pure
perl centreon_purestorage_restapi.pl --plugin=storage::purestorage::restapi::plugin --mode=arrays --hostname=192.168.1.0 --api-path='/api/1.11' --username='centreon' --password='PiXelabs' --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE" --critical-space-usage-prct=:90 OK: Array 'PIXEL-X20' space usage total: 20.94 TB used: 13.95 TB (66.64%) free: 6.98 TB (33.36%), data reduction: 4.564 | [...]
Changer l’unité en « TB » au lieu de « % » : --critical-space-usage=19TB
Les exemples perfdata pour les graphiques sur Centreon Web :
--change-perfdata --extend-perfdata Change or extend perfdata. Syntax: --extend-perfdata=searchlabel,newlabel,target[,[newuom],[min],[m ax]] Common examples: Change storage free perfdata in used: --change-perfdata=free,used,invert() Change storage free perfdata in used: --change-perfdata=used,free,invert() Scale traffic values automaticaly: --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()
Check-Pure-Hardware
Supervision des composants de votre Pure. Alimentation, Contrôleurs, ventilateurs, température, Interface ETH/FC…etc.
perl centreon_purestorage_restapi.pl --plugin=storage::purestorage::restapi::plugin --mode=hardware --hostname=192.168.1.0 --api-path='/api/1.11' --username='centreon' --password='PiXelabs' --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE" --component='.*' --verbose
OK: All 119 components are ok [119/119 entity]. | [...]
Checking entity
entity 'CH0' status is 'ok' [instance = CH0]
entity 'CH0.BAY0' status is 'ok' [instance = CH0.BAY0]
entity 'CH0.BAY1' status is 'ok' [instance = CH0.BAY1]
[...]
entity 'CH0.NVB0' status is 'ok' [instance = CH0.NVB0]
entity 'CH0.NVB1' status is 'ok' [instance = CH0.NVB1]
[...]
entity 'CH0.PWR0' status is 'ok' [instance = CH0.PWR0]
entity 'CH0.PWR1' status is 'ok' [instance = CH0.PWR1]
[...]
entity 'CT1.ETH0' status is 'ok' [instance = CT1.ETH0]
entity 'CT1.ETH1' status is 'ok' [instance = CT1.ETH1]
[...]
entity 'CT1.FAN0' status is 'ok' [instance = CT1.FAN0]
entity 'CT1.FAN1' status is 'ok' [instance = CT1.FAN1]
[...]
entity 'CT1.FC8' status is 'ok' [instance = CT1.FC8]
entity 'CT1.FC9' status is 'ok' [instance = CT1.FC9]
[...]
entity 'CT1.SAS0' status is 'ok' [instance = CT1.SAS0]
entity 'CT1.SAS1' status is 'ok' [instance = CT1.SAS1]
[...]
entity 'CT1.TMP0' status is 'ok' [instance = CT1.TMP0]
entity 'CT1.TMP1' status is 'ok' [instance = CT1.TMP1]
[...]
Il est possible d’exclure une entités spécifique avec le paramètre suivant : --filter=entity,CT1.FC0
Il est possible de mettre les seuils warning/critique.
Pour la température par exemple : --warning='temperature,.*,40' --critical='temperature,.*,50'
Check-Pure-PGroup-Replication
Si vous faites de la réplication de vos PODs, vous pouvez surveiller la progression :
perl centreon_purestorage_restapi.pl --plugin=storage::purestorage::restapi::plugin --mode=pgroup-replication --hostname=192.168.1.0 --api-path='/api/1.11' --username='centreon' --password='PiXelabs' --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE" OK: All protection groups replication are ok | [...] Protection group 'Pod-Prod1::ProtectGroup' replication Progress : 0 %, Creation Time : 6h 48m 48s, Duration : -0, physical-bytes-written : skipped, data-transferred : skipped Protection group 'Pod-Prod2::ProtectGroup' replication Progress : 0 %, Creation Time : 22m 18s, Duration : -0, physical-bytes-written : skipped, data-transferred : skipped Protection group 'Pod-Prod3::ProtectGroup' replication Progress : 0 %, Creation Time : 2h 24m 48s, Duration : -0, physical-bytes-written : skipped, data-transferred : skipped Protection group 'Pod-Prod4::ProtectGroup' replication Progress : 0 %, Creation Time : 23m 48s, Duration : -0, physical-bytes-written : skipped, data-transferred : skipped Protection group 'Pod-Prod5::ProtectGroup' replication Progress : 0 %, Creation Time : 30m 48s, Duration : -0, physical-bytes-written : skipped, data-transferred : skipped
Les paramètres possibles avec exemple :
Mode: Check protection group replication state and usage. --filter-counters Only display some counters (Can be a regexp). Example: --filter-counters='^progress$' --filter-name Filter protection group name (Can be a regexp). --warning-* Threshold warning. Can be: 'progress' (%), 'creation' (s), 'duration' (s), 'physical-bytes-written' (B), 'data-transferred' (B). --critical-* Threshold critical. Can be: 'progress' (%), 'creation' (s), 'duration' (s), 'physical-bytes-written' (B), 'data-transferred' (B). --timezone Timezone of API results (Default: 'GMT').
Check-Volume-Usage
Surveiller l’espace de vos volumes :
perl centreon_purestorage_restapi.pl --plugin=storage::purestorage::restapi::plugin --mode=volume-usage --hostname=192.168.1.0 --api-path='/api/1.11' --username='centreon' --password='PiXelabs' --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE" --verbose OK: All volumes are ok | [...] Volume 'Pod-Prod1::ESX-1-A-alt' Usage Total: 125.00 GB Used: 298.47 MB (0.23%) Free: 124.71 GB (99.77%), Data Reduction : 14.377, Total Reduction : 262.560, Snapshots : 604.61 MB Volume 'Pod-Prod2::ESX-1-C-alt' Usage Total: 125.00 GB Used: 294.89 MB (0.23%) Free: 124.71 GB (99.77%), Data Reduction : 14.460, Total Reduction : 264.850, Snapshots : 500.35 MB Volume 'Pod-Prod3::ESX-2-A-alt' Usage Total: 125.00 GB Used: 309.45 MB (0.24%) Free: 124.70 GB (99.76%), Data Reduction : 14.108, Total Reduction : 257.042, Snapshots : 535.13 MB Volume 'Pod-Prod4::ESX-2-C-alt' Usage Total: 125.00 GB Used: 306.79 MB (0.24%) Free: 124.70 GB (99.76%), Data Reduction : 14.134, Total Reduction : 258.948, Snapshots : 495.88 MB [...]
Les paramètres possible :
Mode: Check volume usage. --filter-counters Only display some counters (regexp can be used). Example: --filter-counters='^iops$' --filter-name Filter volume name (can be a regexp). --warning-* Threshold warning. Can be: 'usage', 'data-reduction', 'total-reduction'. --critical-* Threshold critical. Can be: 'usage', 'data-reduction', 'total-reduction'. --units Units of thresholds (Default: '%') ('%', 'B'). --free Thresholds are on free space left.
Voilà, c’est terminé.
Si vous avez besoin d’aide pour mettre en place les commandes sur Centreon web, n’hésitez pas à me le dire en commentaire ci-dessous.
Bonne journée et bonnes fêtes de fin d’année à tous.