Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

Directory Tree

check_zpools.sh

Rating
2 votes
Favoured:
0
Current Version
20230215
Last Release Date
2023-02-15
Compatible With
  • Nagios 1.x
  • Nagios 2.x
  • Nagios 3.x
  • Nagios 4.x
Owner
License
GPL
Hits
46108
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
check_zpools.sh
Monitoring plugin to monitor status and usage of zfs pools. Runs on multiple OS (tested on Solaris, FreeBSD, Linux, smartOS).
***Description***
Up to date description and full documentation: https://www.claudiokuenzler.com/monitoring-plugins/check_zpools.php

This plugin is a fork of previously existing plugins from Aldo Fabi and Vitaliy Gladkevitch.

Based on a comparison of existing Nagios plugins to check zfs pools (see http://www.claudiokuenzler.com/blog/345/monitor-zfs-disk-pools-nagios-plugin-comparison), the original plugin was completely rewritten for the purpose on using it independantly of the OS -> tested on Solaris, SmartOS and FreeBSD. It also offers performance data for graphing the usage.

The plugin supports a warning and a critical threshold for the usage (like disk usage) on the ZFS Pool.
If one of the disks in the ZFS Pool is set to DEGRADED, the plugin will return a CRITICAL status.

Performance data are integrated for usage.


***History***
# 2006-09-01 Original first version
# 2006-10-04 Updated (no change history known)
# 2013-02-04 Forked and released
# 2013-05-08 Make plugin work on different OS, pepp up plugin
# 2013-05-09 Bugfix in exit code handling
# 2013-05-10 Removed old exit vars (not used anymore)
# 2013-05-21 Added performance data (percentage used)
# 2013-07-11 Bugfix in zpool health check
# 2014-02-10 Bugfix in threshold comparison
# 2014-03-11 Allow plugin to run without enforced thresholds
# 2016-10-12 Fixed incorrect shell quoting and typos
# 2022-03-01 Merge PR #10, manually solve conflicts
# 2022-05-24 Removed need for 'awk', using bash-functions instead
# 2023-02-15 Bugfix in single pool CRITICAL output (issue #13)

***Tested on OS...***
- Solaris 10/11
- OpenSolaris
- SmartOS
- FreeBSD
- Linux


***Usage***
./check_zpools.sh -p (poolname|ALL) [-w warnpercent] [-c critpercent]


***Example Output***
./check_zpools.sh -p ALL -w 80 -c 90
ALL ZFS POOLS OK (datapool logpool rpool)|datapool=47% logpool=38% rpool=78%

Reviews (2)
Good script, it's just I believe that free space should be monitored using something like "zfs list" because "zpool list" always shows more that actually available.
Right now zpool list says following on my system:
NAME SIZE ALLOC FREE
pool0 5.33T 4.27T 1.06T
But "zfs list" shows less:
NAME USED AVAIL
pool0 4.76T 494G
byxrated, January 4, 2014
The script itself works, there was only an exception on FreeBSD where no which cmd is available in bash. I completely rewrote the script to add warning/critical with free space in G. Nagios Exit Parameters were not defined, added also some additional checks for arguments. When warn/crit was not specified it will just look if the pool is ONLINE.

http://pastebin.com/j6AvtKPk
Owner's reply

Hello, the "which" command does exist in FreeBSD, too. However you're right about the fixed thresholds, I should remove them.