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

update project

parent e9171c72
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# License: GNU General Public License v2
#
# Author: thl-cmk[at]outlook[dot]com
# URL : https://thl-cmk.hopto.org
# Date : 2017-17-05
#
# Check Point Identity Awareness status
#
# 2020-06-08: changed snmp-scan function
#
# snmpwalk sample
# .1.3.6.1.4.1.2620.1.38.25.1.1.1.0 = Counter32: 1
# .1.3.6.1.4.1.2620.1.38.25.1.1.2.0 = Counter32: 2
# .1.3.6.1.4.1.2620.1.38.25.1.1.3.0 = Counter32: 3
# .1.3.6.1.4.1.2620.1.38.25.1.1.4.0 = Counter32: 4
# .1.3.6.1.4.1.2620.1.38.25.1.1.5.0 = Counter32: 5
# .1.3.6.1.4.1.2620.1.38.25.1.2.1.0 = Counter32: 0
# .1.3.6.1.4.1.2620.1.38.25.1.2.2.0 = Counter32: 0
# .1.3.6.1.4.1.2620.1.38.25.1.2.3.0 = Counter32: 0
# .1.3.6.1.4.1.2620.1.38.25.1.2.4.0 = Counter32: 0
# .1.3.6.1.4.1.2620.1.38.25.1.2.5.0 = Counter32: 0
# .1.3.6.1.4.1.2620.1.38.25.1.3.1.0 = STRING: "doamin1.de"
# .1.3.6.1.4.1.2620.1.38.25.1.3.2.0 = STRING: "doamin1.de"
# .1.3.6.1.4.1.2620.1.38.25.1.3.3.0 = STRING: "domain1.de"
# .1.3.6.1.4.1.2620.1.38.25.1.3.4.0 = STRING: "domain2.de"
# .1.3.6.1.4.1.2620.1.38.25.1.3.5.0 = STRING: "domain2.de"
# .1.3.6.1.4.1.2620.1.38.25.1.4.1.0 = IpAddress: 10.1.1.13
# .1.3.6.1.4.1.2620.1.38.25.1.4.2.0 = IpAddress: 10.1.1.14
# .1.3.6.1.4.1.2620.1.38.25.1.4.3.0 = IpAddress: 10.1.1.31
# .1.3.6.1.4.1.2620.1.38.25.1.4.4.0 = IpAddress: 10.1.1.16
# .1.3.6.1.4.1.2620.1.38.25.1.4.5.0 = IpAddress: 10.1.1.17
# .1.3.6.1.4.1.2620.1.38.25.1.5.1.0 = Counter32: 77462
# .1.3.6.1.4.1.2620.1.38.25.1.5.2.0 = Counter32: 85917
# .1.3.6.1.4.1.2620.1.38.25.1.5.3.0 = Counter32: 58378
# .1.3.6.1.4.1.2620.1.38.25.1.5.4.0 = Counter32: 4810
# .1.3.6.1.4.1.2620.1.38.25.1.5.5.0 = Counter32: 6256
#
# sample info
# [[u'1', u'0', u'domain1.de', u'10.1.1.13', u'77462'],
# [u'2', u'0', u'domain1.de', u'10.1.1.14', u'85917'],
# [u'3', u'0', u'domain1.de', u'10.1.1.31', u'58378'],
# [u'4', u'0', u'domain2.de', u'10.1.1.16', u'4810'],
# [u'5', u'0', u'domain2.de', u'10.1.1.17', u'6256']]
#
import time
from dataclasses import dataclass
from typing import Optional, Dict
from cmk.base.plugins.agent_based.agent_based_api.v1 import (
register,
Service,
check_levels,
SNMPTree,
all_of,
startswith,
any_of,
equals,
get_rate,
GetRateError,
get_value_store,
Result,
State,
)
from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
DiscoveryResult,
CheckResult,
StringTable,
)
@dataclass
class CheckpointIaDc:
status_code: int
status_str: str
events: int
_dcstatus = {
'0': 'Ok',
'1': 'Bad Credentials',
'2': 'Connectivity Error',
'3': 'Internal Error',
'4': 'Connection Time Out'
}
def parse_checkpoint_ia_adquery(string_table: StringTable) -> Optional[Dict[str, Dict[str, CheckpointIaDc]]]:
domains = {}
for entry in string_table:
try:
status, domain, ipaddr, events = entry
except ValueError:
return
if len(ipaddr.split('.')) == 4:
if not domains.get(domain):
domains[domain] = {}
domains[domain].update({
ipaddr: CheckpointIaDc(
status_code=int(status),
status_str=_dcstatus.get(status, f'unknown: {status}'),
events=int(events)
)
})
return domains
def discovery_checkpoint_ia_adquery(section: Dict[str, Dict[str, CheckpointIaDc]]) -> DiscoveryResult:
for key in section.keys():
yield Service(item=key)
def check_checkpoint_ia_adquery(item, params, section: Dict[str, Dict[str, CheckpointIaDc]]) -> CheckResult:
try:
dcs = section[item]
except KeyError:
return
events_sum = 0
now_time = time.time()
value_store = get_value_store()
for key in dcs.keys():
dc = dcs[key]
events_sum += dc.events
dc_ip_address = key.replace('.', '_')
try:
value = get_rate(value_store, f'checkpoint_ia_adquery_{dc_ip_address}', now_time, dc.events, raise_overflow=True)
except GetRateError:
value = 0
yield from check_levels(
value=value,
label=f'DC {key} Events',
metric_name=f'checkpoint_ia_adquery_{dc_ip_address}',
render_func=lambda v: f'{v:.2f}/s',
notice_only=True
)
if not dc.status_code == 0:
yield Result(state=State.CRIT, notice=f'DC {key} connection status: {dc.status_str}')
#else:
# yield Result(state=State.OK, notice=f'DC {key} connection status: {dc.status_str}')
yield Result(state=State.OK, summary=f'# of DCs: {len(dcs)}', details=' ')
try:
value = get_rate(value_store, f'checkpoint_ia_adquery_events_sum', now_time, events_sum, raise_overflow=True)
except GetRateError:
value = 0
yield from check_levels(
value=value,
label='Events (sum)',
metric_name=f'checkpoint_ia_adquery_events_sum',
render_func=lambda v: f'{v:.2f}/s',
)
register.snmp_section(
name='checkpoint_ia_adquery',
parse_function=parse_checkpoint_ia_adquery,
fetch=SNMPTree(
base='.1.3.6.1.4.1.2620.1.38.25.1', # CHECKPOINT-MIB::identityAwarenessADQueryStatusEntry
oids=[
'2', # identityAwarenessADQueryStatusCurrStatus
'3', # identityAwarenessADQueryStatusDomainName
'4', # identityAwarenessADQueryStatusDomainIP
'5', # identityAwarenessADQueryStatusEvents
]
),
detect=any_of(
startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.2620'),
all_of(
equals('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.8072.3.2.10'),
equals('.1.3.6.1.4.1.2620.1.6.1.0', 'SVN Foundation'),
)
)
)
register.check_plugin(
name='checkpoint_ia_adquery',
service_name='Identity Awareness AD Domain %s',
discovery_function=discovery_checkpoint_ia_adquery,
check_function=check_checkpoint_ia_adquery,
check_default_parameters={
},
check_ruleset_name='checkpoint_ia_adquery',
)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# License: GNU General Public License v2
#
# Author: thl-cmk[at]outlook[dot]com
# URL : https://thl-cmk.hopto.org
# Date : 2017-17-05
#
# Check Point Identity Awareness status
#
# 2018-03-15 : code cleanup, added identity counters 39-44
# 2020-06-08 : changed snmp-scan function
#
# snmpwalk sample
#
# .1.3.6.1.4.1.2620.1.38.1.0 = STRING: "Identity Awareness"
# .1.3.6.1.4.1.2620.1.38.2.0 = Gauge32: 149
# .1.3.6.1.4.1.2620.1.38.3.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.4.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.5.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.6.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.7.0 = Gauge32: 149
# .1.3.6.1.4.1.2620.1.38.8.0 = Gauge32: 188
# .1.3.6.1.4.1.2620.1.38.9.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.10.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.11.0 = Gauge32: 337
# .1.3.6.1.4.1.2620.1.38.12.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.13.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.14.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.15.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.16.0 = Gauge32: 221
# .1.3.6.1.4.1.2620.1.38.17.0 = Gauge32: 44
# .1.3.6.1.4.1.2620.1.38.18.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.19.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.20.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.21.0 = Gauge32: 2272
# .1.3.6.1.4.1.2620.1.38.22.0 = Gauge32: 68786
# .1.3.6.1.4.1.2620.1.38.23.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.39.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.40.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.41.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.42.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.43.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.44.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.101.0 = Gauge32: 0
# .1.3.6.1.4.1.2620.1.38.102.0 = STRING: "OK"
# .1.3.6.1.4.1.2620.1.38.103.0 = STRING: "OK"
#
# sample info
# [[u'Identity Awareness', u'149', u'0', u'0', u'0', u'0', u'149', u'188', u'0', u'0', u'337', u'0', u'0', u'0', u'0',
# u'221', u'44', u'0', u'0', u'0', u'2272', u'68786', u'0', u'0', u'0', u'0', u'0', u'0', u'0', u'0', u'OK', u'OK']]
#
import time
from dataclasses import dataclass
from typing import Optional, Dict
from cmk.base.plugins.agent_based.agent_based_api.v1 import (
register,
Service,
SNMPTree,
all_of,
startswith,
any_of,
equals,
get_rate,
GetRateError,
get_value_store,
Result,
State,
Metric,
)
from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
DiscoveryResult,
CheckResult,
StringTable,
)
@dataclass
class CheckpointIaStatus:
iaStatus: int
iaStatusShortDesc: str
iaStatusLongDesc: str
metrics_count: Dict[str, int]
metrics_rate: Dict[str, int]
def parse_checkpoint_identity_awareness(string_table: StringTable) -> Optional[CheckpointIaStatus]:
try:
iaAuthUsers, iaUnAuthUsers, iaAuthUsersKerberos, iaAuthMachKerberos, iaAuthUsersPass, \
iaAuthUsersADQuery, iaAuthMachADQuery, iaLoggedInAgent, iaLoggedInCaptivePortal, iaLoggedInADQuery, \
iaAntiSpoffProtection, iaSuccUserLoginKerberos, iaSuccMachLoginKerberos, iaSuccUserLoginPass, \
iaSuccUserLoginADQuery, iaSuccMachLoginADQuery, iaUnSuccUserLoginKerberos, iaUnSuccMachLoginKerberos, \
iaUnSuccUserLoginPass, iaSuccUserLDAP, iaUnSuccUserLDAP, iaDataTrans, iaRADIUSAccounting, \
iaIdentityCollectorActiveDirectory, iaIdentityCollectorCiscoISE, iaTerminalServer, iaRemoteAccess, \
iaIdentityWebAPI, iaStatus, iaStatusShortDesc, iaStatusLongDesc = string_table[0]
except IndexError:
return
return CheckpointIaStatus(
iaStatus=int(iaStatus),
iaStatusShortDesc=iaStatusShortDesc,
iaStatusLongDesc=iaStatusLongDesc,
metrics_count={
'iaAuthUsers': int(iaAuthUsers),
'iaUnAuthUsers': int(iaUnAuthUsers),
'iaAuthUsersKerberos': int(iaAuthUsersKerberos),
'iaAuthMachKerberos': int(iaAuthMachKerberos),
'iaAuthUsersPass': int(iaAuthUsersPass),
'iaAuthUsersADQuery': int(iaAuthUsersADQuery),
'iaAuthMachADQuery': int(iaAuthMachADQuery),
'iaLoggedInAgent': int(iaLoggedInAgent),
'iaLoggedInCaptivePortal': int(iaLoggedInCaptivePortal),
'iaLoggedInADQuery': int(iaLoggedInADQuery),
'iaAntiSpoffProtection': int(iaAntiSpoffProtection),
'iaSuccUserLoginKerberos': int(iaSuccUserLoginKerberos),
'iaSuccMachLoginKerberos': int(iaSuccMachLoginKerberos),
'iaSuccUserLoginPass': int(iaSuccUserLoginPass),
'iaSuccUserLoginADQuery': int(iaSuccUserLoginADQuery),
'iaSuccMachLoginADQuery': int(iaSuccMachLoginADQuery),
'iaUnSuccUserLoginKerberos': int(iaUnSuccUserLoginKerberos),
'iaUnSuccMachLoginKerberos': int(iaUnSuccMachLoginKerberos),
'iaUnSuccUserLoginPass': int(iaUnSuccUserLoginPass),
'iaDataTrans': int(iaDataTrans),
'iaRADIUSAccounting': int(iaRADIUSAccounting) if iaRADIUSAccounting.isdigit() else None,
'iaIdentityCollectorActiveDirectory': int(iaIdentityCollectorActiveDirectory) if iaIdentityCollectorActiveDirectory.isdigit() else None,
'iaIdentityCollectorCiscoISE': int(iaIdentityCollectorCiscoISE) if iaIdentityCollectorCiscoISE.isdigit() else None,
'iaTerminalServer': int(iaTerminalServer) if iaTerminalServer.isdigit() else None,
'iaRemoteAccess': int(iaRemoteAccess) if iaRemoteAccess.isdigit() else None,
'iaIdentityWebAPI': int(iaIdentityWebAPI) if iaIdentityWebAPI.isdigit() else None,
},
metrics_rate={
'iaSuccUserLDAP': int(iaSuccUserLDAP),
'iaUnSuccUserLDAP':int(iaUnSuccUserLDAP),
},
)
def discovery_checkpoint_identity_awareness(section: CheckpointIaStatus) -> DiscoveryResult:
yield Service()
def check_checkpoint_identity_awareness(params, section: CheckpointIaStatus) -> CheckResult:
yield Result(state=State.OK, summary=f'Authenticated users: {section.metrics_count["iaAuthUsers"]}')
yield Result(state=State.OK, summary=f'Unauthenticated users: {section.metrics_count["iaUnAuthUsers"]}')
if not section.iaStatus == 0:
yield Result(state=State.WARN, notice=section.iaStatusLongDesc)
for key, value in section.metrics_count.items():
if value is not None and key not in params['ignore_counters']:
yield Metric(
value=value,
name=f'checkpoint_identity_awareness_{key}',
)
now_time = time.time()
value_store = get_value_store()
for key, value in section.metrics_rate.items():
if value is not None and key not in params['ignore_counters']:
try:
value = get_rate(value_store, f'checkpoint_identity_awareness_{key}', now_time, value, raise_overflow=True)
except GetRateError:
value = 0
yield Metric(
value=value,
name=f'checkpoint_identity_awareness_{key}',
)
register.snmp_section(
name='checkpoint_identity_awareness',
parse_function=parse_checkpoint_identity_awareness,
fetch=SNMPTree(
base='.1.3.6.1.4.1.2620.1.38', # CHECKPOINT-MIB::identityAwareness
oids=[
'2', # identityAwarenessAuthUsers
'3', # identityAwarenessUnAuthUsers
'4', # identityAwarenessAuthUsersKerberos
'5', # identityAwarenessAuthMachKerberos
'6', # identityAwarenessAuthUsersPass
'7', # identityAwarenessAuthUsersADQuery
'8', # identityAwarenessAuthMachADQuery
'9', # identityAwarenessLoggedInAgent
'10', # identityAwarenessLoggedInCaptivePortal
'11', # identityAwarenessLoggedInADQuery
'12', # identityAwarenessAntiSpoffProtection
'13', # identityAwarenessSuccUserLoginKerberos
'14', # identityAwarenessSuccMachLoginKerberos
'15', # identityAwarenessSuccUserLoginPass
'16', # identityAwarenessSuccUserLoginADQuery
'17', # identityAwarenessSuccMachLoginADQuery
'18', # identityAwarenessUnSuccUserLoginKerberos
'19', # identityAwarenessUnSuccMachLoginKerberos
'20', # identityAwarenessUnSuccUserLoginPass
'21', # identityAwarenessSuccUserLDAP
'22', # identityAwarenessUnSuccUserLDAP
'23', # identityAwarenessDataTrans
'39', # identityAwarenessRADIUSAccounting
'40', # identityAwarenessIdentityCollectorActiveDirectory
'41', # identityAwarenessIdentityCollectorCiscoISE
'42', # identityAwarenessTerminalServer
'43', # identityAwarenessRemoteAccess
'44', # identityAwarenessIdentityWebAPI
'101', # identityAwarenessStatus
'102', # identityAwarenessStatusShortDesc
'103', # identityAwarenessStatusLongDesc
]
),
detect=any_of(
startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.2620'),
all_of(
equals('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.8072.3.2.10'),
equals('.1.3.6.1.4.1.2620.1.6.1.0', 'SVN Foundation'),
)
)
)
register.check_plugin(
name='checkpoint_identity_awareness',
service_name='Identity Awareness status',
discovery_function=discovery_checkpoint_identity_awareness,
check_function=check_checkpoint_identity_awareness,
check_default_parameters={
'ignore_counters' : [],
},
check_ruleset_name='checkpoint_identity_awareness',
)
No preview for this file type
{'author': u'Th.L. (thl-cmk[at]outlook[dot]com)',
'description': u'Monitors status of Check Point Identity Awareness.\nCreates one check for the global IA status and one check for each AD Query (LDAP) domain.\n',
{'author': 'Th.L. (thl-cmk[at]outlook[dot]com)',
'description': 'Monitors status of Check Point Identity Awareness.\n'
'Creates one check for the global IA status and one check for '
'each AD Query (LDAP) domain.\n',
'download_url': 'https://thl-cmk.hopto.org',
'files': {'checks': ['checkpoint_ia_adquery',
'checkpoint_identity_awareness'],
'files': {'agent_based': ['checkpoint_ia_adquery.py',
'checkpoint_identity_awareness.py'],
'web': ['plugins/wato/checkpoint_identity_awareness.py',
'plugins/metrics/checkpoint_identity_awareness.py',
'plugins/metrics/checkpoint_ia_adquery.py']},
'name': 'checkpoint_identity_awareness',
'num_files': 5,
'title': u'Check Point Identity Awareness checks',
'version': '20200608.v.0.1d',
'version.min_required': '1.2.8b8',
'version.packaged': '1.4.0p38'}
\ No newline at end of file
'title': 'Check Point Identity Awareness checks',
'version': '20210825.v.0.2',
'version.min_required': '2.0.0',
'version.packaged': '2021.07.14',
'version.usable_until': None}
\ No newline at end of file
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# License: GNU General Public License v2
#
......@@ -10,6 +10,15 @@
# Check Point Identity Awareness AD Query metrics plugin
# checkpoint_ia_query
#
from cmk.gui.i18n import _
from cmk.gui.plugins.metrics import (
metric_info,
graph_info,
perfometer_info,
)
metric_info['checkpoint_ia_adquery_summary'] = {
'title': _('Events summary'),
'unit': '1/s',
......@@ -56,51 +65,45 @@ metric_info['checkpoint_ia_adquery_dc_10_250_1_113'] = {
#
#
#
check_metrics['check_mk-checkpoint_ia_adquery'] = {
'events_sum': {'name': 'checkpoint_ia_adquery_summary', },
'dc_10_140_110_1': {'name': 'checkpoint_ia_adquery_dc_10_140_110_1', },
'dc_10_140_110_2': {'name': 'checkpoint_ia_adquery_dc_10_140_110_2', },
'dc_10_215_2_252': {'name': 'checkpoint_ia_adquery_dc_10_215_2_252', },
'dc_10_215_2_253': {'name': 'checkpoint_ia_adquery_dc_10_215_2_253', },
'dc_10_225_110_240': {'name': 'checkpoint_ia_adquery_dc_10_225_110_240', },
'dc_10_250_1_112': {'name': 'checkpoint_ia_adquery_dc_10_250_1_112', },
'dc_10_250_1_113': {'name': 'checkpoint_ia_adquery_dc_10_250_1_113', },
}
# igepa graph
graph_info.append({
graph_info['checkpoint_ia_adquery_dc'] = {
'title': _('Check Point Identity Awareness AD queries'),
'metrics': [
('checkpoint_ia_adquery_summary', 'line'),
('checkpoint_ia_adquery_dc_10_250_1_112', 'stack'),
('checkpoint_ia_adquery_dc_10_250_1_113', 'stack'),
],
})
# hri graph
graph_info.append({
'title': _('Check Point Identity Awareness AD queries'),
'metrics': [
('checkpoint_ia_adquery_summary', 'line'),
('checkpoint_ia_adquery_dc_10_140_110_1', 'stack'),
('checkpoint_ia_adquery_dc_10_140_110_2', 'stack'),
'optional_metrics': [
'checkpoint_ia_adquery_dc_10_250_1_112',
'checkpoint_ia_adquery_dc_10_250_1_113',
],
})
}
# h&r graph
graph_info.append({
'title': _('Check Point Identity Awareness AD queries'),
'metrics': [
('checkpoint_ia_adquery_summary', 'line'),
('checkpoint_ia_adquery_dc_10_215_2_252', 'stack'),
('checkpoint_ia_adquery_dc_10_215_2_253', 'stack'),
('checkpoint_ia_adquery_dc_10_225_110_240', 'stack'),
],
})
# graph_info.append({
# 'title': _('Check Point Identity Awareness AD queries'),
# 'metrics': [
# ('checkpoint_ia_adquery_summary', 'line'),
# ('checkpoint_ia_adquery_dc_10_140_110_1', 'stack'),
# ('checkpoint_ia_adquery_dc_10_140_110_2', 'stack'),
# ],
# })
# graph_info.append({
# 'title': _('Check Point Identity Awareness AD queries'),
# 'metrics': [
# ('checkpoint_ia_adquery_summary', 'line'),
# ('checkpoint_ia_adquery_dc_10_215_2_252', 'stack'),
# ('checkpoint_ia_adquery_dc_10_215_2_253', 'stack'),
# ('checkpoint_ia_adquery_dc_10_225_110_240', 'stack'),
# ],
# })
perfometer_info.append({
'type': 'linear',
'segments': ['checkpoint_ia_adquery_summary',
],
'segments': [
'checkpoint_ia_adquery_summary',
],
'total': 100,
})
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# License: GNU General Public License v2
#
......@@ -11,6 +11,14 @@
# checkpoint_identity_awareness
#
from cmk.gui.i18n import _
from cmk.gui.plugins.metrics import (
metric_info,
graph_info,
perfometer_info,
)
metric_info['checkpoint_identity_awareness_iaSuccUserLoginADQuery'] = {
'title': _('Successfull ADQuery user login attempts'),
'unit': 'count',
......@@ -157,44 +165,7 @@ metric_info['checkpoint_identity_awareness_iaDataTrans'] = {
'color': '42/a',
}
check_metrics['check_mk-checkpoint_identity_awareness'] = {
'iaSuccUserLoginADQuery': {'name': 'checkpoint_identity_awareness_iaSuccUserLoginADQuery', 'auto_graph': False },
'iaSuccMachLoginADQuery': {'name': 'checkpoint_identity_awareness_iaSuccMachLoginADQuery', 'auto_graph': False },
'iaSuccUserLoginKerberos': {'name': 'checkpoint_identity_awareness_iaSuccUserLoginKerberos', 'auto_graph': False },
'iaSuccMachLoginKerberos': {'name': 'checkpoint_identity_awareness_iaSuccMachLoginKerberos', 'auto_graph': False },
'iaSuccUserLoginPass': {'name': 'checkpoint_identity_awareness_iaSuccUserLoginPass', 'auto_graph': False },
'iaUnSuccUserLoginKerberos': {'name': 'checkpoint_identity_awareness_iaUnSuccUserLoginKerberos', 'auto_graph': False },
'iaUnSuccMachLoginKerberos': {'name': 'checkpoint_identity_awareness_iaUnSuccMachLoginKerberos', 'auto_graph': False },
'iaUnSuccUserLoginPass': {'name': 'checkpoint_identity_awareness_iaUnSuccUserLoginPass', 'auto_graph': False },
'iaSuccUserLDAP': {'name': 'checkpoint_identity_awareness_iaSuccUserLDAP', 'auto_graph': False },
'iaUnSuccUserLDAP': {'name': 'checkpoint_identity_awareness_iaUnSuccUserLDAP', 'auto_graph': False },
'iaAuthUsers': {'name': 'checkpoint_identity_awareness_iaAuthUsers', 'auto_graph': False },
'iaAuthUsersADQuery': {'name': 'checkpoint_identity_awareness_iaAuthUsersADQuery', 'auto_graph': False },
'iaAuthUsersKerberos': {'name': 'checkpoint_identity_awareness_iaAuthUsersKerberos', 'auto_graph': False },
'iaAuthMachADQuery': {'name': 'checkpoint_identity_awareness_iaAuthMachADQuery', 'auto_graph': False },
'iaAuthMachKerberos': {'name': 'checkpoint_identity_awareness_iaAuthMachKerberos', 'auto_graph': False },
'iaAuthUsersPass': {'name': 'checkpoint_identity_awareness_iaAuthUsersPass', 'auto_graph': False },
'iaUnAuthUsers': {'name': 'checkpoint_identity_awareness_iaUnAuthUsers', 'auto_graph': False },
'iaLoggedInADQuery': {'name': 'checkpoint_identity_awareness_iaLoggedInADQuery', 'auto_graph': False },
'iaLoggedInAgent': {'name': 'checkpoint_identity_awareness_iaLoggedInAgent', 'auto_graph': False },
'iaTerminalServer': {'name': 'checkpoint_identity_awareness_iaTerminalServer', 'auto_graph': False},
'iaRemoteAccess': {'name': 'checkpoint_identity_awareness_iaRemoteAccess', 'auto_graph': False},
'iaLoggedInCaptivePortal': {'name': 'checkpoint_identity_awareness_iaLoggedInCaptivePortal', 'auto_graph': False },
'iaIdentityCollectorCiscoISE': {'name': 'checkpoint_identity_awareness_iaIdentityCollectorCiscoISE', 'auto_graph': False},
'iaIdentityWebAPI': {'name': 'checkpoint_identity_awareness_iaIdentityWebAPI', 'auto_graph': False},
'iaRADIUSAccounting': {'name': 'checkpoint_identity_awareness_iaRADIUSAccounting', 'auto_graph': False},
'iaIdentityCollectorActiveDirectory': {'name': 'checkpoint_identity_awareness_iaIdentityCollectorActiveDirectory', 'auto_graph': False},
'iaAntiSpoffProtection': {'name': 'checkpoint_identity_awareness_iaAntiSpoffProtection', 'auto_graph': False},
'iaDataTrans': {'name': 'checkpoint_identity_awareness_iaDataTrans', 'auto_graph': False},
}
graph_info.append({
graph_info['checkpoint_identity_awareness_login_attempts'] = {
'title': _('Check Point Identity Awareness login attempts'),
'metrics': [
('checkpoint_identity_awareness_iaUnSuccUserLoginPass', '-stack'),
......@@ -206,17 +177,31 @@ graph_info.append({
('checkpoint_identity_awareness_iaSuccMachLoginADQuery', 'stack'),
('checkpoint_identity_awareness_iaSuccUserLoginADQuery', 'stack'),
],
})
'optional_metrics': [
'checkpoint_identity_awareness_iaUnSuccUserLoginPass',
'checkpoint_identity_awareness_iaUnSuccMachLoginKerberos',
'checkpoint_identity_awareness_iaUnSuccUserLoginKerberos',
'checkpoint_identity_awareness_iaSuccUserLoginPass',
'checkpoint_identity_awareness_iaSuccMachLoginKerberos',
'checkpoint_identity_awareness_iaSuccUserLoginKerberos',
'checkpoint_identity_awareness_iaSuccMachLoginADQuery',
'checkpoint_identity_awareness_iaSuccUserLoginADQuery',
],
}
graph_info.append({
graph_info['checkpoint_identity_awareness_ldap_queries'] = {
'title': _('Check Point Identity Awareness LDAP queries'),
'metrics': [
('checkpoint_identity_awareness_iaUnSuccUserLDAP', '-area'),
('checkpoint_identity_awareness_iaSuccUserLDAP', 'area'),
],
})
'optional_metrics': [
'checkpoint_identity_awareness_iaUnSuccUserLDAP',
'checkpoint_identity_awareness_iaSuccUserLDAP',
]
}
graph_info.append({
graph_info['checkpoint_identity_awareness_auth_user_machine'] = {
'title': _('Check Point Identity Awareness authenticated/unauthenticated users/machines'),
'metrics': [
('checkpoint_identity_awareness_iaUnAuthUsers', 'stack'),
......@@ -227,9 +212,18 @@ graph_info.append({
('checkpoint_identity_awareness_iaAuthUsersADQuery', 'stack'),
('checkpoint_identity_awareness_iaAuthUsers', 'line'),
],
})
'optional_metrics': [
'checkpoint_identity_awareness_iaUnAuthUsers',
'checkpoint_identity_awareness_iaAuthUsersPass',
'checkpoint_identity_awareness_iaAuthMachKerberos',
'checkpoint_identity_awareness_iaAuthMachADQuery',
'checkpoint_identity_awareness_iaAuthUsersKerberos',
'checkpoint_identity_awareness_iaAuthUsersADQuery',
'checkpoint_identity_awareness_iaAuthUsers',
]
}
graph_info.append({
graph_info['checkpoint_identity_awareness_loggid_in_users'] = {
'title': _('Check Point Identity Awareness logged in users with'),
'metrics': [
('checkpoint_identity_awareness_iaLoggedInCaptivePortal', 'stack'),
......@@ -242,7 +236,18 @@ graph_info.append({
('checkpoint_identity_awareness_iaLoggedInAgent', 'stack'),
('checkpoint_identity_awareness_iaLoggedInADQuery', 'stack'),
],
})
'optional_metrics': [
'checkpoint_identity_awareness_iaLoggedInCaptivePortal',
'checkpoint_identity_awareness_iaRADIUSAccounting',
'checkpoint_identity_awareness_iaIdentityWebAPI',
'checkpoint_identity_awareness_iaIdentityCollectorActiveDirectory',
'checkpoint_identity_awareness_iaIdentityCollectorCiscoISE',
'checkpoint_identity_awareness_iaRemoteAccess',
'checkpoint_identity_awareness_iaTerminalServer',
'checkpoint_identity_awareness_iaLoggedInAgent',
'checkpoint_identity_awareness_iaLoggedInADQuery',
],
}
#graph_info.append({
# 'title': _('Check Point Identity Awareness users with an active Traffic Anti-Spoffing protection'),
......
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# License: GNU General Public License v2
#
......@@ -9,7 +9,27 @@
#
# Check_MK checkpoint_identity_awareness WATO plugin
#
ignorecounters = [
from cmk.gui.i18n import _
from cmk.gui.valuespec import (
Dictionary,
Integer,
TextAscii,
FixedValue,
ListChoice,
ListOf,
Tuple,
TextUnicode,
MonitoringState,
)
from cmk.gui.plugins.wato import (
CheckParameterRulespecWithItem,
rulespec_registry,
RulespecGroupCheckParametersNetworking,
)
_ignorecounters = [
# ('iaAuthUsers', 'Authenticated users and machines'), # will be used in perf-o-meter
('iaAuthUsersPass', 'Authenticated users by name and password'),
('iaAuthUsersADQuery', 'Authenticated users by ADQuery'),
......@@ -42,24 +62,27 @@ ignorecounters = [
('iaDataTrans', 'How much data did the gateway transmitted'),
]
register_check_parameters(subgroup_applications,
'checkpoint_identity_awareness',
_('Check Point Identity Awareness'),
Dictionary(
title=_('Check Point Identity Awareness status'),
elements=[
('ignore_counters',
ListChoice(
title=_('list of counters to ignore'),
label=_('list of counters to ignore'),
help=_('Counters to remove from performance data. '
'Metrics file (~/local/share/check_mk/web/plugins/metrics/checkpoint_identity_awareness.py) '
'graph definition needs to be adjusted.'),
choices=ignorecounters,
default_value=[],
)),
],
),
None,
match_type='dict',
)
def _parameter_valuespec_checkpoint_identity_awareness():
return Dictionary(
title=_('Check Point Identity Awareness status'),
elements=[
('ignore_counters',
ListChoice(
title=_('list of counters to ignore'),
help=_('Counters to remove from performance data.'),
choices=_ignorecounters,
default_value=[],
)),
],
)
rulespec_registry.register(
CheckParameterRulespecWithItem(
check_group_name='checkpoint_identity_awareness',
group=RulespecGroupCheckParametersNetworking,
match_type='dict',
parameter_valuespec=_parameter_valuespec_checkpoint_identity_awareness,
title=lambda: _('Check Point Identity Awareness'),
))
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