diff options
| author | Subhendu Ghosh <sghosh@users.sourceforge.net> | 2003-10-14 02:40:31 +0000 |
|---|---|---|
| committer | Subhendu Ghosh <sghosh@users.sourceforge.net> | 2003-10-14 02:40:31 +0000 |
| commit | 746e30719509f026c2bcda84fab22725b5e982aa (patch) | |
| tree | 4a931e82764d632ef99f5af201d49f48243f8f2e | |
| parent | cc80829d356b05e070969e331c85ae8bdfaa4560 (diff) | |
| download | monitoring-plugins-746e30719509f026c2bcda84fab22725b5e982aa.tar.gz | |
Bug 773588: added check to warn on matching # candidates only
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@744 f882894a-f735-0410-b71e-b25c423dba1c
| -rwxr-xr-x | plugins-scripts/check_ntp.pl | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/plugins-scripts/check_ntp.pl b/plugins-scripts/check_ntp.pl index 10079b69..0546761b 100755 --- a/plugins-scripts/check_ntp.pl +++ b/plugins-scripts/check_ntp.pl | |||
| @@ -154,7 +154,8 @@ my $answer = undef; | |||
| 154 | my $offset = undef; | 154 | my $offset = undef; |
| 155 | my $jitter = undef; | 155 | my $jitter = undef; |
| 156 | my $syspeer = undef; | 156 | my $syspeer = undef; |
| 157 | my $candidates = 0; | 157 | my $candidate = 0; |
| 158 | my @candidates; | ||
| 158 | my $msg; # first line of output to print if format is invalid | 159 | my $msg; # first line of output to print if format is invalid |
| 159 | 160 | ||
| 160 | my $state = $ERRORS{'UNKNOWN'}; | 161 | my $state = $ERRORS{'UNKNOWN'}; |
| @@ -252,6 +253,9 @@ if ( $? && !$ignoreret ) { | |||
| 252 | # Field 10: offset | 253 | # Field 10: offset |
| 253 | # Field 11: dispersion/jitter | 254 | # Field 11: dispersion/jitter |
| 254 | # | 255 | # |
| 256 | # According to bug 773588 Some solaris xntpd implementations seemto match on | ||
| 257 | # "#" even though the docs say it exceeds maximum distance. Providing patch | ||
| 258 | # here which will generate a warining. | ||
| 255 | 259 | ||
| 256 | if ($have_ntpq) { | 260 | if ($have_ntpq) { |
| 257 | 261 | ||
| @@ -264,12 +268,13 @@ if ($have_ntpq) { | |||
| 264 | } | 268 | } |
| 265 | # number of candidates on <host> for sys.peer | 269 | # number of candidates on <host> for sys.peer |
| 266 | if (/^(\*|\+|\#|o])/) { | 270 | if (/^(\*|\+|\#|o])/) { |
| 267 | ++$candidates; | 271 | ++$candidate; |
| 268 | print "Candiate count= $candidates\n" if ($verbose); | 272 | push (@candidates, $_); |
| 273 | print "Candiate count= $candidate\n" if ($verbose); | ||
| 269 | } | 274 | } |
| 270 | 275 | ||
| 271 | # match sys.peer or pps.peer | 276 | # match sys.peer or pps.peer |
| 272 | if (/^(\*|o)([-0-9.\s]+)\s+([-0-9A-Za-z.]+)\s+([-0-9.]+)\s+([lumb]+)\s+([-0-9m.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)/) { | 277 | if (/^(\*|o)([-0-9.\s]+)\s+([-0-9A-Za-z.]+)\s+([-0-9.]+)\s+([lumb-]+)\s+([-0-9m.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)/) { |
| 273 | $syspeer = $2; | 278 | $syspeer = $2; |
| 274 | $stratum = $4; | 279 | $stratum = $4; |
| 275 | $jitter = $11; | 280 | $jitter = $11; |
| @@ -284,8 +289,34 @@ if ($have_ntpq) { | |||
| 284 | $jitter_error = $ERRORS{'OK'}; | 289 | $jitter_error = $ERRORS{'OK'}; |
| 285 | } | 290 | } |
| 286 | } | 291 | } |
| 292 | |||
| 287 | } | 293 | } |
| 288 | close NTPQ; | 294 | close NTPQ; |
| 295 | |||
| 296 | # if we did not match sys.peer or pps.peer but matched # candidates only | ||
| 297 | # generate a warning | ||
| 298 | # based on bug id 773588 | ||
| 299 | unless (defined $syspeer) { | ||
| 300 | if ($#candidates >0) { | ||
| 301 | foreach my $c (@candidates) { | ||
| 302 | $c =~ /^(#)([-0-9.\s]+)\s+([-0-9A-Za-z.]+)\s+([-0-9.]+)\s+([lumb-]+)\s+([-0-9m.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)\s+([-0-9.]+)/; | ||
| 303 | $syspeer = $2; | ||
| 304 | $stratum = $4; | ||
| 305 | $jitter = $11; | ||
| 306 | print "candidate match $c \n" if $verbose; | ||
| 307 | if ($jitter > $jcrit) { | ||
| 308 | print "Candidate match - Jitter_crit = $11 :$jcrit\n" if ($verbose); | ||
| 309 | $jitter_error = $ERRORS{'CRITICAL'}; | ||
| 310 | }elsif ($jitter > $jwarn ) { | ||
| 311 | print "Candidate match - Jitter_warn = $11 :$jwarn \n" if ($verbose); | ||
| 312 | $jitter_error = $ERRORS{'WARNING'}; | ||
| 313 | } else { | ||
| 314 | $jitter_error = $ERRORS{'WARNING'}; | ||
| 315 | } | ||
| 316 | } | ||
| 317 | |||
| 318 | } | ||
| 319 | } | ||
| 289 | } | 320 | } |
| 290 | } | 321 | } |
| 291 | 322 | ||
