diff --git a/check_ntp.mkp b/check_ntp.mkp index 4a17d2cd7bac2ac0857b3ba523f1868e99ad1b74..5c42ffd374b0a4e095a66ae6427996d87f8f19af 100644 Binary files a/check_ntp.mkp and b/check_ntp.mkp differ diff --git a/checks/check_ntp b/checks/check_ntp index d90573d019f5f94a047fffa6d7f10baad535aa46..49240be77021734a0571cada73e05bf46ec2c7dc 100644 --- a/checks/check_ntp +++ b/checks/check_ntp @@ -32,24 +32,16 @@ def check_ntp_arguments(params): args.append(f'--state_not_synchronized {params["state_not_synchronized"]}') if 'offset_levels' in params: - args.append(f'--offset{str(params["offset_levels"]).strip("(").strip(")")}') - # args.append(f'--offset_warn {params["offset_levels"][0]}') - # args.append(f'--offset_crit {params["offset_levels"][1]}') + args.append(f'--offset{params["offset_levels"][0]},{params["offset_levels"][1]}') if 'stratum_levels' in params: - args.append(f'--stratum {params["stratum_levels"].strip("(").strip(")")}') - # args.append(f'--stratum_warn {params["stratum_levels"][0]}') - # args.append(f'--stratum_crit {params["stratum_levels"][1]}') + args.append(f'--stratum {params["stratum_levels"][0]},{params["stratum_levels"][1]}') if 'dispersion_levels' in params: - args.append(f'--dispersion {params["dispersion_levels"].strip("(").strip(")")}') - # args.append(f'--dispersion_warn {params["dispersion_levels"][0]}') - # args.append(f'--dispersion_crit {params["dispersion_levels"][1]}') + args.append(f'--dispersion {params["dispersion_levels"][0]},{params["dispersion_levels"][1]}') if 'delay_levels' in params: - args.append(f'--delay {params["dispersion_levels"].strip("(").strip(")")}') - # args.append(f'--delay_warn {params["dispersion_levels"][0]}') - # args.append(f'--delay_crit {params["dispersion_levels"][1]}') + args.append(f'--delay {params["dispersion_levels"][0]},{params["dispersion_levels"][1]}') return args diff --git a/lib/nagios/plugins/check_ntp b/lib/nagios/plugins/check_ntp index 36fc5c02c55619676ab429e72962829fa5483213..f9e6e93b689c9b38ab6c1c540bfb5d68fbbcde52 100755 --- a/lib/nagios/plugins/check_ntp +++ b/lib/nagios/plugins/check_ntp @@ -9,20 +9,23 @@ # Date : 2022-10-04 # File : active_checks_ntp.py # +# Active check to monitor NTP servers. +# +# +# from typing import Optional, Sequence, Tuple from ipaddress import IPv4Address import sys import argparse +from time import ctime, gmtime, strftime + no_ntplib=False try: from ntplib import NTPClient, NTPStats except ModuleNotFoundError: no_ntplib=True -from time import ctime, gmtime, strftime - - _ntp_leap = { 0: 'no warning', 1: 'last minute of the day has 61 seconds', @@ -122,7 +125,7 @@ def _ntp_decode_ref_id(stratum: int, ref_id: int): return ref_id -def parse_arguments(argv: Sequence[str]) -> argparse.Namespace: +def parse_arguments(argv: Sequence[str]): # -> argparse.Namespace # is not available if ntplib is not installed def _warn_crit(arg: str) -> Optional[Tuple[int, int]]: arg = arg.strip('(').strip(')').split(',') warn, crit = arg @@ -136,7 +139,7 @@ def parse_arguments(argv: Sequence[str]) -> argparse.Namespace: parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter, epilog='Add WARN,CRIT levels separated by comma without brackets, like this: "--offset 200,500".' - 'To use this check plugin you need to install the python ntplib in your CMK python environment.' + 'To use this check plugin you need to install the python "ntplib" in your CMK python environment.' ) parser.add_argument( '--server', '-s', required=True, @@ -153,31 +156,6 @@ def parse_arguments(argv: Sequence[str]) -> argparse.Namespace: parser.add_argument( '--state_not_synchronized', type=int, default=2, choices=[0, 1, 2, 3], help='Monitoring state if not synchronized.') - # parser.add_argument( - # '--stratum_warn', type=int, default=10, - # help='WARN at Stratum, use value > 16 to disable.') - # parser.add_argument( - # '--stratum_crit', type=int, default=15, - # help='CRIT at Stratum, use value > 16 to disable.') - # parser.add_argument( - # '--offset_warn', type=int, default=200, - # help='WARN at offset in ms.') - # parser.add_argument( - # '--offset_crit', type=int, default=500, - # help='CRIT at offset in ms.') - # parser.add_argument( - # '--delay_warn', type=int, default=200, - # help='WARN at delay in ms.') - # parser.add_argument( - # '--delay_crit', type=int, default=500, - # help='CRIT at delay in ms.') - # parser.add_argument( - # '--dispersion_warn', type=int, default=3, - # help='WARN at root dispersion in seconds.') - # parser.add_argument( - # '--dispersion_crit', type=int, default=5, - # help='CRIT at root dispersion in seconds.') - parser.add_argument( '--stratum', type=_warn_crit, default=(10, 15), help='WARN,CRIT levels for stratum. Use values > 16 to disable.') diff --git a/web/plugins/wato/active_checks_ntp.py b/web/plugins/wato/active_checks_ntp.py index 0164e07d27227c2806993441757c3c089abaed64..42d2184a21fb73e217180f77394c06a5da2a300f 100644 --- a/web/plugins/wato/active_checks_ntp.py +++ b/web/plugins/wato/active_checks_ntp.py @@ -102,7 +102,7 @@ def _valuespec_active_checks_ntp(): ), Integer( title=_('Critical at'), - default_value=14, + default_value=15, maxvalue=18, help=_( 'The stratum (\'distance\' to the reference clock) at which the check gets critical.'), @@ -111,9 +111,9 @@ def _valuespec_active_checks_ntp(): )), ('offset_levels', Tuple( - title=_('Time Offset in ms'), + title=_('max. offset in ms'), help=_('Mean offset in the times reported between this local host and the remote peer or server.' - 'Note: The levels will also be used as lower levels.'), + 'Note: This levels will also be used as lower levels.'), elements=[ Integer( title=_('Warning at'),