summaryrefslogtreecommitdiffstats
path: root/dnsmasq-munin-plugin
diff options
context:
space:
mode:
authorsteckbrief <steckbrief@chefmail.de>2019-04-28 16:40:08 +0200
committersteckbrief <steckbrief@chefmail.de>2019-04-28 16:40:08 +0200
commitbc859e8f29ee3cf4b129db0136c39915d443d376 (patch)
tree0e753e3c941af64a8b9ebc0b58d2b356a76ebb7e /dnsmasq-munin-plugin
parentefaa44fdbbbe8dfe9bf3718186eb71dd81199ab1 (diff)
adds the DNS masq munin plugin
Diffstat (limited to '')
-rw-r--r--dnsmasq-munin-plugin111
1 files changed, 111 insertions, 0 deletions
diff --git a/dnsmasq-munin-plugin b/dnsmasq-munin-plugin
new file mode 100644
index 0000000..5dad33e
--- /dev/null
+++ b/dnsmasq-munin-plugin
@@ -0,0 +1,111 @@
+#!/bin/bash
+# -*- sh -*-
+
+: <<=cut
+
+=head1 NAME
+
+dnsmasq - Plugin to monitor dnsmasq queries
+
+=head1 APPLICABLE SYSTEMS
+
+All systems with "bash", "sed" and "dnsmasq"
+
+=head1 CONFIGURATION
+
+The following is the default configuration
+
+ [dnsmasq]
+ env.logfile /var/log/dnsmasq/dnsmasq.log
+
+The user running this plugin needs read access to the
+dnsmasq logfiles:
+
+ [dnsmasq]
+
+ user root
+
+ =head1 INTERPRETATION
+
+This plugin shows a graph with the number of forwarded, cached and
+blocked dns queries.
+
+=head1 MAGIC MARKERS
+
+ #%# family=auto
+ #%# capabilities=autoconf
+
+=head1 VERSION
+ 0.0.1
+
+=head1 BUGS
+
+=head1 AUTHOR
+
+Me, myself and I
+Based on dnsmasq plugin by: notracking <https://github.com/notracking>
+Based on fail2ban plugin by: Stig Sandbeck Mathisen <ssm@fnord.no>
+
+=head1 LICENSE
+
+GPLv2
+
+=cut
+
+
+##############################
+# Configurable variables
+logfile=${logfile:-/var/log/dnsmasq/dnsmasq.log}
+
+# Print the munin values
+values() {
+ echo -n "dnsmasq_forwarded.value "
+ cat ${logfile} | sed -n "/^$(date --date='5 minutes ago' '+%b %_d %H:%M')/,\$p" | grep ": forwarded" | wc -l
+
+ echo -n "dnsmasq_cached.value "
+ cat ${logfile} | sed -n "/^$(date --date='5 minutes ago' '+%b %_d %H:%M')/,\$p" | grep ": cached" | wc -l
+
+ echo -n "dnsmasq_blocked.value "
+ cat ${logfile} | sed -n "/^$(date --date='5 minutes ago' '+%b %_d %H:%M')/,\$p" | grep "/block.list" | wc -l
+}
+
+# Print the munin config
+config() {
+ echo 'graph_title DNS queries'
+ echo 'graph_info This graph shows the number of queries resolved by dnsmasq'
+ echo 'graph_category network'
+ echo 'graph_vlabel Number of queries'
+
+ echo 'graph_args --base 1000 -l 0'
+ echo 'graph_total total'
+
+ echo 'dnsmasq_forwarded.label forwarded'
+ echo 'dnsmasq_cached.label cached'
+ echo 'dnsmasq_blocked.label blocked'
+}
+
+# Print autoconfiguration hint
+autoconf() {
+ if [ -f ${logfile} ]
+ then
+ echo "yes"
+ else
+ echo "no (${logfile} not found)"
+ fi
+ exit
+}
+
+##############################
+# Main
+
+case $1 in
+ config)
+ config
+ ;;
+ autoconf)
+ autoconf
+ ;;
+ *)
+ values
+ ;;
+esac \ No newline at end of file