Révision d9722c22
Initial version
| plugins/other/zfs-filesystem-graph | ||
|---|---|---|
| 1 |
#!/bin/sh |
|
| 2 |
# |
|
| 3 |
# Plugin to monitor a ZFS Filesystem |
|
| 4 |
# |
|
| 5 |
# Wildcard-plugin to monitor a zfs filesystems. |
|
| 6 |
# To monitor a filesystem, link zfs_fs_<zpool>_<filesystem> to this file. E.g. |
|
| 7 |
# |
|
| 8 |
# ln -s /usr/share/munin/node/plugins-auto/zfs_fs_ /etc/munin/node.d/zfs_fs_tank_foo |
|
| 9 |
# |
|
| 10 |
# ...will monitor tank/foo fs. |
|
| 11 |
# |
|
| 12 |
# You can monitor zpool as well by a link on zfs_fs_<zpool> |
|
| 13 |
# |
|
| 14 |
# Parameters understood: |
|
| 15 |
# |
|
| 16 |
# config (required) |
|
| 17 |
# autoconf (optional - used by munin-config) |
|
| 18 |
# |
|
| 19 |
# Magic markers - optional - used by installation scripts and |
|
| 20 |
# munin-config: |
|
| 21 |
# |
|
| 22 |
#%# family=auto |
|
| 23 |
#%# capabilities=autoconf |
|
| 24 |
|
|
| 25 |
myname=`basename $0 | sed 's/^zfs_fs_//g' | sed -e 's/_/\//'` |
|
| 26 |
|
|
| 27 |
name="${name-\<$myname\>}"
|
|
| 28 |
REGEX="${regex-\<$name\>}"
|
|
| 29 |
|
|
| 30 |
if [ "$1" = "autoconf" ]; then |
|
| 31 |
# Makes little sense to autoconf if you can't suggest |
|
| 32 |
echo no |
|
| 33 |
exit 0 |
|
| 34 |
fi |
|
| 35 |
|
|
| 36 |
if [ "$1" = "suggest" ]; then |
|
| 37 |
exit 0 |
|
| 38 |
fi |
|
| 39 |
|
|
| 40 |
usedbydataset=`zfs get -p usedbydataset $myname | grep $myname | awk '{print $3}'`
|
|
| 41 |
usedbysnapshots=`zfs get -p usedbysnapshots $myname | grep $myname | awk '{print $3}'`
|
|
| 42 |
available=`zfs get -p available $myname | grep $myname | awk '{print $3}'`
|
|
| 43 |
usedbychildren=`zfs get -p usedbychildren $myname | grep $myname | awk '{print $3}'`
|
|
| 44 |
quota=`zfs get -p quota $myname | grep $myname | awk '{print $3}'`
|
|
| 45 |
total=$((usedbydataset+usedbysnapshots+available+usedbychildren)) |
|
| 46 |
|
|
| 47 |
|
|
| 48 |
if [ "$1" = "config" ]; then |
|
| 49 |
|
|
| 50 |
echo "graph_title zfs $myname" |
|
| 51 |
echo 'graph_order usedbydataset usedbysnapshots usedbychildren available total quota' |
|
| 52 |
echo "graph_args --base 1024 -r -l 0 --vertical-label Bytes --upper-limit $total" |
|
| 53 |
echo 'graph_info This graph shows how is used a zfs filesystems.' |
|
| 54 |
echo 'graph_category Zfs' |
|
| 55 |
echo 'graph_period second' |
|
| 56 |
echo 'usedbydataset.label Used' |
|
| 57 |
echo 'usedbydataset.draw AREA' |
|
| 58 |
echo 'usedbydataset.info Used space by Dataset' |
|
| 59 |
echo 'usedbydataset.colour FF0000' |
|
| 60 |
echo 'usedbysnapshots.label Snapshots' |
|
| 61 |
echo 'usedbysnapshots.draw STACK' |
|
| 62 |
echo 'usedbysnapshots.info Used space by snapshot' |
|
| 63 |
echo 'usedbysnapshots.colour 0000FF' |
|
| 64 |
echo 'usedbychildren.label Children' |
|
| 65 |
echo 'usedbychildren.draw STACK' |
|
| 66 |
echo 'usedbychildren.info Used space by children' |
|
| 67 |
echo 'usedbychildren.colour FFCC33' |
|
| 68 |
echo 'available.label Available' |
|
| 69 |
echo 'available.draw STACK' |
|
| 70 |
echo 'available.info Free space' |
|
| 71 |
echo 'available.colour 00FF00' |
|
| 72 |
echo 'total.label Total' |
|
| 73 |
echo 'total.draw LINE1' |
|
| 74 |
echo 'total.info Total' |
|
| 75 |
echo 'total.colour 000000' |
|
| 76 |
echo 'quota.label Quota' |
|
| 77 |
echo 'quota.draw LINE1' |
|
| 78 |
echo 'quota.info Quota' |
|
| 79 |
echo 'quota.colour 555555' |
|
| 80 |
exit 0 |
|
| 81 |
fi |
|
| 82 |
|
|
| 83 |
|
|
| 84 |
|
|
| 85 |
echo "usedbydataset.value $usedbydataset" |
|
| 86 |
echo "usedbysnapshots.value $usedbysnapshots" |
|
| 87 |
echo "usedbychildren.value $usedbychildren" |
|
| 88 |
echo "available.value $available" |
|
| 89 |
echo "total.value $total" |
|
| 90 |
echo "quota.value $quota" |
|
| 91 |
|
|
| 92 |
|
|
| 93 |
exit 0 |
|
Formats disponibles : Unified diff