From 2757e8617e577dbb930b4a206d8cc84f15f0bf69 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Sun, 11 Sep 2022 21:57:16 +0200 Subject: [PATCH] update project --- agent_based/bgp_peer.py | 97 ++++++++++++++++++---------------- agent_based/inv_bgp_peer.py | 2 +- agent_based/utils/bgp_peer.py | 26 +++++---- bgp_peer.mkp | Bin 15223 -> 15376 bytes packages/bgp_peer | 2 +- 5 files changed, 69 insertions(+), 58 deletions(-) diff --git a/agent_based/bgp_peer.py b/agent_based/bgp_peer.py index a36a35f..58c4bbe 100644 --- a/agent_based/bgp_peer.py +++ b/agent_based/bgp_peer.py @@ -5,7 +5,7 @@ # Author: thl-cmk[at]outlook[dot]com # URL : https://thl-cmk.hopto.org -# Date : 2021-10-25 +# Date : 2021-08-20 # based on the BGP peer plugin by Thomas Wollner (tw@wollner-net.de) # @@ -23,7 +23,8 @@ # 2022-05-11: changed bgp_get_peer_entry to get proper parameters instead of Nontransparent list # added remote_as to BgpPeerItem # 2022-09-05: added missing wato parameters to register.check_plugin check_default_parameters -# +# 2022-09-10: made more reliable on limited data (fsm_established_time and admin_state) (THX to martin[dot]pechstein[at]posteo[dot]de) +# 2022-09-11: optimized internal flow: > alias > not found > admin down > peer state > ... # Example Agent Output: # BGP4-MIB @@ -129,19 +130,23 @@ def check_bgp_peer(item, params, section: Dict[str, BgpPeer]) -> CheckResult: yield Result(state=State(peer_not_found_state), summary='Item not found in SNMP data') return - if not peer.admin_state == 2: # not start - yield Result(state=State(params['admindown']), notice=f'Admin state: {peer.peer_statestr}') - else: - if peer.peer_state == 6: # established - yield from check_levels( - value=peer.fsm_established_time, - label='Uptime', - levels_lower=params['minuptime'], - render_func=render.timespan, - metric_name='bgp_peer_fsmestablishedtime', - ) + if peer.admin_state == 1: # shutdown + yield Result(state=State(params['admindown']), summary=f'Admin state: {peer.peer_statestr}') + return + + yield Result(state=State(neighborstate.get(str(peer.peer_state))), notice=f'Peer state: {peer.peer_statestr}') + + if not peer.peer_state == 6: # not established + return - yield Result(state=State(neighborstate.get(str(peer.peer_state))), notice=f'Peer state: {peer.peer_statestr}') + if peer.fsm_established_time: # fms_time not None + yield from check_levels( + value=peer.fsm_established_time, + label='Uptime', + levels_lower=params['minuptime'], + render_func=render.timespan, + metric_name='bgp_peer_fsmestablishedtime', + ) if peer.peer_unavail_reason != 0: # huawei peer unavailable state yield Result(state=State.CRIT, notice=F'Peer unavailable reason: {peer.peer_unavail_reason_str}') @@ -152,39 +157,37 @@ def check_bgp_peer(item, params, section: Dict[str, BgpPeer]) -> CheckResult: notice='Prefix limit/warn threshold not configured on the device.', ) - if peer.admin_state == 2: # no perfdata if admin shutdown - acceptedprefixes = peer.accepted_prefixes - prefixadminlimit = peer.prefix_admin_limit - prefixthreshold = peer.prefix_threshold - warnthreshold = None - - if prefixadminlimit is not None and prefixthreshold is not None: - warnthreshold = int( - prefixadminlimit / 100.0 * prefixthreshold) # use float (100.0) to get xx.xx in division - if acceptedprefixes is not None and peer.peer_state == 6: # peer established and prefixes accepted - yield from check_levels( - value=acceptedprefixes, - metric_name='bgp_peer_acceptedprefixes', - levels_upper=params.get('accepted_prefixes_upper_levels', (warnthreshold, prefixadminlimit)), - levels_lower=params.get('accepted_prefixes_lower_levels'), - label='Prefixes accepted', - render_func=lambda v: f'{v}' - ) - - now_time = time.time() - value_store = get_value_store() - - for entry in peer.metric_rate: - key, value = entry - try: - value = get_rate(value_store, f'{key}', now_time, value, raise_overflow=True) - except GetRateError: - value = 0 - yield Metric(name=f'bgp_peer_{key}', value=value, boundaries=(0, None)) - - for entry in peer.metric_count: - key, value = entry - yield Metric(name=f'bgp_peer_{key}', value=value, boundaries=(0, None)) + acceptedprefixes = peer.accepted_prefixes + prefixadminlimit = peer.prefix_admin_limit + prefixthreshold = peer.prefix_threshold + warnthreshold = None + + if prefixadminlimit is not None and prefixthreshold is not None: + warnthreshold = int(prefixadminlimit / 100.0 * prefixthreshold) # use float (100.0) to get xx.xx in division + if acceptedprefixes is not None and peer.peer_state == 6: # peer established and prefixes accepted + yield from check_levels( + value=acceptedprefixes, + metric_name='bgp_peer_acceptedprefixes', + levels_upper=params.get('accepted_prefixes_upper_levels', (warnthreshold, prefixadminlimit)), + levels_lower=params.get('accepted_prefixes_lower_levels'), + label='Prefixes accepted', + render_func=lambda v: f'{v}' + ) + + now_time = time.time() + value_store = get_value_store() + + for entry in peer.metric_rate: + key, value = entry + try: + value = get_rate(value_store, f'{key}', now_time, value, raise_overflow=True) + except GetRateError: + value = 0 + yield Metric(name=f'bgp_peer_{key}', value=value, boundaries=(0, None)) + + for entry in peer.metric_count: + key, value = entry + yield Metric(name=f'bgp_peer_{key}', value=value, boundaries=(0, None)) register.snmp_section( diff --git a/agent_based/inv_bgp_peer.py b/agent_based/inv_bgp_peer.py index d273b4b..0262c14 100644 --- a/agent_based/inv_bgp_peer.py +++ b/agent_based/inv_bgp_peer.py @@ -60,7 +60,7 @@ def parse_inv_bgp_peer(string_table: List[StringByteTable]): 'local_as': local_as, 'local_id': local_id, 'bgp_type': get_bgp_type(local_as, remote_as), - 'fsm_established_time': int(fsm_established_time), + 'fsm_established_time': int(fsm_established_time) if fsm_established_time.isdigit() else None, 'peer_state': 1 if state == '6' else 2, # adjust to match if_oper_status for inventory painter 'last_error_code': bgp_error_code_as_hex(last_error), 'last_error': bgp_error_as_string(last_error), diff --git a/agent_based/utils/bgp_peer.py b/agent_based/utils/bgp_peer.py index 691c144..803d1c2 100644 --- a/agent_based/utils/bgp_peer.py +++ b/agent_based/utils/bgp_peer.py @@ -18,6 +18,10 @@ # 2022-05-12: merged bgp_get_ip_address_from_oid with bgp_render_ip_address # changed IPv6 address format to lower case as required by rfc5952 section-4.3 (this affects IPv6 items) +# +# https://ftp.ripe.net/ripe/asnames/asn.txt AS Name List +# + import requests import json import ipaddress @@ -36,12 +40,12 @@ class BgpPeerItem(TypedDict): class BgpPeer: peer_state: int peer_statestr: str - admin_state: int admin_statestr: str - fsm_established_time: int metric_rate: List[Tuple[str, int]] metric_count: List[Tuple[str, int]] item: BgpPeerItem + admin_state: Optional[int] + fsm_established_time: Optional[int] device_admin_limit: Optional[bool] prefix_admin_limit: Optional[int] prefix_threshold: Optional[int] @@ -60,12 +64,12 @@ class InvBgpPeer(TypedDict): local_as: str local_id: str bgp_type: str - fsm_established_time: int peer_state: int last_error_code: str last_error: str status_columns: Dict[str, str] address_family: Optional[str] + fsm_established_time: Optional[int] def sec2hr(seconds): @@ -116,7 +120,11 @@ def bgp_error_code_as_hex(error_code: List[int]): def bgp_error_as_string(error_code: List[int]): # byte1, byte2 = ByteToHex(bytestring).split() - main_code, sub_code = error_code + try: + main_code, sub_code = error_code + except ValueError: + return 'Unknown' + names = {} names[0] = {0: 'NO ERROR'} names[1] = { @@ -206,9 +214,9 @@ def bgp_get_peer_entry( remote_addr: str, remote_as: str, peer_state: str, - admin_state: str, fsm_established_transitions: str, - fsm_established_time: str, + fsm_established_time: Optional[str], + admin_state: Optional[str], in_updates: Optional[str], out_updates: Optional[str], in_messages: Optional[str], @@ -219,9 +227,9 @@ def bgp_get_peer_entry( bgp_peer = BgpPeer( peer_state=int(peer_state), peer_statestr=bgp_peerstate(int(peer_state)), - admin_state=int(admin_state), - admin_statestr=bgp_adminstate(int(admin_state)), - fsm_established_time=int(fsm_established_time), + admin_state=int(admin_state) if admin_state.isdigit() else None, + admin_statestr=bgp_adminstate(int(admin_state) if admin_state.isdigit() else None), + fsm_established_time=int(fsm_established_time) if fsm_established_time.isdigit() else None, metric_count=[], metric_rate=[], item={ diff --git a/bgp_peer.mkp b/bgp_peer.mkp index ea9e93bd0e0f285d3b61e0748cd6da3133a1a9c8..d0b078c448371845ebd4ce3f5c2e79fd972788c5 100644 GIT binary patch literal 15376 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 Dq`9&y literal 15223 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%0DFHCbZw*@VPimZ>Ey?UMeh~tZ` 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 awnF_s2rS$y7kR8ddbV^4bU^07K>rJ96R5!e diff --git a/packages/bgp_peer b/packages/bgp_peer index cedf208..1bb1006 100644 --- a/packages/bgp_peer +++ b/packages/bgp_peer @@ -20,7 +20,7 @@ 'name': 'bgp_peer', 'num_files': 8, 'title': 'BGP Peer State Check', - 'version': '220906.v1.8a', + 'version': '20220911.v1.8b', 'version.min_required': '2.0.0', 'version.packaged': '2021.09.20', 'version.usable_until': None} \ No newline at end of file -- GitLab