Supervision Pure Storage avec Centreon (Rest API)

  • Auteur/autrice de la publication :
  • Dernière modification de la publication :22 novembre 2023
  • Post category:Supervision
  • Temps de lecture :10 min de lecture
  • Commentaires de la publication :0 commentaire

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_C

  • 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

Mon pack d’icônes pour Centreon : icones-pack/

Supervision Pure FlashArray//X & FlashArray//C

Pure FlashArray_X

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.

Laisser un commentaire