Linux

check_zfs_linux

Description:

Monitor ZFS pools on Linux.

Current Version

0.9.3

Last Release Date

2013-08-21

Compatible With

  • Nagios 3.x

Owner


Project Files
Project Notes
This plugin was adopted from check_zfs for Solaris (http://exchange.nagios.org/directory/Plugins/Operating-Systems/Solaris/check_zfs/details) to run on Linux with ZFS-on-Linux (http://zfsonlinux.org) installed. It has been tested on CentOS 6.4 so far.
Reviews (1) Add a Review
Good script with no dependencies
by mchamorr, July 31, 2016

I like this little script because it does not 'use' things I don't already have installed. In fact, it only 'use strict'. The script is a few years old, so I've updated it for the latest 'zpool list' output from Ubuntu 16.04 0.6.5.6-0ubuntu10 / ZFS on Linux zfs-0.6.5.6 . The diff is below: $ diff -Nurp check_zfs.2 check_zfs.0 --- check_zfs.2 2016-07-11 17:10:43.981148057 -0400 +++ check_zfs.0 2016-07-11 16:11:33.460956749 -0400 @@ -61,14 +61,12 @@ if ($#ARGV+1 != 2) { my $pool=$ARGV[0]; my $verbose=$ARGV[1]; -my $size=""; # SIZE -my $used=""; # ALLOC -my $avail=""; # FREE -my $sizex=""; # EXPANDSZ -my $frag=""; # FRAG -my $cap=""; # CAP -my $dedup=""; # DEDUP -my $health=""; # HEALTH +my $size=""; +my $used=""; +my $avail=""; +my $cap=""; +my $dedup=""; +my $health=""; my $dmge=""; if ($verbose 3) { @@ -77,30 +75,19 @@ if ($verbose 3) { } my $statcommand="zpool list $pool"; -# my $statcommand="zpool list -o 'name,size,alloc,free,cap,dedup,health,altroot'"; if (! open STAT, "$statcommand|") { print ("$state '$statcommand' command returns no result! NOTE: This plugin needs OS support for ZFS, and execution with root privileges.n"); exit $ERRORS{$state}; } -# NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT -# rpool 9.94G 718M 9.24G - 6% 7% 1.00x ONLINE - - while() { chomp; - NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT - next if (/^NAMEs+SIZEs+ALLOCs+FREEs+EXPANDSZs+FRAGs+CAPs+DEDUPs+HEALTHs+ALTROOT/); + NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT + next if (/^NAMEs+SIZEs+ALLOCs+FREEs+CAPs+DEDUPs+HEALTHs+ALTROOT/); if (/^${pool}s+/) { - ($size, $used, $avail, $sizex, $frag, $cap, $dedup, $health) = - /^${pool}s+(S+)s+(S+)s+(S+)s+(S+)s+(S+)s+(S+)s+(S+)s+(S+)/; + ($size, $used, $avail, $cap, $dedup, $health) = /^${pool}s+(S+)s+(S+)s+(S+)s+(S+)s+(S+)s+(S+)/; } - -# NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT -# next if (/^NAMEs+SIZEs+ALLOCs+FREEs+CAPs+DEDUPs+HEALTHs+ALTROOT/); -# if (/^${pool}s+/) { -# ($size, $used, $avail, $cap, $dedup, $health) = /^${pool}s+(S+)s+(S+)s+(S+)s+(S+)s+(S+)s+(S+)/; -# } } close(STAT); @@ -218,6 +205,6 @@ while() { ## calling all goats! -$msg = sprintf "ZPOOL %s : %s {Size:%s Used:%s Avail:%s Expand:%s Frag:%s Cap:%s Dedup:%s} %sn", $pool, $health, $size, $used, $avail, $sizex, $frag, $cap, $dedup, $dmge; +$msg = sprintf "ZPOOL %s : %s {Size:%s Used:%s Avail:%s Cap:%s} %sn", $pool, $health, $size, $used, $avail, $cap, $dmge; print $state, " ", $msg; exit ($ERRORS{$state});



Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
4 (1)
Favorites
0
Views
35,982