diff options
-rwxr-xr-x | plugins-scripts/check_ntp.pl | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/plugins-scripts/check_ntp.pl b/plugins-scripts/check_ntp.pl index fee58e69..dce515ef 100755 --- a/plugins-scripts/check_ntp.pl +++ b/plugins-scripts/check_ntp.pl | |||
@@ -76,8 +76,8 @@ GetOptions | |||
76 | ("V" => \$opt_V, "version" => \$opt_V, | 76 | ("V" => \$opt_V, "version" => \$opt_V, |
77 | "h" => \$opt_h, "help" => \$opt_h, | 77 | "h" => \$opt_h, "help" => \$opt_h, |
78 | "v" => \$verbose, "verbose" => \$verbose, | 78 | "v" => \$verbose, "verbose" => \$verbose, |
79 | "w=s" => \$opt_w, "warning=s" => \$opt_w, # offset|adjust warning if above this number | 79 | "w=f" => \$opt_w, "warning=f" => \$opt_w, # offset|adjust warning if above this number |
80 | "c=s" => \$opt_c, "critical=s" => \$opt_c, # offset|adjust critical if above this number | 80 | "c=f" => \$opt_c, "critical=f" => \$opt_c, # offset|adjust critical if above this number |
81 | "H=s" => \$opt_H, "hostname=s" => \$opt_H); | 81 | "H=s" => \$opt_H, "hostname=s" => \$opt_H); |
82 | 82 | ||
83 | if ($opt_V) { | 83 | if ($opt_V) { |
@@ -98,13 +98,14 @@ unless ($host) { | |||
98 | exit $ERRORS{'UNKNOWN'}; | 98 | exit $ERRORS{'UNKNOWN'}; |
99 | } | 99 | } |
100 | 100 | ||
101 | ($opt_w) || ($opt_w = shift) || ($opt_w = 60); | 101 | ($opt_w) || ($opt_w = 60); |
102 | my $warning = $1 if ($opt_w =~ /([0-9]+)/); | 102 | my $warning = $1 if ($opt_w =~ /([0-9.]+)/); |
103 | 103 | ||
104 | ($opt_c) || ($opt_c = shift) || ($opt_c = 120); | 104 | ($opt_c) || ($opt_c = 120); |
105 | my $critical = $1 if ($opt_c =~ /([0-9]+)/); | 105 | my $critical = $1 if ($opt_c =~ /([0-9.]+)/); |
106 | 106 | ||
107 | if ($opt_c < $opt_w) { | 107 | |
108 | if ($critical < $warning ) { | ||
108 | print "Critical offset should be larger than warning offset\n"; | 109 | print "Critical offset should be larger than warning offset\n"; |
109 | print_usage(); | 110 | print_usage(); |
110 | exit $ERRORS{"UNKNOWN"}; | 111 | exit $ERRORS{"UNKNOWN"}; |
@@ -189,11 +190,11 @@ if ($have_ntpdc) { | |||
189 | while (<NTPDC>) { | 190 | while (<NTPDC>) { |
190 | print $_ if ($verbose); | 191 | print $_ if ($verbose); |
191 | if (/([^\s]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)/) { | 192 | if (/([^\s]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)/) { |
192 | if ($8>15) { | 193 | if ($8 gt $critical) { |
193 | print "Dispersion = $8 \n" if ($verbose); | 194 | print "Dispersion_crit = $8 :$critical\n" if ($verbose); |
194 | $dispersion_error = $ERRORS{'CRITICAL'}; | 195 | $dispersion_error = $ERRORS{'CRITICAL'}; |
195 | } elsif ($8>5 && $dispersion_error<$ERRORS{'CRITICAL'}) { | 196 | } elsif ($8 gt $warning ) { |
196 | print "Dispersion = $8 \n" if ($verbose); | 197 | print "Dispersion_warn = $8 :$warning \n" if ($verbose); |
197 | $dispersion_error = $ERRORS{'WARNING'}; | 198 | $dispersion_error = $ERRORS{'WARNING'}; |
198 | } else { | 199 | } else { |
199 | $dispersion_error = $ERRORS{'OK'}; | 200 | $dispersion_error = $ERRORS{'OK'}; |
@@ -252,7 +253,7 @@ foreach $key (keys %ERRORS) { | |||
252 | exit $state; | 253 | exit $state; |
253 | 254 | ||
254 | sub print_usage () { | 255 | sub print_usage () { |
255 | print "Usage: $PROGNAME -H <host> [-w <warn>] [-c <crit>]\n"; | 256 | print "Usage: $PROGNAME -H <host> [-w <warn>] [-c <crit>] [-v verbose]\n"; |
256 | } | 257 | } |
257 | 258 | ||
258 | sub print_help () { | 259 | sub print_help () { |
@@ -263,5 +264,7 @@ sub print_help () { | |||
263 | print "\n"; | 264 | print "\n"; |
264 | print "<warn> = Clock offset in seconds at which a warning message will be generated.\n Defaults to 60.\n"; | 265 | print "<warn> = Clock offset in seconds at which a warning message will be generated.\n Defaults to 60.\n"; |
265 | print "<crit> = Clock offset in seconds at which a critical message will be generated.\n Defaults to 120.\n\n"; | 266 | print "<crit> = Clock offset in seconds at which a critical message will be generated.\n Defaults to 120.\n\n"; |
267 | print "The same warning and critical values are used to check against the dispersion \n"; | ||
268 | print "column of ntpdc/xntpdc for the host being queried.\n\n"; | ||
266 | support(); | 269 | support(); |
267 | } | 270 | } |