Collection of CheckMK checks (see https://checkmk.com/). All checks and plugins are provided as is. Absolutely no warranty. Send any comments to thl-cmk[at]outlook[dot]com

Skip to content
Snippets Groups Projects
Commit 91be9ccd authored by thl-cmk's avatar thl-cmk :flag_na:
Browse files

update project

parent 586dbaef
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -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
......
......@@ -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.')
......
......@@ -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'),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment