mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-22 14:16:00 +00:00
Initial version
This commit is contained in:
parent
cfe70d9665
commit
686406c5ad
1 changed files with 150 additions and 0 deletions
150
plugins/other/ntp_queries
Executable file
150
plugins/other/ntp_queries
Executable file
|
@ -0,0 +1,150 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# Plugin to monitor ntp queries
|
||||
# (c)2009 Chris Hastie: chris (at) oak (hyphen) wood (dot) co (dot) uk
|
||||
#
|
||||
# Parameters understood:
|
||||
#
|
||||
# config (required)
|
||||
# autoconf (optional - used by munin-node-configure)
|
||||
#
|
||||
# Config variables:
|
||||
#
|
||||
# ntpdc - path to ntpdc program
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Change log
|
||||
# v1.0.0 2009-03-11 Chris Hastie
|
||||
# initial release
|
||||
#
|
||||
#
|
||||
#
|
||||
# Magic markers - optional - used by installation scripts and
|
||||
# munin-node-configure:
|
||||
#
|
||||
#%# family=contrib
|
||||
#%# capabilities=autoconf
|
||||
#
|
||||
|
||||
use strict;
|
||||
use Socket;
|
||||
|
||||
my $NTPDC = $ENV{ntpdc} || "ntpdc";
|
||||
my $COMMAND = "$NTPDC -c sysstats";
|
||||
|
||||
|
||||
# autoconf
|
||||
if ($ARGV[0] and $ARGV[0] eq "autoconf") {
|
||||
`$NTPDC -c help >/dev/null 2>/dev/null`;
|
||||
if ($? eq "0") {
|
||||
if (`$NTPDC -c sysstats | wc -l` > 0) {
|
||||
print "yes\n";
|
||||
exit 0;
|
||||
} else {
|
||||
print "no (unable to list system stats)\n";
|
||||
exit 1;
|
||||
}
|
||||
} else {
|
||||
print "no (ntpdc not found)\n";
|
||||
exit 1;
|
||||
}
|
||||
}
|
||||
|
||||
my $queries = 0;
|
||||
my $packrcv;
|
||||
my $packproc;
|
||||
|
||||
|
||||
# get data from tc
|
||||
open(SERVICE, "$COMMAND |")
|
||||
or die("Could not execute '$COMMAND': $!");
|
||||
|
||||
while (<SERVICE>) {
|
||||
if (/^packets received:\s*(\d*)/) {
|
||||
$packrcv = $1;
|
||||
}
|
||||
if (/^packets processed:\s*(\d*)/) {
|
||||
$packproc = $1;
|
||||
}
|
||||
if (/^current version:\s*(\d*)/) {
|
||||
$queries += $1;
|
||||
}
|
||||
if (/^previous version:\s*(\d*)/) {
|
||||
$queries += $1;
|
||||
}
|
||||
if (/^bad version:\s*(\d*)/) {
|
||||
$queries += $1;
|
||||
}
|
||||
# if (/^access denied:\s*(\d*)/) {
|
||||
# $queries += $1;
|
||||
# }
|
||||
# if (/^bad length or format:\s*(\d*)/) {
|
||||
# $queries += $1;
|
||||
# }
|
||||
# if (/^bad authentication:\s*(\d*)/) {
|
||||
# $queries += $1;
|
||||
# }
|
||||
# if (/^rate exceeded:\s*(\d*)/) {
|
||||
# $queries += $1;
|
||||
# }
|
||||
|
||||
}
|
||||
close(SERVICE);
|
||||
|
||||
$queries = $queries - $packproc;
|
||||
|
||||
# config
|
||||
if ($ARGV[0] and $ARGV[0] eq 'config') {
|
||||
print "graph_title NTP Queries\n";
|
||||
print "graph_args --base 1000\n";
|
||||
print "graph_vlabel qps\n";
|
||||
print "graph_category ntp\n";
|
||||
print "graph_info Queries to the NTP server\n";
|
||||
print "queries.label Queries per second\n";
|
||||
print "queries.type DERIVE\n";
|
||||
print "queries.min 0\n";
|
||||
|
||||
exit 0;
|
||||
}
|
||||
|
||||
# send output
|
||||
|
||||
print "queries.value $queries\n";
|
||||
|
||||
##################################
|
||||
|
||||
|
||||
=pod
|
||||
|
||||
=head1 Description
|
||||
|
||||
ntp_queries - A munin plugin to monitor queries handled by NTP
|
||||
|
||||
=head1 Parameters understood:
|
||||
|
||||
config (required)
|
||||
autoconf (optional - used by munin-node-configure)
|
||||
|
||||
=head1 Configuration variables:
|
||||
|
||||
All configuration parameters are optional
|
||||
|
||||
ntpdc - path to ntpdc program
|
||||
|
||||
|
||||
=head1 Known issues
|
||||
|
||||
|
||||
=cut
|
Loading…
Add table
Add a link
Reference in a new issue