From 854ae9bc46abbc3461fa6332fedaf69a7c10b338 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Sun, 2 Oct 2022 14:53:40 +0200 Subject: [PATCH] update project --- agent_based/cisco_cellular_lte.py | 1 + agent_based/inv_cisco_cellular_lte.py | 4 +- checkman/cisco_cellular_lte | 50 ++++++-------------- cisco_cellular_lte.mkp | Bin 9995 -> 10810 bytes packages/cisco_cellular_lte | 3 +- web/plugins/views/inv_cisco_cellular_lte.py | 2 + 6 files changed, 23 insertions(+), 37 deletions(-) diff --git a/agent_based/cisco_cellular_lte.py b/agent_based/cisco_cellular_lte.py index f62f652..449c72d 100644 --- a/agent_based/cisco_cellular_lte.py +++ b/agent_based/cisco_cellular_lte.py @@ -28,6 +28,7 @@ # IMEI -> International Mobile Equipment Identifier # ICCID -> Integrated Circuit Card ID # MSISDN -> Mobile Subscriber Integrated Services Digital Network Number +# FSN -> Factory Serial Number # RSSI -> Received Signal Strength Indicator # RSRP -> Reference Signal Received Power # RSRQ -> Reference Signal Received Quality diff --git a/agent_based/inv_cisco_cellular_lte.py b/agent_based/inv_cisco_cellular_lte.py index 1323225..0da92db 100644 --- a/agent_based/inv_cisco_cellular_lte.py +++ b/agent_based/inv_cisco_cellular_lte.py @@ -343,7 +343,7 @@ def parse_inv_cisco_cellular_lte(string_table: List[StringByteTable]): apn=apn, ) - for oid_end, service_type, imsi, imei, iccid, msisdn, country, network, mcc, current_band in modem_table: + for oid_end, service_type, imsi, imei, iccid, msisdn, fsn, country, network, mcc, current_band in modem_table: if not country and mcc: country = _mobile_country_code.get(mcc, (None, None))[0] @@ -355,6 +355,7 @@ def parse_inv_cisco_cellular_lte(string_table: List[StringByteTable]): 'inventory_columns': { 'imsi': imsi if imsi else None, 'msisdn': msisdn if msisdn else None, + 'fsn': fsn if fsn else None, 'country': country if country else None, 'network': network if network else None, 'current_band': _cisco_gsm_band.get(current_band, f'Unknown {current_band}'), @@ -400,6 +401,7 @@ register.snmp_section( '3.1.1.2', # c3gImei '3.1.1.3', # c3gIccId '3.1.1.4', # c3gMsisdn + '3.1.1.5', # c3gFsn '3.2.1.8', # c3gGsmCountry '3.2.1.9', # c3gGsmNetwork '3.2.1.10', # c3gGsmMcc diff --git a/checkman/cisco_cellular_lte b/checkman/cisco_cellular_lte index 08ef898..b38a3a7 100644 --- a/checkman/cisco_cellular_lte +++ b/checkman/cisco_cellular_lte @@ -1,45 +1,25 @@ -title: Dummy check man page - used as template for new check manuals -agents: linux, windows, aix, solaris, hpux, vms, freebsd, snmp -catalog: see modules/catalog.py for possible values +title: Cisco cellular LTE +agents: snmp +catalog: hw/network/cisco license: GPL -distribution: check_mk +distribution: https://thl-cmk.hopto.org description: - Describe here: (1) what the check actually does, (2) under which - circumstances it goes warning/critical, (3) which devices are supported - by the check, (4) if the check requires a separated plugin or - tool or separate configuration on the target host. + This check plugin will monitor 2G/3G/4G wireless modems and there associated connections. By default it will only + discover cellular modems with a SIM card/connectin attached. It was tested with the integrated modem of the + Cisco ISR1100 series routers and the with a NIM in a Cisco ISR4451. Each modem can have up to two connections at + the same time (over one SIM-card). The integrated modems and also newer NIM modules have dual SIM-card capabilities. + Dual SIM-Cards can be usesd in a redundancy failover manner. Only one SIM-Card will be active at any given time. -item: - Describe the syntax and meaning of the check's item here. Provide all - information one needs if coding a manual check with {checks +=} in {main.mk}. - Give an example. If the check uses {None} as sole item, - then leave out this section. -examples: - # Give examples for configuration in {main.mk} here. If the check has - # configuration variable, then give example for them here. + There is one WATO rule for the discovery and one for the service it self. You will find both rules under + the label "Cisco cellular LTE". - # set default levels to 40 and 60 percent: - foo_default_values = (40, 60) - # another configuration variable here: - inventory_foo_filter = [ "superfoo", "superfoo2" ] + In the discovery rule you can decide to discover cellular interfaces without attched SIM-card/connection also. -perfdata: - Describe precisely the number and meaning of performance variables - the check sends. If it outputs no performance data, then leave out this - section. +item: + By default the item is the name of the celluar interface used i.e: Ce0/2/0. inventory: - Describe how the inventory for the check works. Which items - will it find? Describe the influence of check specific - configuration parameters to the inventory. - -[parameters] -foofirst(int): describe the first parameter here (if parameters are grouped - as tuple) -fooother(string): describe another parameter here. + The discovery will find all Cisco devices identified by the sysObjectID and there cellular connections. -[configuration] -foo_default_levels(int, int): Describe global configuration variable of - foo here. Important: also tell the user how they are preset. diff --git a/cisco_cellular_lte.mkp b/cisco_cellular_lte.mkp index dd38d7eb17bf06563a878350a36dd4d4dd1d8f0c..8856b2e231159e3f9908b6007de6cf5a07aa4eeb 100644 GIT binary patch literal 10810 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 EFTVRJTL1t6 literal 9995 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 diff --git a/packages/cisco_cellular_lte b/packages/cisco_cellular_lte index e1783f5..b197fed 100644 --- a/packages/cisco_cellular_lte +++ b/packages/cisco_cellular_lte @@ -4,11 +4,12 @@ 'download_url': 'https://thl-cmk.hopto.org', 'files': {'agent_based': ['cisco_cellular_lte.py', 'inv_cisco_cellular_lte.py'], + 'checkman': ['cisco_cellular_lte'], 'web': ['plugins/wato/cisco_cellular_lte.py', 'plugins/metrics/cisco_cellular_lte.py', 'plugins/views/inv_cisco_cellular_lte.py']}, 'name': 'cisco_cellular_lte', - 'num_files': 5, + 'num_files': 6, 'title': 'Cisco cellular LTE', 'version': '20220920.v0.0.1', 'version.min_required': '2.0.0', diff --git a/web/plugins/views/inv_cisco_cellular_lte.py b/web/plugins/views/inv_cisco_cellular_lte.py index 2d3604a..61170d7 100644 --- a/web/plugins/views/inv_cisco_cellular_lte.py +++ b/web/plugins/views/inv_cisco_cellular_lte.py @@ -23,6 +23,7 @@ inventory_displayhints.update({ 'imei', 'iccid', 'imsi', + 'fsn', 'network', 'country', 'apn', @@ -38,6 +39,7 @@ inventory_displayhints.update({ 'short': _('MSISDN'), 'title': _('Mobile Subscriber Integrated Services Digital Network Number (MSISDN') }, + '.networking.cellular:*.fsn': {'short': _('FSN'), 'title': _('Factory serial Number (FSN)')}, '.networking.cellular:*.country': {'title': _('Country'), }, '.networking.cellular:*.network': {'title': _('Network'), }, '.networking.cellular:*.current_band': {'title': _('Current band'), }, -- GitLab