diff options
| -rwxr-xr-x | plugins-scripts/check_ntp.pl | 52 |
1 files changed, 28 insertions, 24 deletions
diff --git a/plugins-scripts/check_ntp.pl b/plugins-scripts/check_ntp.pl index d0167cde..d6584aea 100755 --- a/plugins-scripts/check_ntp.pl +++ b/plugins-scripts/check_ntp.pl | |||
| @@ -289,7 +289,7 @@ if ($have_ntpq) { | |||
| 289 | if (/^(\*|\+|\#|o])/) { | 289 | if (/^(\*|\+|\#|o])/) { |
| 290 | ++$candidate; | 290 | ++$candidate; |
| 291 | push (@candidates, $_); | 291 | push (@candidates, $_); |
| 292 | print "Candiate count= $candidate\n" if ($verbose); | 292 | print "Candidate count= $candidate\n" if ($verbose); |
| 293 | } | 293 | } |
| 294 | 294 | ||
| 295 | # match sys.peer or pps.peer | 295 | # match sys.peer or pps.peer |
| @@ -302,11 +302,14 @@ if ($have_ntpq) { | |||
| 302 | print "Jitter_crit = $11 :$jcrit\n" if ($verbose); | 302 | print "Jitter_crit = $11 :$jcrit\n" if ($verbose); |
| 303 | $jitter_error = $ERRORS{'CRITICAL'}; | 303 | $jitter_error = $ERRORS{'CRITICAL'}; |
| 304 | } elsif ($jitter > $jwarn ) { | 304 | } elsif ($jitter > $jwarn ) { |
| 305 | print "Jitter_warn = $11 :$jwarn \n" if ($verbose); | 305 | print "Jitter_warn = $11 :$jwarn\n" if ($verbose); |
| 306 | $jitter_error = $ERRORS{'WARNING'}; | 306 | $jitter_error = $ERRORS{'WARNING'}; |
| 307 | } else { | 307 | } else { |
| 308 | $jitter_error = $ERRORS{'OK'}; | 308 | $jitter_error = $ERRORS{'OK'}; |
| 309 | } | 309 | } |
| 310 | } else { | ||
| 311 | print "No match!\n" if $verbose; | ||
| 312 | $jitter = '(not parsed)'; | ||
| 310 | } | 313 | } |
| 311 | 314 | ||
| 312 | } | 315 | } |
| @@ -343,53 +346,53 @@ if ($have_ntpq) { | |||
| 343 | if ($ntpdate_error != $ERRORS{'OK'}) { | 346 | if ($ntpdate_error != $ERRORS{'OK'}) { |
| 344 | $state = $ntpdate_error; | 347 | $state = $ntpdate_error; |
| 345 | if ($ntpdate_error == $ERRORS{'WARNING'} ) { | 348 | if ($ntpdate_error == $ERRORS{'WARNING'} ) { |
| 346 | $answer = $msg . "\n"; | 349 | $answer = $msg; |
| 347 | } | 350 | } |
| 348 | else { | 351 | else { |
| 349 | $answer = $msg . "Server for ntp probably down\n"; | 352 | $answer = $msg . "Server for ntp probably down"; |
| 350 | } | 353 | } |
| 351 | 354 | ||
| 352 | if (defined($offset) && abs($offset) > $ocrit) { | 355 | if (defined($offset) && abs($offset) > $ocrit) { |
| 353 | $state = $ERRORS{'CRITICAL'}; | 356 | $state = $ERRORS{'CRITICAL'}; |
| 354 | $answer = "Server Error and offset $offset sec > +/- $ocrit sec\n"; | 357 | $answer = "Server Error and offset $offset sec > +/- $ocrit sec"; |
| 355 | } elsif (defined($offset) && abs($offset) > $owarn) { | 358 | } elsif (defined($offset) && abs($offset) > $owarn) { |
| 356 | $answer = "Server error and offset $offset sec > +/- $owarn sec\n"; | 359 | $answer = "Server error and offset $offset sec > +/- $owarn sec"; |
| 357 | } elsif (defined($jitter) && abs($jitter) > $jcrit) { | 360 | } elsif (defined($jitter) && abs($jitter) > $jcrit) { |
| 358 | $answer = "Server error and jitter $jitter msec > +/- $jcrit msec\n"; | 361 | $answer = "Server error and jitter $jitter msec > +/- $jcrit msec"; |
| 359 | } elsif (defined($jitter) && abs($jitter) > $jwarn) { | 362 | } elsif (defined($jitter) && abs($jitter) > $jwarn) { |
| 360 | $answer = "Server error and jitter $jitter msec > +/- $jwarn msec\n"; | 363 | $answer = "Server error and jitter $jitter msec > +/- $jwarn msec"; |
| 361 | } | 364 | } |
| 362 | 365 | ||
| 363 | } elsif ($have_ntpq && $jitter_error != $ERRORS{'OK'}) { | 366 | } elsif ($have_ntpq && $jitter_error != $ERRORS{'OK'}) { |
| 364 | $state = $jitter_error; | 367 | $state = $jitter_error; |
| 365 | $answer = "Jitter $jitter too high\n"; | 368 | $answer = "Jitter $jitter too high"; |
| 366 | if (defined($offset) && abs($offset) > $ocrit) { | 369 | if (defined($offset) && abs($offset) > $ocrit) { |
| 367 | $state = $ERRORS{'CRITICAL'}; | 370 | $state = $ERRORS{'CRITICAL'}; |
| 368 | $answer = "Jitter error and offset $offset sec > +/- $ocrit sec\n"; | 371 | $answer = "Jitter error and offset $offset sec > +/- $ocrit sec"; |
| 369 | } elsif (defined($offset) && abs($offset) > $owarn) { | 372 | } elsif (defined($offset) && abs($offset) > $owarn) { |
| 370 | $answer = "Jitter error and offset $offset sec > +/- $owarn sec\n"; | 373 | $answer = "Jitter error and offset $offset sec > +/- $owarn sec"; |
| 371 | } elsif (defined($jitter) && abs($jitter) > $jcrit) { | 374 | } elsif (defined($jitter) && abs($jitter) > $jcrit) { |
| 372 | $answer = "Jitter error and jitter $jitter msec > +/- $jcrit msec\n"; | 375 | $answer = "Jitter error and jitter $jitter msec > +/- $jcrit msec"; |
| 373 | } elsif (defined($jitter) && abs($jitter) > $jwarn) { | 376 | } elsif (defined($jitter) && abs($jitter) > $jwarn) { |
| 374 | $answer = "Jitter error and jitter $jitter msec > +/- $jwarn msec\n"; | 377 | $answer = "Jitter error and jitter $jitter msec > +/- $jwarn msec"; |
| 375 | } | 378 | } |
| 376 | 379 | ||
| 377 | } elsif( !$have_ntpq ) { # no errors from ntpdate and no ntpq or ntpq timed out | 380 | } elsif( !$have_ntpq ) { # no errors from ntpdate and no ntpq or ntpq timed out |
| 378 | if (abs($offset) > $ocrit) { | 381 | if (abs($offset) > $ocrit) { |
| 379 | $state = $ERRORS{'CRITICAL'}; | 382 | $state = $ERRORS{'CRITICAL'}; |
| 380 | $answer = "Offset $offset sec > +/- $ocrit sec\n"; | 383 | $answer = "Offset $offset sec > +/- $ocrit sec"; |
| 381 | } elsif (abs($offset) > $owarn) { | 384 | } elsif (abs($offset) > $owarn) { |
| 382 | $state = $ERRORS{'WARNING'}; | 385 | $state = $ERRORS{'WARNING'}; |
| 383 | $answer = "Offset $offset sec > +/- $owarn sec\n"; | 386 | $answer = "Offset $offset sec > +/- $owarn sec"; |
| 384 | } elsif (( abs($offset) > $owarn) && $def_jitter ) { | 387 | } elsif (( abs($offset) > $owarn) && $def_jitter ) { |
| 385 | $state = $ERRORS{'WARNING'}; | 388 | $state = $ERRORS{'WARNING'}; |
| 386 | $answer = "Offset $offset sec > +/- $owarn sec, ntpq timed out\n"; | 389 | $answer = "Offset $offset sec > +/- $owarn sec, ntpq timed out"; |
| 387 | } elsif ( $def_jitter ) { | 390 | } elsif ( $def_jitter ) { |
| 388 | $state = $ERRORS{'WARNING'}; | 391 | $state = $ERRORS{'WARNING'}; |
| 389 | $answer = "Offset $offset secs, ntpq timed out\n"; | 392 | $answer = "Offset $offset secs, ntpq timed out"; |
| 390 | } else{ | 393 | } else{ |
| 391 | $state = $ERRORS{'OK'}; | 394 | $state = $ERRORS{'OK'}; |
| 392 | $answer = "Offset $offset secs \n"; | 395 | $answer = "Offset $offset secs"; |
| 393 | } | 396 | } |
| 394 | 397 | ||
| 395 | 398 | ||
| @@ -397,27 +400,28 @@ if ($ntpdate_error != $ERRORS{'OK'}) { | |||
| 397 | } else { # no errors from ntpdate or ntpq | 400 | } else { # no errors from ntpdate or ntpq |
| 398 | if (abs($offset) > $ocrit) { | 401 | if (abs($offset) > $ocrit) { |
| 399 | $state = $ERRORS{'CRITICAL'}; | 402 | $state = $ERRORS{'CRITICAL'}; |
| 400 | $answer = "Offset $offset sec > +/- $ocrit sec, jitter $jitter msec\n"; | 403 | $answer = "Offset $offset sec > +/- $ocrit sec, jitter $jitter msec"; |
| 401 | } elsif (abs($jitter) > $jcrit ) { | 404 | } elsif (abs($jitter) > $jcrit ) { |
| 402 | $state = $ERRORS{'CRITICAL'}; | 405 | $state = $ERRORS{'CRITICAL'}; |
| 403 | $answer = "Jitter $jitter msec> +/- $jcrit msec, offset $offset sec \n"; | 406 | $answer = "Jitter $jitter msec> +/- $jcrit msec, offset $offset sec"; |
| 404 | } elsif (abs($offset) > $owarn) { | 407 | } elsif (abs($offset) > $owarn) { |
| 405 | $state = $ERRORS{'WARNING'}; | 408 | $state = $ERRORS{'WARNING'}; |
| 406 | $answer = "Offset $offset sec > +/- $owarn sec, jitter $jitter msec\n"; | 409 | $answer = "Offset $offset sec > +/- $owarn sec, jitter $jitter msec"; |
| 407 | } elsif (abs($jitter) > $jwarn ) { | 410 | } elsif (abs($jitter) > $jwarn ) { |
| 408 | $state = $ERRORS{'WARNING'}; | 411 | $state = $ERRORS{'WARNING'}; |
| 409 | $answer = "Jitter $jitter msec> +/- $jwarn msec, offset $offset sec \n"; | 412 | $answer = "Jitter $jitter msec> +/- $jwarn msec, offset $offset sec"; |
| 410 | 413 | ||
| 411 | } else { | 414 | } else { |
| 412 | $state = $ERRORS{'OK'}; | 415 | $state = $ERRORS{'OK'}; |
| 413 | $answer = "Offset $offset secs, jitter $jitter msec, peer is stratum $stratum\n"; | 416 | $answer = "Offset $offset secs, jitter $jitter msec, peer is stratum $stratum"; |
| 414 | } | 417 | } |
| 415 | 418 | ||
| 416 | } | 419 | } |
| 417 | 420 | ||
| 418 | foreach my $key (keys %ERRORS) { | 421 | foreach my $key (keys %ERRORS) { |
| 419 | if ($state==$ERRORS{$key}) { | 422 | if ($state==$ERRORS{$key}) { |
| 420 | print ("NTP $key: $answer"); | 423 | # print ("NTP $key: $answer"); |
| 424 | print ("NTP $key: $answer|offset=$offset, jitter=" . $jitter/1000 . ",peer_stratum=$stratum\n"); | ||
| 421 | last; | 425 | last; |
| 422 | } | 426 | } |
| 423 | } | 427 | } |
