Pure Storage FlashArray monitoring in Zabbix

Pure Storage is a provider of enterprise data flash storage solutions designed to substitute for electromechanical disk arrays. 

Pure Storage develops flash-based storage for data centers[9] using consumer-grade solid state drives.[12][33] Flash storage is faster than traditional disk storage, but more expensive.[5] Pure Storage develops proprietary de-duplication and compression software to improve the amount of data that can be stored on each drive.[5] It also develops its own flash storage hardware.[34] Pure Storage has three primary product lines: FlashBlade for unstructured data, FlashArray//C which uses QLC flash, and the higher-end NVMe FlashArray//X.[35] Its products use an operating system called Purity.[4] Most of Pure’s revenues come from IT resellers that market its products to data center operators.

Zabbix is an open-source monitoring software for networks and applications. It offers real-time monitoring of thousands of metrics collected from servers.

How to integrate Pure array monitoring in Zabbix

Here is the good solution from jeremyverda to enable it using the python script.

Instead of writing a script for each part of the monitoring (volumes, array, disks,…), everything in one file called “PureStorageMonitoring.py”. The dependencies are still the same : purestorage and urllib3 libraries from Python 3.x.

Install dependencies

pip3 install purestorage urllib3 py-zabbix

Get API Token

To be able to use the REST API of Pure Storage, you have to find your API Token on the web interface.

Go on “SYSTEM”, then “Users” and under the Users menu, you will find “API Tokens”. Click on the three dots on the right of the screens and use “Show API Token” to get your API Token.

Enable Pure array monitoring in Zabbix

Now SSH to your zabbix server.

# cd /usr/lib/zabbix/externalscripts

Goto the repo and download latest scripts.

https://github.com/jeremyverda/zabbix-public/tree/master/Pure%20Storage

# sudo wget https://raw.githubusercontent.com/jeremyverda/zabbix-public/master/Pure%20Storage/PureStorageMonitoring.py
# chmod +x PureStorageMonitoring.py
# chown zabbix:zabbix PureStorageMonitoring.py

Download the zabbix template 

https://github.com/jeremyverda/zabbix-public/tree/master/Pure%20Storage

Add Pure in zabbix

Click Configuration -> Hosts -> Create Host.

  • Hostname : Fill your Pure hostname
  • Agent interface IP : Fill in with the IP address of your Pure Storage
  • Macros
    • {$PURE_TOKEN_API} : Fill in with the API Token that you have copy previously
    • {$PURE_ZBX} : WIll be the IP of your Zabbix Proxy or server that will be used by the Zabbix Sender. By default it will be 127.0.0.1
  • Monitored by proxy : Set this field if you are going to use a Zabbix proxy
  • Template : select the previously imported template : “Template Pure Storage”

Click Add.

Once you have completed all the previous steps, you have to wait until the data are gathered by the script.

Example Triggers

Use below trigger for the array used space.

(100*{pure06.eng.cloudkb.com:pure.volume.used.space[{#VOLUMENAME}].last()} ) / ({pure06.eng.cloudkb.com:pure.volume.size[{#VOLUMENAME}].last()}) >90