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 2ef57233 authored by thl-cmk's avatar thl-cmk :flag_na:
Browse files

update project

parent a033317a
No related branches found
No related tags found
No related merge requests found
......@@ -181,6 +181,7 @@ def check_cisco_asyncos_update(_no_item, params, info):
failedItemsWarn = []
failedItemsCrit = []
failedWarn, failedCrit = params.get('failedLevel')
lastState = 1
for line in info:
name, passed, failed = line
......@@ -189,7 +190,7 @@ def check_cisco_asyncos_update(_no_item, params, info):
passedLast = get_item_state('cisco_asyncos_update_%s_passedLast' % name)
failedLast = get_item_state('cisco_asyncos_update_%s_failedLast' % name)
failedAttempts = get_item_state('cisco_asyncos_update_%s_failedAttempts' % name)
lastState = get_item_state('cisco_asyncos_update_%s_lastState' % name)
# lastState = get_item_state('cisco_asyncos_update_%s_lastState' % name)
# lastState = 0
# set_item_state('cisco_asyncos_update_%s_lastState' % name, lastState)
......@@ -199,21 +200,21 @@ def check_cisco_asyncos_update(_no_item, params, info):
# print 'cisco_asyncos_update_%s_failedAttempts: %s' % (name, failedAttempts)
# print 'cisco_asyncos_update_%s_lastState: %s' % (name, lastState)
if (passedLast == None) or (failedLast == None) or (failedAttempts == None) or (lastState == None):
if (passedLast == None) or (failedLast == None) or (failedAttempts == None): # or (lastState == None):
# init counters
# print ' init counters'
set_item_state('cisco_asyncos_update_%s_passedLast' % name, passed)
set_item_state('cisco_asyncos_update_%s_failedLast' % name, failed)
set_item_state('cisco_asyncos_update_%s_failedAttempts' % name, 0)
lastState = 0
set_item_state('cisco_asyncos_update_%s_lastState' % name, lastState)
# lastState = 0
# set_item_state('cisco_asyncos_update_%s_lastState' % name, lastState)
else:
set_item_state('cisco_asyncos_update_%s_passedLast' % name, passed)
set_item_state('cisco_asyncos_update_%s_failedLast' % name, failed)
passedLast = int(passedLast)
failedLast = int(failedLast)
failedAttempts = int(failedAttempts)
lastState = int(lastState)
# lastState = int(lastState)
failed = int(failed)
passed = int(passed)
# reset counter if overrun
......@@ -223,35 +224,49 @@ def check_cisco_asyncos_update(_no_item, params, info):
if passed < passedLast:
set_item_state('cisco_asyncos_update_%s_passedLast' % name, passed)
passedLast = passed
if passed == passedLast and failed == failedLast:
# no attempt since last check
if lastState == 2:
failedItemsCrit.append(name)
elif lastState == 1:
failedItemsWarn.append(name)
elif failed > failedLast:
# failed attempts since last check
if passed > passedLast:
# rest error counter after passed update attempt
set_item_state('cisco_asyncos_update_%s_failedAttempts' % name, 0)
else:
failedAttempts = failedAttempts + failed - failedLast
set_item_state('cisco_asyncos_update_%s_failedAttempts' % name, failedAttempts)
if failedAttempts >= failedCrit:
failedItemsCrit.append(name)
lastState = 2
lastState = -1
elif failedAttempts >= failedWarn:
failedItemsWarn.append(name)
lastState = 1
elif passed > passedLast:
# rest error counter and state
lastState = 0
set_item_state('cisco_asyncos_update_%s_failedAttempts' % name, 0)
lastState = -1
set_item_state('cisco_asyncos_update_%s_lastState' % name, lastState)
# if passed == passedLast and failed == failedLast:
# # no attempt since last check
# if lastState == 2:
# failedItemsCrit.append(name)
# elif lastState == 1:
# failedItemsWarn.append(name)
# elif failed > failedLast:
# # failed attempts since last check
# failedAttempts = failedAttempts + failed - failedLast
# set_item_state('cisco_asyncos_update_%s_failedAttempts' % name, failedAttempts)
# if failedAttempts >= failedCrit:
# failedItemsCrit.append(name)
# lastState = 2
# elif failedAttempts >= failedWarn:
# failedItemsWarn.append(name)
# lastState = 1
# elif passed > passedLast:
# # rest error counter and state
# lastState = 0
# set_item_state('cisco_asyncos_update_%s_failedAttempts' % name, 0)
if lastState == 0:
lastState = 1
else:
lastState = -1
# set_item_state('cisco_asyncos_update_%s_lastState' % name, lastState)
#
# if lastState == 0:
# lastState = 1
# else:
# lastState = -1
# perfdata.append((name.replace(' ', '_'), lastState, None, None, -1, +1))
perfdata.append((name.replace(' ', '_'), lastState, None, None, -1, 1))
# print failedItemsCrit
# print failedListWarn
......@@ -270,8 +285,9 @@ def check_cisco_asyncos_update(_no_item, params, info):
check_info['cisco_asyncos_update'] = {
'check_function': check_cisco_asyncos_update,
'inventory_function': inventory_cisco_asyncos_update,
'group': 'cisco_asyncos_update',
'service_description': 'Update',
# 'has_perfdata': True,
'has_perfdata': True,
'snmp_info': ('.1.3.6.1.4.1.15497.1.1.1.13.1', [ # ASYNCOS-MAIL-MIB::updateEntry
'2', # updateServiceName --> A textual name for an update entry
'3', # updates --> The number of successful attempts that have occurred when updating a service
......
No preview for this file type
......@@ -15,9 +15,10 @@
'cisco_asyncos_update',
'cisco_asyncos.include'],
'web': ['plugins/wato/cisco_asyncos_license.py',
'plugins/wato/cisco_asyncos_queue.py']},
'plugins/wato/cisco_asyncos_queue.py',
'plugins/wato/cisco_asyncos_update.py']},
'name': 'cisco_asyncos',
'num_files': 15,
'num_files': 16,
'title': u'Cisco AsyncOS (IronPort) checks',
'version': '20200219_v0.1.2',
'version.min_required': '1.6.0p6',
......
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
#
#
register_check_parameters(
subgroup_applications,
'cisco_asyncos_update',
_('Cisco AsyncOS update'),
Dictionary(
# help=_(''),
elements=[
# ('features_ignore',
# ListOfStrings(
# title=_('update features to ignore'),
# orientation='horizontal',
# help=_('there will be no warning/critical if this features are expired'
# 'Examples: McAfee, IronPort Email Encryption, Data Loss Prevention, etc.'),
# )
# ),
('failedLevel',
Tuple(
title=_('Levels for failed attempts'),
elements=[
Integer(title=_('Warning'), default_value=5, unit=_('# of failed attempts')),
Integer(title=_('Critical'), default_value=10, unit=_('# of failed attempts')),
])),
],
),
None,
match_type='dict',
)
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