Repository
Munin (contrib)
Last change
2015-05-18
Graph Categories
Family
auto
Capabilities
Keywords
Language
Shell

lvm_

Name

lvm_ - Wildcard plugin for monitoring disk usage on LVM. Each Volume Group is graphed separately.

Configuration

This plugin needs to run as the root user in order to have permission to run lvs and vgs

[lvm_*]
  user root

Author

  • PatrickDK (Original Author)
  • Niall Donegan

License

Unknown license

Magic Markers

#%# family=auto
#%# capabilities=autoconf suggest
#!/bin/sh
# -*- sh -*-

: << EOF
=head1 NAME

lvm_ - Wildcard plugin for monitoring disk usage on LVM. Each Volume Group is graphed separately.

=head1 CONFIGURATION

This plugin needs to run as the root user in order to have permission to run lvs and vgs

  [lvm_*]
    user root

=head1 AUTHOR

=over 4

=item * PatrickDK (Original Author)

=item * Niall Donegan

=back

=head1 LICENSE

Unknown license


=head1 MAGIC MARKERS

=begin comment

These magic markers are used by munin-node-configure when installing
munin-node.

=end comment

  #%# family=auto
  #%# capabilities=autoconf suggest

=cut

EOF

. $MUNIN_LIBDIR/plugins/plugin.sh


if [ "$1" = "autoconf" ]; then
    if ! command -v lvs >/dev/null; then
        echo "no (lvs not found)"
    elif ! command -v vgs >/dev/null; then
        echo "no (vgs not found)"
    else
        echo "yes"
    fi
    exit 0
fi

if [ "$1" = "suggest" ]; then
	vgs -o vg_name --noheadings | sed -e 's/\ *//'
	exit 0
fi


vg=`echo $0 | awk '{ sub(".*lvm_","",\$1); print \$1; }'`

clean_name() {
    echo "$(clean_fieldname "$1")"
}


if [ "$1" = "config" ]; then

        echo "graph_title Logical Volume Usage($vg)"
        echo 'graph_args --base 1024 -l 0'
        echo 'graph_category disk'
        echo 'graph_info This graph shows disk usage on the machine.'
        echo "free.label free"
        echo "free.draw AREA"
        lvs --units b --nosuffix --noheadings | grep "$vg" | while read i; do
                name=`clean_name $i`
                echo -n "$name.label "
                echo $i | awk '{ print $1 }'
                echo "$name.draw STACK"
        done
        exit 0
fi

i=`vgs --units b --nosuffix --noheadings | grep "$vg"`
echo -n "free.value "
echo $i | awk '{ print $7 }'

lvs --units b --nosuffix --noheadings | grep "$vg" | while read i; do
        name=`clean_name $i`
        echo -n "$name.value "
        echo $i | awk '{ print $4 }'
done