From 937d370576d30eb6743e4733eda8e3882172e6ac Mon Sep 17 00:00:00 2001 From: khramshinr Date: Thu, 17 Oct 2024 17:12:06 +0600 Subject: T6641: Add vyos-network-event-logger Service The service parses and logs network events for improved monitoring and diagnostics. Supported event types include: - `RTM_NEWROUTE`, `RTM_DELROUTE` - `RTM_NEWLINK`, `RTM_DELLINK` - `RTM_NEWADDR`, `RTM_DELADDR` - `RTM_NEWNEIGH`, `RTM_DELNEIGH`, `RTM_GETNEIGH` - `RTM_NEWRULE`, `RTM_DELRULE` Added operational mode commands for filtered log retrieval: - `show log network-event `: Retrieve logs filtered by event type and interface. - `show interfaces event-log `: Display interface-specific logs filtered by event type. --- .../include/log/network-event-type-interface.xml.i | 11 ++++ .../include/show-interface-type-event-log.xml.i | 40 ++++++++++++++ op-mode-definitions/show-interfaces-bonding.xml.in | 1 + op-mode-definitions/show-interfaces-bridge.xml.in | 1 + op-mode-definitions/show-interfaces-dummy.xml.in | 1 + .../show-interfaces-ethernet.xml.in | 1 + op-mode-definitions/show-interfaces-geneve.xml.in | 1 + op-mode-definitions/show-interfaces-input.xml.in | 1 + op-mode-definitions/show-interfaces-l2tpv3.xml.in | 1 + .../show-interfaces-loopback.xml.in | 1 + op-mode-definitions/show-interfaces-macsec.xml.in | 3 ++ op-mode-definitions/show-interfaces-pppoe.xml.in | 1 + .../show-interfaces-pseudo-ethernet.xml.in | 1 + op-mode-definitions/show-interfaces-sstpc.xml.in | 1 + op-mode-definitions/show-interfaces-tunnel.xml.in | 1 + .../show-interfaces-virtual-ethernet.xml.in | 1 + op-mode-definitions/show-interfaces-vti.xml.in | 1 + op-mode-definitions/show-interfaces-vxlan.xml.in | 1 + .../show-interfaces-wireguard.xml.in | 1 + .../show-interfaces-wireless.xml.in | 1 + op-mode-definitions/show-interfaces-wwan.xml.in | 1 + op-mode-definitions/show-log.xml.in | 62 ++++++++++++++++++++++ 22 files changed, 134 insertions(+) create mode 100644 op-mode-definitions/include/log/network-event-type-interface.xml.i create mode 100644 op-mode-definitions/include/show-interface-type-event-log.xml.i (limited to 'op-mode-definitions') diff --git a/op-mode-definitions/include/log/network-event-type-interface.xml.i b/op-mode-definitions/include/log/network-event-type-interface.xml.i new file mode 100644 index 000000000..2d781223c --- /dev/null +++ b/op-mode-definitions/include/log/network-event-type-interface.xml.i @@ -0,0 +1,11 @@ + + + + Show log for specific interface + + + + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service | grep "$(echo "\[$4\]" | tr '[:lower:]' '[:upper:]')" | grep "\b$6\b" + + diff --git a/op-mode-definitions/include/show-interface-type-event-log.xml.i b/op-mode-definitions/include/show-interface-type-event-log.xml.i new file mode 100644 index 000000000..c69073fda --- /dev/null +++ b/op-mode-definitions/include/show-interface-type-event-log.xml.i @@ -0,0 +1,40 @@ + + + + Show network interface change event log + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep "\b$4\b" + + + + Show log for route events + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep "\b$4\b" | grep -i "\[$6\]" + + + + Show log for network link events + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep "\b$4\b" | grep -i "\[$6\]" + + + + Show log for network address events + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep "\b$4\b" | grep -i "\[$6\]" + + + + Show log for neighbor table events + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep "\b$4\b" | grep -i "\[$6\]" + + + + Show log for PBR rule change events + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep "\b$4\b" | grep -i "\[$6\]" + + + + diff --git a/op-mode-definitions/show-interfaces-bonding.xml.in b/op-mode-definitions/show-interfaces-bonding.xml.in index e2950331b..0abb7cd5a 100644 --- a/op-mode-definitions/show-interfaces-bonding.xml.in +++ b/op-mode-definitions/show-interfaces-bonding.xml.in @@ -67,6 +67,7 @@ + #include diff --git a/op-mode-definitions/show-interfaces-bridge.xml.in b/op-mode-definitions/show-interfaces-bridge.xml.in index dc813682d..998dacd38 100644 --- a/op-mode-definitions/show-interfaces-bridge.xml.in +++ b/op-mode-definitions/show-interfaces-bridge.xml.in @@ -19,6 +19,7 @@ ${vyos_op_scripts_dir}/interfaces.py show_summary --intf-name="$4" --intf-type=bridge + #include diff --git a/op-mode-definitions/show-interfaces-dummy.xml.in b/op-mode-definitions/show-interfaces-dummy.xml.in index b8ec7da91..18f21e97e 100644 --- a/op-mode-definitions/show-interfaces-dummy.xml.in +++ b/op-mode-definitions/show-interfaces-dummy.xml.in @@ -19,6 +19,7 @@ ${vyos_op_scripts_dir}/interfaces.py show_summary --intf-name="$4" --intf-type=dummy + #include diff --git a/op-mode-definitions/show-interfaces-ethernet.xml.in b/op-mode-definitions/show-interfaces-ethernet.xml.in index 09f0b3933..8a23455bf 100644 --- a/op-mode-definitions/show-interfaces-ethernet.xml.in +++ b/op-mode-definitions/show-interfaces-ethernet.xml.in @@ -68,6 +68,7 @@ + #include diff --git a/op-mode-definitions/show-interfaces-geneve.xml.in b/op-mode-definitions/show-interfaces-geneve.xml.in index d3d188031..b5fe84ca7 100644 --- a/op-mode-definitions/show-interfaces-geneve.xml.in +++ b/op-mode-definitions/show-interfaces-geneve.xml.in @@ -19,6 +19,7 @@ ${vyos_op_scripts_dir}/interfaces.py show_summary --intf-name="$4" --intf-type=geneve + #include diff --git a/op-mode-definitions/show-interfaces-input.xml.in b/op-mode-definitions/show-interfaces-input.xml.in index e5d420056..c9856f77f 100644 --- a/op-mode-definitions/show-interfaces-input.xml.in +++ b/op-mode-definitions/show-interfaces-input.xml.in @@ -19,6 +19,7 @@ ${vyos_op_scripts_dir}/interfaces.py show_summary --intf-name="$4" --intf-type=input + #include diff --git a/op-mode-definitions/show-interfaces-l2tpv3.xml.in b/op-mode-definitions/show-interfaces-l2tpv3.xml.in index 2d165171c..88b73d7d7 100644 --- a/op-mode-definitions/show-interfaces-l2tpv3.xml.in +++ b/op-mode-definitions/show-interfaces-l2tpv3.xml.in @@ -19,6 +19,7 @@ ${vyos_op_scripts_dir}/interfaces.py show_summary --intf-name="$4" --intf-type=l2tpv3 + #include diff --git a/op-mode-definitions/show-interfaces-loopback.xml.in b/op-mode-definitions/show-interfaces-loopback.xml.in index d341a6359..467e1a13d 100644 --- a/op-mode-definitions/show-interfaces-loopback.xml.in +++ b/op-mode-definitions/show-interfaces-loopback.xml.in @@ -19,6 +19,7 @@ ${vyos_op_scripts_dir}/interfaces.py show_summary --intf-name="$4" --intf-type=loopback + #include diff --git a/op-mode-definitions/show-interfaces-macsec.xml.in b/op-mode-definitions/show-interfaces-macsec.xml.in index 28264d252..640031b77 100644 --- a/op-mode-definitions/show-interfaces-macsec.xml.in +++ b/op-mode-definitions/show-interfaces-macsec.xml.in @@ -29,6 +29,9 @@ ip macsec show $4 + + #include + diff --git a/op-mode-definitions/show-interfaces-pppoe.xml.in b/op-mode-definitions/show-interfaces-pppoe.xml.in index 1c6e0b83e..c1f502cb3 100644 --- a/op-mode-definitions/show-interfaces-pppoe.xml.in +++ b/op-mode-definitions/show-interfaces-pppoe.xml.in @@ -28,6 +28,7 @@ if [ -d "/sys/class/net/$4" ]; then /usr/sbin/pppstats "$4"; fi + #include diff --git a/op-mode-definitions/show-interfaces-pseudo-ethernet.xml.in b/op-mode-definitions/show-interfaces-pseudo-ethernet.xml.in index 4ab2a5fbb..a9e4257ce 100644 --- a/op-mode-definitions/show-interfaces-pseudo-ethernet.xml.in +++ b/op-mode-definitions/show-interfaces-pseudo-ethernet.xml.in @@ -19,6 +19,7 @@ ${vyos_op_scripts_dir}/interfaces.py show_summary --intf-name="$4" --intf-type=pseudo-ethernet + #include diff --git a/op-mode-definitions/show-interfaces-sstpc.xml.in b/op-mode-definitions/show-interfaces-sstpc.xml.in index 307276f72..3bd7a8247 100644 --- a/op-mode-definitions/show-interfaces-sstpc.xml.in +++ b/op-mode-definitions/show-interfaces-sstpc.xml.in @@ -28,6 +28,7 @@ if [ -d "/sys/class/net/$4" ]; then /usr/sbin/pppstats "$4"; fi + #include diff --git a/op-mode-definitions/show-interfaces-tunnel.xml.in b/op-mode-definitions/show-interfaces-tunnel.xml.in index b99b0cbb2..579b173cb 100644 --- a/op-mode-definitions/show-interfaces-tunnel.xml.in +++ b/op-mode-definitions/show-interfaces-tunnel.xml.in @@ -19,6 +19,7 @@ ${vyos_op_scripts_dir}/interfaces.py show_summary --intf-name="$4" --intf-type=tunnel + #include diff --git a/op-mode-definitions/show-interfaces-virtual-ethernet.xml.in b/op-mode-definitions/show-interfaces-virtual-ethernet.xml.in index 18ae806b7..4112a17af 100644 --- a/op-mode-definitions/show-interfaces-virtual-ethernet.xml.in +++ b/op-mode-definitions/show-interfaces-virtual-ethernet.xml.in @@ -19,6 +19,7 @@ ${vyos_op_scripts_dir}/interfaces.py show_summary --intf-name="$4" --intf-type=virtual-ethernet + #include diff --git a/op-mode-definitions/show-interfaces-vti.xml.in b/op-mode-definitions/show-interfaces-vti.xml.in index ae5cfeb9c..d13b3e7cc 100644 --- a/op-mode-definitions/show-interfaces-vti.xml.in +++ b/op-mode-definitions/show-interfaces-vti.xml.in @@ -19,6 +19,7 @@ ${vyos_op_scripts_dir}/interfaces.py show_summary --intf-name="$4" --intf-type=vti + #include diff --git a/op-mode-definitions/show-interfaces-vxlan.xml.in b/op-mode-definitions/show-interfaces-vxlan.xml.in index fd729b986..89c8d075b 100644 --- a/op-mode-definitions/show-interfaces-vxlan.xml.in +++ b/op-mode-definitions/show-interfaces-vxlan.xml.in @@ -19,6 +19,7 @@ ${vyos_op_scripts_dir}/interfaces.py show_summary --intf-name="$4" --intf-type=vxlan + #include diff --git a/op-mode-definitions/show-interfaces-wireguard.xml.in b/op-mode-definitions/show-interfaces-wireguard.xml.in index 0e61ccd74..d86152a21 100644 --- a/op-mode-definitions/show-interfaces-wireguard.xml.in +++ b/op-mode-definitions/show-interfaces-wireguard.xml.in @@ -43,6 +43,7 @@ sudo ${vyos_op_scripts_dir}/interfaces_wireguard.py show_summary --intf-name="$4" + #include diff --git a/op-mode-definitions/show-interfaces-wireless.xml.in b/op-mode-definitions/show-interfaces-wireless.xml.in index 09c9a7895..b0a1502de 100644 --- a/op-mode-definitions/show-interfaces-wireless.xml.in +++ b/op-mode-definitions/show-interfaces-wireless.xml.in @@ -73,6 +73,7 @@ + #include diff --git a/op-mode-definitions/show-interfaces-wwan.xml.in b/op-mode-definitions/show-interfaces-wwan.xml.in index 3682282a3..2301b32d0 100644 --- a/op-mode-definitions/show-interfaces-wwan.xml.in +++ b/op-mode-definitions/show-interfaces-wwan.xml.in @@ -80,6 +80,7 @@ echo not implemented + #include diff --git a/op-mode-definitions/show-log.xml.in b/op-mode-definitions/show-log.xml.in index 7ace50cc9..5ee7c973f 100755 --- a/op-mode-definitions/show-log.xml.in +++ b/op-mode-definitions/show-log.xml.in @@ -958,6 +958,68 @@ journalctl --no-hostname --boot --unit squid.service + + + Show log for network events + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service + + + + Show log for specific interface + + + + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep $5 + + + + Show log for route events + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep "\[$4\]" + + #include + + + + + Show log for network link events + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep "\[$4\]" + + #include + + + + + Show log for network address events + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep "\[$4\]" + + #include + + + + + Show log for neighbor table events + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep "\[$4\]" + + #include + + + + + Show log for PBR rule change events + + journalctl --no-hostname --boot --unit vyos-network-event-logger.service --grep "\[$4\]" + + #include + + + + -- cgit v1.2.3