mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-22 02:51:03 +00:00
Added munin_events plugin
This commit is contained in:
parent
d42751c908
commit
82edf59689
1 changed files with 142 additions and 0 deletions
142
plugins/munin/munin_events
Executable file
142
plugins/munin/munin_events
Executable file
|
@ -0,0 +1,142 @@
|
|||
#!/bin/bash
|
||||
# -*- sh -*-
|
||||
: <<=cut
|
||||
|
||||
=head1 NAME
|
||||
|
||||
munin_events - Plugin to monitor munin updates
|
||||
|
||||
=head1 APPLICABLE SYSTEMS
|
||||
|
||||
All systems with "bash", "logtail" and "munin"
|
||||
|
||||
=head1 CONFIGURATION
|
||||
|
||||
The following is the default configuration
|
||||
|
||||
[munin_events]
|
||||
user munin
|
||||
env.muninupdate /var/log/munin/munin-update.log
|
||||
env.logtail2 /usr/sbin/logtail2
|
||||
|
||||
You could trigger alerts on update failures
|
||||
|
||||
[munin_events]
|
||||
env.munin_fatal_critical 0
|
||||
env.munin_error_critical 0
|
||||
env.munin_warning_warning 0
|
||||
env.munin_warning_critical 5
|
||||
|
||||
=head1 INTERPRETATION
|
||||
|
||||
This plugin shows a graph with one line per munin state:
|
||||
INFO, WARNING, ERROR, FATAL.
|
||||
|
||||
=head1 MAGIC MARKERS
|
||||
|
||||
#%# family=auto
|
||||
#%# capabilities=autoconf
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
1.2.20160514
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Viktor Szépe <viktor@szepe.net>
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
GPLv2
|
||||
|
||||
=cut
|
||||
|
||||
|
||||
##############################
|
||||
# Includes
|
||||
|
||||
. $MUNIN_LIBDIR/plugins/plugin.sh
|
||||
|
||||
##############################
|
||||
# Configurable variables
|
||||
muninupdate=${muninupdate:-/var/log/munin/munin-update.log}
|
||||
logtail_bin=${logtail_bin:-/usr/sbin/logtail2}
|
||||
|
||||
##############################
|
||||
# Functions
|
||||
|
||||
# Print one value
|
||||
do_value() {
|
||||
local FIELD="$1"
|
||||
local EVENT_LABEL="$2"
|
||||
local EVENT_COUNT
|
||||
|
||||
EVENT_COUNT="$("$logtail_bin" -t "$muninupdate" 2> /dev/null | grep -c "^[0-9/: ]\{19\} \[${EVENT_LABEL}\]")"
|
||||
if ! [ -z "${EVENT_COUNT//[0-9]/}" ]; then
|
||||
echo "Cannot determine event count" 1>&2
|
||||
exit 10
|
||||
fi
|
||||
|
||||
echo "${FIELD}.value ${EVENT_COUNT}"
|
||||
}
|
||||
|
||||
# Print the munin values
|
||||
values() {
|
||||
do_value 'munin_info' 'INFO'
|
||||
do_value 'munin_warning' 'WARNING'
|
||||
do_value 'munin_error' 'ERROR'
|
||||
do_value 'munin_fatal' 'FATAL'
|
||||
# Set offset
|
||||
"$logtail_bin" "$muninupdate" &> /dev/null
|
||||
chmod 640 "${muninupdate}.offset"
|
||||
}
|
||||
|
||||
# Print the munin config
|
||||
config() {
|
||||
echo 'graph_title Munin update events groupped by log levels'
|
||||
echo 'graph_info This graph shows INFO, WARNING, ERROR and FATAL events'
|
||||
echo 'graph_category munin'
|
||||
echo 'graph_vlabel Number of events'
|
||||
|
||||
echo 'graph_args --base 1000 -l 0'
|
||||
echo 'graph_total total'
|
||||
echo 'graph_printf %6.0lf'
|
||||
|
||||
echo 'munin_info.label INFO'
|
||||
print_warning munin_info
|
||||
print_critical munin_info
|
||||
echo 'munin_warning.label WARNING'
|
||||
print_warning munin_warning
|
||||
print_critical munin_warning
|
||||
echo 'munin_error.label ERROR'
|
||||
print_warning munin_error
|
||||
print_critical munin_error
|
||||
echo 'munin_fatal.label FATAL'
|
||||
print_warning munin_fatal
|
||||
print_critical munin_fatal
|
||||
}
|
||||
|
||||
# Print autoconfiguration hint
|
||||
autoconf() {
|
||||
if [ -r "${muninupdate}" ] && [ -x "$logtail_bin" ]; then
|
||||
echo "yes"
|
||||
else
|
||||
echo "missing (${muninupdate} or (${logtail_bin})"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
##############################
|
||||
# Main
|
||||
|
||||
case "$1" in
|
||||
config)
|
||||
config
|
||||
;;
|
||||
autoconf)
|
||||
autoconf
|
||||
;;
|
||||
*)
|
||||
values
|
||||
;;
|
||||
esac
|
Loading…
Add table
Add a link
Reference in a new issue