diff --git a/check_ntp.mkp b/check_ntp.mkp index 5abc21ac265a4be7c9138457bb0fa11b8b79e8d5..918b8d4c8e196d2a8f14a4c369d82d4af49d2542 100644 Binary files a/check_ntp.mkp and b/check_ntp.mkp differ diff --git a/checks/check_ntp b/checks/check_ntp index 878c0c8a99b65928b0953055db0708457532e507..620b90235d3920023148c377076cb6157edd7936 100644 --- a/checks/check_ntp +++ b/checks/check_ntp @@ -9,7 +9,7 @@ # Date : 2022-10-04 # File : checks/active_checks_ntp # -# +# 2022-11-15: changed to use short options, doesn't work with long options def check_ntp_arguments(params): args = [] @@ -21,30 +21,30 @@ def check_ntp_arguments(params): args.append(f'-t {params["timeout"]}') if 'server' in params: - args.append(f'-s {params["server"]}') + args.append(f'-H {params["server"]}') else: - args.append('-s $HOSTADDRESS$') + args.append('-H $HOSTADDRESS$') if 'version' in params: - args.append(f'-v {params["version"]}') - - if 'state_not_synchronized' in params: - args.append(f'--state_not_synchronized {params["state_not_synchronized"]}') + args.append(f'-V {params["version"]}') if 'offset_levels' in params: - args.append(f'--offset{params["offset_levels"][0]},{params["offset_levels"][1]}') + args.append(f'-o {params["offset_levels"][0]},{params["offset_levels"][1]}') if 'stratum_levels' in params: - args.append(f'--stratum {params["stratum_levels"][0]},{params["stratum_levels"][1]}') + args.append(f'-s {params["stratum_levels"][0]},{params["stratum_levels"][1]}') if 'dispersion_levels' in params: - args.append(f'--dispersion {params["dispersion_levels"][0]},{params["dispersion_levels"][1]}') + args.append(f'-D {params["dispersion_levels"][0]},{params["dispersion_levels"][1]}') if 'delay_levels' in params: - args.append(f'--delay {params["dispersion_levels"][0]},{params["dispersion_levels"][1]}') + args.append(f'-d {params["dispersion_levels"][0]},{params["dispersion_levels"][1]}') + + if 'state_not_synchronized' in params: + args.append(f'-n {params["state_not_synchronized"]}') if 'state_no_response' in params: - args.append(f'--state_no_response {params["state_no_response"]}') + args.append(f'-r {params["state_no_response"]}') return args diff --git a/lib/nagios/plugins/check_ntp b/lib/nagios/plugins/check_ntp index d746afe3154157da60a44c2d1a64544964a24940..40d821f05f572a7fea59c3c8bb5b9fc8986f26c0 100755 --- a/lib/nagios/plugins/check_ntp +++ b/lib/nagios/plugins/check_ntp @@ -13,7 +13,7 @@ # # 2022-10-13: added exception handling for ntp request # 2022-11-14: made state on no response configurable -# +# 2022-11-15: added short options from typing import Optional, Sequence, Tuple from ipaddress import IPv4Address @@ -130,6 +130,7 @@ def _ntp_decode_ref_id(stratum: int, ref_id: int): def parse_arguments(argv: Sequence[str]) -> argparse.Namespace: + def _warn_crit(arg: str) -> Optional[Tuple[int, int]]: arg = arg.strip('(').strip(')').split(',') warn, crit = arg @@ -146,39 +147,38 @@ def parse_arguments(argv: Sequence[str]) -> argparse.Namespace: 'To use this check plugin you need to install the python "ntplib" in your CMK python environment.' ) parser.add_argument( - '--server', '-s', required=True, + '-H', '--host', required=True, help='Host to query (required)') parser.add_argument( - '--port', '-p', type=int, default=123, + '-p', '--port', type=int, default=123, help='UDP port to use.') parser.add_argument( - '--timeout', '-t', type=int, default=2, + '-t', '--timeout', type=int, default=2, help='Request timeout in seconds.') parser.add_argument( - '--version', '-v', type=int, default=4, choices=[1, 2, 3, 4], + '-V', '--version', type=int, default=4, choices=[1, 2, 3, 4], help='NTP version to use.') parser.add_argument( - '--state_not_synchronized', type=int, default=2, choices=[0, 1, 2, 3], + '-n', '--state_not_synchronized', type=int, default=2, choices=[0, 1, 2, 3], help='Monitoring state if not synchronized.') parser.add_argument( - '--state_no_response', type=int, default=2, choices=[0, 1, 2, 3], + '-r', '--state_no_response', type=int, default=2, choices=[0, 1, 2, 3], help='Monitoring state if response (timeout) received.') parser.add_argument( - '--stratum', type=_warn_crit, default=(10, 15), + '-s', '--stratum', type=_warn_crit, default=(10, 15), help='WARN,CRIT levels for stratum. Use values > 16 to disable.') parser.add_argument( - '--offset', type=_warn_crit, default=(200, 500), + '-o', '--offset', type=_warn_crit, default=(200, 500), help='WARN,CRIT levels for offset in milliseconds.') parser.add_argument( - '--delay', type=_warn_crit, default=(200, 500), + '-d', '--delay', type=_warn_crit, default=(200, 500), help='WARN,CRIT levels for delay in milliseconds.') parser.add_argument( - '--dispersion', type=_warn_crit, default=(200, 500), + '-D', '--dispersion', type=_warn_crit, default=(200, 500), help='WARN,CRIT levels for dispersion in seconds.') args = parser.parse_args(argv) - args.server = args.server.strip(' ') - + args.host = args.host.strip(' ') return args @@ -209,7 +209,7 @@ def main(args=None): ) sys.exit(3) - ntp_time = get_ntp_time(args.server, args.port, args.timeout, args.version, args.state_no_response) + ntp_time = get_ntp_time(args.host, args.port, args.timeout, args.version, args.state_no_response) server_time = ctime(ntp_time.tx_time) stratum = int(ntp_time.stratum) diff --git a/packages/check_ntp b/packages/check_ntp index 8f6ec73d12ad0035fa1b0acf426256bb54c51239..764eb202f2b5c7adf29dd5c6d016db90780ea256 100644 --- a/packages/check_ntp +++ b/packages/check_ntp @@ -8,7 +8,7 @@ 'name': 'check_ntp', 'num_files': 4, 'title': 'Active check NTP', - 'version': '20221114.v.0.0.2', + 'version': '20221115.v.0.0.2a', 'version.min_required': '2.0.0', 'version.packaged': '2021.09.20', 'version.usable_until': None} \ No newline at end of file