From 53927d792c1006fc71dcaad2bbc0ace2981cc1b3 Mon Sep 17 00:00:00 2001 From: PavloSkliarenko <78343937+PavloSkliarenko@users.noreply.github.com> Date: Wed, 8 Nov 2023 17:57:16 +0400 Subject: [PATCH] MikroTik RouterOS 'log print detail without-paging' template (#1514) --- ntc_templates/templates/index | 1 + ...os_log_print_detail_without-paging.textfsm | 23 ++++++ ...uteros_log_print_detail_without-paging.raw | 15 ++++ ...uteros_log_print_detail_without-paging.yml | 72 +++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 ntc_templates/templates/mikrotik_routeros_log_print_detail_without-paging.textfsm create mode 100644 tests/mikrotik_routeros/log_print_detail_without-paging/mikrotik_routeros_log_print_detail_without-paging.raw create mode 100644 tests/mikrotik_routeros/log_print_detail_without-paging/mikrotik_routeros_log_print_detail_without-paging.yml diff --git a/ntc_templates/templates/index b/ntc_templates/templates/index index 3956efede9..4a36a42b86 100644 --- a/ntc_templates/templates/index +++ b/ntc_templates/templates/index @@ -601,6 +601,7 @@ mikrotik_routeros_interface_print_terse_without-paging.textfsm, .*, mikrotik_rou mikrotik_routeros_ip_firewall_address-list_print_terse.textfsm, .*, mikrotik_routeros, [[/]]ip(v6)? firewall address-list print terse mikrotik_routeros_snmp_community_print_without-paging.textfsm, .*, mikrotik_routeros, [[/]]snmp community print without-paging mikrotik_routeros_ipv6_neighbor_print_without-paging.textfsm, .*, mikrotik_routeros, [[/]]ipv6 neighbor print without-paging +mikrotik_routeros_log_print_detail_without-paging.textfsm, .*, mikrotik_routeros, [[/]]log p[[rint]] d[[etail]] wi[[thout-paging]] mikrotik_routeros_ip_arp_print_without-paging.textfsm, .*, mikrotik_routeros, [[/]]ip arp print without-paging mikrotik_routeros_system_routerboard_print.textfsm, .*, mikrotik_routeros, [[/]]system routerboard print mikrotik_routeros_ip_route_print_terse.textfsm, .*, mikrotik_routeros, [[/]]ip(v6)? route print terse diff --git a/ntc_templates/templates/mikrotik_routeros_log_print_detail_without-paging.textfsm b/ntc_templates/templates/mikrotik_routeros_log_print_detail_without-paging.textfsm new file mode 100644 index 0000000000..c66a2eb59b --- /dev/null +++ b/ntc_templates/templates/mikrotik_routeros_log_print_detail_without-paging.textfsm @@ -0,0 +1,23 @@ +Value MONTH (\w{3}) +Value DAY (\d{2}) +Value YEAR (\d{4}) +Value HOUR (\d{2}) +Value MINUTE (\d{2}) +Value SECOND (\d{2}) +Value TOPIC (\S+) +Value MESSAGE (.+) +# Aggregating values +Value DATETIME ((\w{3}/\d{2}(/\d{4})?\s+)?\d{2}:\d{2}:\d{2}) +Value WHOLE_MESSAGE (.+?) + +Start + # Check the general structure to skip all the data that are not log messages + ^\s*time=${DATETIME}\s+${WHOLE_MESSAGE}\s*$$ -> LogMessages + +LogMessages + # Here we do more general parsing to get the log messages' time and text as a whole + ^\s*time=${DATETIME}\s+${WHOLE_MESSAGE}\s*$$ -> Continue + # and then extract specific values + ^\s*time=(${MONTH}/${DAY}(/${YEAR})?\s+)?${HOUR}:${MINUTE}:${SECOND}\s+topics=${TOPIC}\s+message=\"${MESSAGE}\"\s*$$ -> Record + ^\s*$$ + ^. -> Error diff --git a/tests/mikrotik_routeros/log_print_detail_without-paging/mikrotik_routeros_log_print_detail_without-paging.raw b/tests/mikrotik_routeros/log_print_detail_without-paging/mikrotik_routeros_log_print_detail_without-paging.raw new file mode 100644 index 0000000000..49a9917a37 --- /dev/null +++ b/tests/mikrotik_routeros/log_print_detail_without-paging/mikrotik_routeros_log_print_detail_without-paging.raw @@ -0,0 +1,15 @@ + time=jul/19 14:27:01 topics=script,info message="Ping testA: Packets Sent = 18, Packets Loss = 10 % " + + time=jul/19 16:27:01 topics=script,info message="Ping testA: Packets Sent = 18, Packets Loss = 10 % " + + time=jul/19 16:37:01 topics=script,info message="Ping testA: Packets Sent = 12, Packets Loss = 40 % " + + time=jul/19 19:17:01 topics=script,info message="Ping testA: Packets Sent = 17, Packets Loss = 15 % " + + time=jul/19 03:05:02 topics=script,warning message="Connection via Box bad. Reset USB Modem" + + time=jul/20 03:07:40 topics=interface,info message="lte1 link down" + + time=jul/20 03:07:46 topics=interface,info message="lte1 link up" + + time=jul/20 03:07:46 topics=dhcp,info message="dhcp-client on lte1 got IP address 192.168.1.2" diff --git a/tests/mikrotik_routeros/log_print_detail_without-paging/mikrotik_routeros_log_print_detail_without-paging.yml b/tests/mikrotik_routeros/log_print_detail_without-paging/mikrotik_routeros_log_print_detail_without-paging.yml new file mode 100644 index 0000000000..f4cf1222df --- /dev/null +++ b/tests/mikrotik_routeros/log_print_detail_without-paging/mikrotik_routeros_log_print_detail_without-paging.yml @@ -0,0 +1,72 @@ +--- +parsed_sample: + - month: "jul" + day: "19" + year: "" + hour: "16" + minute: "27" + second: "01" + topic: "script,info" + message: "Ping testA: Packets Sent = 18, Packets Loss = 10 % " + datetime: "jul/19 16:27:01" + whole_message: "topics=script,info message=\"Ping testA: Packets Sent = 18, Packets Loss = 10 % \"" + - month: "jul" + day: "19" + year: "" + hour: "16" + minute: "37" + second: "01" + topic: "script,info" + message: "Ping testA: Packets Sent = 12, Packets Loss = 40 % " + datetime: "jul/19 16:37:01" + whole_message: "topics=script,info message=\"Ping testA: Packets Sent = 12, Packets Loss = 40 % \"" + - month: "jul" + day: "19" + year: "" + hour: "19" + minute: "17" + second: "01" + topic: "script,info" + message: "Ping testA: Packets Sent = 17, Packets Loss = 15 % " + datetime: "jul/19 19:17:01" + whole_message: "topics=script,info message=\"Ping testA: Packets Sent = 17, Packets Loss = 15 % \"" + - month: "jul" + day: "19" + year: "" + hour: "03" + minute: "05" + second: "02" + topic: "script,warning" + message: "Connection via Box bad. Reset USB Modem" + datetime: "jul/19 03:05:02" + whole_message: "topics=script,warning message=\"Connection via Box bad. Reset USB Modem\"" + - month: "jul" + day: "20" + year: "" + hour: "03" + minute: "07" + second: "40" + topic: "interface,info" + message: "lte1 link down" + datetime: "jul/20 03:07:40" + whole_message: "topics=interface,info message=\"lte1 link down\"" + - month: "jul" + day: "20" + year: "" + hour: "03" + minute: "07" + second: "46" + topic: "interface,info" + message: "lte1 link up" + datetime: "jul/20 03:07:46" + whole_message: "topics=interface,info message=\"lte1 link up\"" + - month: "jul" + day: "20" + year: "" + hour: "03" + minute: "07" + second: "46" + topic: "dhcp,info" + message: "dhcp-client on lte1 got IP address 192.168.1.2" + datetime: "jul/20 03:07:46" + whole_message: "topics=dhcp,info message=\"dhcp-client on lte1 got IP address 192.168.1.2\""