From 89995ced12cc9e5af4f9ce92f2b62e825c2d7ae4 Mon Sep 17 00:00:00 2001
From: Lucas <116588+hairmare@users.noreply.github.com>
Date: Sat, 14 Dec 2024 21:20:28 +0100
Subject: [PATCH] feat: Zabbix 7.0 support (#122)

---
 CONTRIBUTING.md                               |   2 +-
 README.md                                     |  60 +-
 .../7.0/Apache_with_TLS_by_HTTP_Stack.yaml    |  21 +
 .../7.0/README.md                             |  22 +
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../{6.4 => 7.0}/mkdocs.yaml                  |   0
 .../7.0/Nginx_with_TLS_by_HTTP_Stack.yaml     |  21 +
 .../7.0/README.md                             |  22 +
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../{6.4 => 7.0}/mkdocs.yaml                  |   0
 .../Songticker_Stack/7.0/README.md            |  22 +
 .../7.0/Songticker_Stack.yaml                 |  25 +
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../Songticker_Stack/{6.4 => 7.0}/mkdocs.yaml |   0
 .../Applications/systemd_Stack/7.0/README.md  |  27 +
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../systemd_Stack/{6.4 => 7.0}/mkdocs.yaml    |   0
 .../systemd_Stack/7.0/systemd_Stack.yaml      |  27 +
 .../EL7_Stack/7.0/EL7_Stack.yaml              |  41 +
 .../Operating_systems/EL7_Stack/7.0/README.md |  51 ++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../EL7_Stack/{6.4 => 7.0}/mkdocs.yaml        |   0
 .../EL8_Stack/7.0/EL8_Stack.yaml              |  42 +
 .../Operating_systems/EL8_Stack/7.0/README.md |  52 ++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../EL8_Stack/{6.4 => 7.0}/mkdocs.yaml        |   0
 .../EL9_Stack/7.0/EL9_Stack.yaml              |  42 +
 .../Operating_systems/EL9_Stack/7.0/README.md |  52 ++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../EL9_Stack/{6.4 => 7.0}/mkdocs.yaml        |   0
 .../7.0/EL7_KVM_VM_Stack.yaml                 |  25 +
 Stacks/Servers/EL7_KVM_VM_Stack/7.0/README.md |  25 +
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../EL7_KVM_VM_Stack/{6.4 => 7.0}/mkdocs.yaml |   0
 .../7.0/EL8_KVM_VM_Stack.yaml                 |  25 +
 Stacks/Servers/EL8_KVM_VM_Stack/7.0/README.md |  25 +
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../EL8_KVM_VM_Stack/{6.4 => 7.0}/mkdocs.yaml |   0
 .../7.0/EL9_KVM_VM_Stack.yaml                 |  25 +
 Stacks/Servers/EL9_KVM_VM_Stack/7.0/README.md |  25 +
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../EL9_KVM_VM_Stack/{6.4 => 7.0}/mkdocs.yaml |   0
 Templates/Applications/Cronie/7.0/Cronie.yaml | 592 +++++++++++++
 Templates/Applications/Cronie/7.0/README.md   | 377 +++++++++
 .../Cronie/{6.4 => 7.0}/docs/gen_ref_pages.py |   0
 .../Cronie/{6.4 => 7.0}/mkdocs.yaml           |   0
 .../Applications/Songticker/7.0/README.md     | 201 +++++
 .../Songticker/7.0/Songticker.yaml            | 235 ++++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../Songticker/{6.4 => 7.0}/mkdocs.yaml       |   0
 .../Zabbix_unsupported_items/7.0/README.md    |  59 ++
 .../7.0/Zabbix_unsupported_items.yaml         |  56 ++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../{6.4 => 7.0}/mkdocs.yaml                  |   0
 Templates/Applications/auditd/7.0/README.md   | 377 +++++++++
 Templates/Applications/auditd/7.0/auditd.yaml | 592 +++++++++++++
 .../auditd/{6.4 => 7.0}/docs/gen_ref_pages.py |   0
 .../auditd/{6.4 => 7.0}/mkdocs.yaml           |   0
 .../candlepin-rhsmcertd/7.0/README.md         | 377 +++++++++
 .../7.0/candlepin-rhsmcertd.yaml              | 592 +++++++++++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../{6.4 => 7.0}/mkdocs.yaml                  |   0
 .../Applications/certmonger/7.0/README.md     | 377 +++++++++
 .../certmonger/7.0/certmonger.yaml            | 592 +++++++++++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../certmonger/{6.4 => 7.0}/mkdocs.yaml       |   0
 Templates/Applications/chrony/7.0/README.md   | 547 ++++++++++++
 Templates/Applications/chrony/7.0/chrony.yaml | 785 ++++++++++++++++++
 .../chrony/{6.4 => 7.0}/docs/gen_ref_pages.py |   0
 .../chrony/{6.4 => 7.0}/mkdocs.yaml           |   0
 .../Applications/firewalld/7.0/README.md      | 377 +++++++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../Applications/firewalld/7.0/firewalld.yaml | 592 +++++++++++++
 .../firewalld/{6.4 => 7.0}/mkdocs.yaml        |   0
 Templates/Applications/gssproxy/7.0/README.md | 377 +++++++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../Applications/gssproxy/7.0/gssproxy.yaml   | 592 +++++++++++++
 .../gssproxy/{6.4 => 7.0}/mkdocs.yaml         |   0
 Templates/Applications/qemu-ga/7.0/README.md  | 377 +++++++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../qemu-ga/{6.4 => 7.0}/mkdocs.yaml          |   0
 .../Applications/qemu-ga/7.0/qemu-ga.yaml     | 592 +++++++++++++
 Templates/Applications/rpc.gssd/7.0/README.md | 377 +++++++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../rpc.gssd/{6.4 => 7.0}/mkdocs.yaml         |   0
 .../Applications/rpc.gssd/7.0/rpc.gssd.yaml   | 592 +++++++++++++
 Templates/Applications/rsyslog/7.0/README.md  | 377 +++++++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../rsyslog/{6.4 => 7.0}/mkdocs.yaml          |   0
 .../Applications/rsyslog/7.0/rsyslog.yaml     | 592 +++++++++++++
 Templates/Applications/sssd/7.0/README.md     | 377 +++++++++
 .../sssd/{6.4 => 7.0}/docs/gen_ref_pages.py   |   0
 .../sssd/{6.4 => 7.0}/mkdocs.yaml             |   0
 Templates/Applications/sssd/7.0/sssd.yaml     | 592 +++++++++++++
 .../systemd-journald/7.0/README.md            | 377 +++++++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../systemd-journald/{6.4 => 7.0}/mkdocs.yaml |   0
 .../7.0/systemd-journald.yaml                 | 592 +++++++++++++
 .../Applications/systemd-logind/7.0/README.md | 377 +++++++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../systemd-logind/{6.4 => 7.0}/mkdocs.yaml   |   0
 .../systemd-logind/7.0/systemd-logind.yaml    | 592 +++++++++++++
 .../Applications/systemd-udevd/7.0/README.md  | 377 +++++++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../systemd-udevd/{6.4 => 7.0}/mkdocs.yaml    |   0
 .../systemd-udevd/7.0/systemd-udevd.yaml      | 592 +++++++++++++
 .../Applications/timedatectl/7.0/README.md    | 225 +++++
 .../{6.4 => 7.0}/docs/gen_ref_pages.py        |   0
 .../timedatectl/{6.4 => 7.0}/mkdocs.yaml      |   0
 .../timedatectl/7.0/timedatectl.yaml          | 200 +++++
 Templates/Applications/tuned/7.0/README.md    | 377 +++++++++
 .../tuned/{6.4 => 7.0}/docs/gen_ref_pages.py  |   0
 .../tuned/{6.4 => 7.0}/mkdocs.yaml            |   0
 Templates/Applications/tuned/7.0/tuned.yaml   | 592 +++++++++++++
 catalog-info.yaml                             | 168 ++--
 hack/plays/manage.yml                         |  11 +-
 116 files changed, 16614 insertions(+), 118 deletions(-)
 create mode 100644 Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/Apache_with_TLS_by_HTTP_Stack.yaml
 create mode 100644 Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/README.md
 rename Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/Nginx_with_TLS_by_HTTP_Stack.yaml
 create mode 100644 Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/README.md
 rename Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Stacks/Applications/Songticker_Stack/7.0/README.md
 create mode 100644 Stacks/Applications/Songticker_Stack/7.0/Songticker_Stack.yaml
 rename Stacks/Applications/Songticker_Stack/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Stacks/Applications/Songticker_Stack/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Stacks/Applications/systemd_Stack/7.0/README.md
 rename Stacks/Applications/systemd_Stack/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Stacks/Applications/systemd_Stack/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Stacks/Applications/systemd_Stack/7.0/systemd_Stack.yaml
 create mode 100644 Stacks/Operating_systems/EL7_Stack/7.0/EL7_Stack.yaml
 create mode 100644 Stacks/Operating_systems/EL7_Stack/7.0/README.md
 rename Stacks/Operating_systems/EL7_Stack/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Stacks/Operating_systems/EL7_Stack/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Stacks/Operating_systems/EL8_Stack/7.0/EL8_Stack.yaml
 create mode 100644 Stacks/Operating_systems/EL8_Stack/7.0/README.md
 rename Stacks/Operating_systems/EL8_Stack/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Stacks/Operating_systems/EL8_Stack/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Stacks/Operating_systems/EL9_Stack/7.0/EL9_Stack.yaml
 create mode 100644 Stacks/Operating_systems/EL9_Stack/7.0/README.md
 rename Stacks/Operating_systems/EL9_Stack/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Stacks/Operating_systems/EL9_Stack/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Stacks/Servers/EL7_KVM_VM_Stack/7.0/EL7_KVM_VM_Stack.yaml
 create mode 100644 Stacks/Servers/EL7_KVM_VM_Stack/7.0/README.md
 rename Stacks/Servers/EL7_KVM_VM_Stack/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Stacks/Servers/EL7_KVM_VM_Stack/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Stacks/Servers/EL8_KVM_VM_Stack/7.0/EL8_KVM_VM_Stack.yaml
 create mode 100644 Stacks/Servers/EL8_KVM_VM_Stack/7.0/README.md
 rename Stacks/Servers/EL8_KVM_VM_Stack/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Stacks/Servers/EL8_KVM_VM_Stack/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Stacks/Servers/EL9_KVM_VM_Stack/7.0/EL9_KVM_VM_Stack.yaml
 create mode 100644 Stacks/Servers/EL9_KVM_VM_Stack/7.0/README.md
 rename Stacks/Servers/EL9_KVM_VM_Stack/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Stacks/Servers/EL9_KVM_VM_Stack/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/Cronie/7.0/Cronie.yaml
 create mode 100644 Templates/Applications/Cronie/7.0/README.md
 rename Templates/Applications/Cronie/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/Cronie/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/Songticker/7.0/README.md
 create mode 100644 Templates/Applications/Songticker/7.0/Songticker.yaml
 rename Templates/Applications/Songticker/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/Songticker/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/Zabbix_unsupported_items/7.0/README.md
 create mode 100644 Templates/Applications/Zabbix_unsupported_items/7.0/Zabbix_unsupported_items.yaml
 rename Templates/Applications/Zabbix_unsupported_items/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/Zabbix_unsupported_items/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/auditd/7.0/README.md
 create mode 100644 Templates/Applications/auditd/7.0/auditd.yaml
 rename Templates/Applications/auditd/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/auditd/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/candlepin-rhsmcertd/7.0/README.md
 create mode 100644 Templates/Applications/candlepin-rhsmcertd/7.0/candlepin-rhsmcertd.yaml
 rename Templates/Applications/candlepin-rhsmcertd/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/candlepin-rhsmcertd/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/certmonger/7.0/README.md
 create mode 100644 Templates/Applications/certmonger/7.0/certmonger.yaml
 rename Templates/Applications/certmonger/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/certmonger/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/chrony/7.0/README.md
 create mode 100644 Templates/Applications/chrony/7.0/chrony.yaml
 rename Templates/Applications/chrony/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/chrony/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/firewalld/7.0/README.md
 rename Templates/Applications/firewalld/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 create mode 100644 Templates/Applications/firewalld/7.0/firewalld.yaml
 rename Templates/Applications/firewalld/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/gssproxy/7.0/README.md
 rename Templates/Applications/gssproxy/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 create mode 100644 Templates/Applications/gssproxy/7.0/gssproxy.yaml
 rename Templates/Applications/gssproxy/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/qemu-ga/7.0/README.md
 rename Templates/Applications/qemu-ga/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/qemu-ga/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/qemu-ga/7.0/qemu-ga.yaml
 create mode 100644 Templates/Applications/rpc.gssd/7.0/README.md
 rename Templates/Applications/rpc.gssd/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/rpc.gssd/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/rpc.gssd/7.0/rpc.gssd.yaml
 create mode 100644 Templates/Applications/rsyslog/7.0/README.md
 rename Templates/Applications/rsyslog/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/rsyslog/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/rsyslog/7.0/rsyslog.yaml
 create mode 100644 Templates/Applications/sssd/7.0/README.md
 rename Templates/Applications/sssd/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/sssd/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/sssd/7.0/sssd.yaml
 create mode 100644 Templates/Applications/systemd-journald/7.0/README.md
 rename Templates/Applications/systemd-journald/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/systemd-journald/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/systemd-journald/7.0/systemd-journald.yaml
 create mode 100644 Templates/Applications/systemd-logind/7.0/README.md
 rename Templates/Applications/systemd-logind/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/systemd-logind/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/systemd-logind/7.0/systemd-logind.yaml
 create mode 100644 Templates/Applications/systemd-udevd/7.0/README.md
 rename Templates/Applications/systemd-udevd/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/systemd-udevd/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/systemd-udevd/7.0/systemd-udevd.yaml
 create mode 100644 Templates/Applications/timedatectl/7.0/README.md
 rename Templates/Applications/timedatectl/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/timedatectl/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/timedatectl/7.0/timedatectl.yaml
 create mode 100644 Templates/Applications/tuned/7.0/README.md
 rename Templates/Applications/tuned/{6.4 => 7.0}/docs/gen_ref_pages.py (100%)
 rename Templates/Applications/tuned/{6.4 => 7.0}/mkdocs.yaml (100%)
 create mode 100644 Templates/Applications/tuned/7.0/tuned.yaml

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index fe13742b..f02f4ca7 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -117,7 +117,7 @@ Add the following in `<Template_Group>/<Name>/<Version>/<Name>.yaml` right after
 ```yaml
       vendor:
         name: RaBe
-        version: '6.4'
+        version: '7.0'
 ```
 
 Switch branch and look at the generated README.md before you commit it:
diff --git a/README.md b/README.md
index 97e44db0..336cc4aa 100644
--- a/README.md
+++ b/README.md
@@ -25,10 +25,10 @@ inheritance problems.
 
 | Name | 3.0 | 6.4 | 7.0 |
 | ---- | --- | --- | --- |
-| Apache with TLS by HTTP Stack |  | [✅](./Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/6.4) |  |
-| Nginx with TLS by HTTP Stack |  | [✅](./Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/6.4) |  |
-| Songticker Stack |  | [✅](./Stacks/Applications/Songticker_Stack/6.4) |  |
-| systemd Stack |  | [✅](./Stacks/Applications/systemd_Stack/6.4) |  |
+| Apache with TLS by HTTP Stack |  | [✅](./Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/6.4) | [✅](./Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0) |
+| Nginx with TLS by HTTP Stack |  | [✅](./Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/6.4) | [✅](./Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0) |
+| Songticker Stack |  | [✅](./Stacks/Applications/Songticker_Stack/6.4) | [✅](./Stacks/Applications/Songticker_Stack/7.0) |
+| systemd Stack |  | [✅](./Stacks/Applications/systemd_Stack/6.4) | [✅](./Stacks/Applications/systemd_Stack/7.0) |
 
 ### Stacks: Network devices
 
@@ -41,17 +41,17 @@ inheritance problems.
 
 | Name | 3.0 | 6.4 | 7.0 |
 | ---- | --- | --- | --- |
-| EL7 Stack |  | [✅](./Stacks/Operating_systems/EL7_Stack/6.4) |  |
-| EL8 Stack |  | [✅](./Stacks/Operating_systems/EL8_Stack/6.4) |  |
-| EL9 Stack |  | [✅](./Stacks/Operating_systems/EL9_Stack/6.4) |  |
+| EL7 Stack |  | [✅](./Stacks/Operating_systems/EL7_Stack/6.4) | [✅](./Stacks/Operating_systems/EL7_Stack/7.0) |
+| EL8 Stack |  | [✅](./Stacks/Operating_systems/EL8_Stack/6.4) | [✅](./Stacks/Operating_systems/EL8_Stack/7.0) |
+| EL9 Stack |  | [✅](./Stacks/Operating_systems/EL9_Stack/6.4) | [✅](./Stacks/Operating_systems/EL9_Stack/7.0) |
 
 ### Stacks: Servers
 
 | Name | 3.0 | 6.4 | 7.0 |
 | ---- | --- | --- | --- |
-| EL7 KVM VM Stack |  | [✅](./Stacks/Servers/EL7_KVM_VM_Stack/6.4) |  |
-| EL8 KVM VM Stack |  | [✅](./Stacks/Servers/EL8_KVM_VM_Stack/6.4) |  |
-| EL9 KVM VM Stack |  | [✅](./Stacks/Servers/EL9_KVM_VM_Stack/6.4) |  |
+| EL7 KVM VM Stack |  | [✅](./Stacks/Servers/EL7_KVM_VM_Stack/6.4) | [✅](./Stacks/Servers/EL7_KVM_VM_Stack/7.0) |
+| EL8 KVM VM Stack |  | [✅](./Stacks/Servers/EL8_KVM_VM_Stack/6.4) | [✅](./Stacks/Servers/EL8_KVM_VM_Stack/7.0) |
+| EL9 KVM VM Stack |  | [✅](./Stacks/Servers/EL9_KVM_VM_Stack/6.4) | [✅](./Stacks/Servers/EL9_KVM_VM_Stack/7.0) |
 
 ## Templates
 
@@ -60,20 +60,20 @@ inheritance problems.
 | Name | 3.0 | 6.4 | 7.0 |
 | ---- | --- | --- | --- |
 | Apache HTTP Server | [✅](./Templates/Applications/Apache_HTTP_Server/3.0) |  |  |
-| auditd | [✅](./Templates/Applications/auditd/3.0) | [✅](./Templates/Applications/auditd/6.4) |  |
+| auditd | [✅](./Templates/Applications/auditd/3.0) | [✅](./Templates/Applications/auditd/6.4) | [✅](./Templates/Applications/auditd/7.0) |
 | Axia ALSA Soundcard Driver for Livewire | [✅](./Templates/Applications/Axia_ALSA_Soundcard_Driver_for_Livewire/3.0) |  |  |
 | BSNMP | [✅](./Templates/Applications/BSNMP/3.0) |  |  |
-| candlepin-rhsmcertd |  | [✅](./Templates/Applications/candlepin-rhsmcertd/6.4) |  |
+| candlepin-rhsmcertd |  | [✅](./Templates/Applications/candlepin-rhsmcertd/6.4) | [✅](./Templates/Applications/candlepin-rhsmcertd/7.0) |
 | CARP | [✅](./Templates/Applications/CARP/3.0) |  |  |
-| certmonger |  | [✅](./Templates/Applications/certmonger/6.4) |  |
-| chrony | [✅](./Templates/Applications/chrony/3.0) | [✅](./Templates/Applications/chrony/6.4) |  |
-| Cronie | [✅](./Templates/Applications/Cronie/3.0) | [✅](./Templates/Applications/Cronie/6.4) |  |
+| certmonger |  | [✅](./Templates/Applications/certmonger/6.4) | [✅](./Templates/Applications/certmonger/7.0) |
+| chrony | [✅](./Templates/Applications/chrony/3.0) | [✅](./Templates/Applications/chrony/6.4) | [✅](./Templates/Applications/chrony/7.0) |
+| Cronie | [✅](./Templates/Applications/Cronie/3.0) | [✅](./Templates/Applications/Cronie/6.4) | [✅](./Templates/Applications/Cronie/7.0) |
 | Darkice | [✅](./Templates/Applications/Darkice/3.0) |  |  |
 | dpinger | [✅](./Templates/Applications/dpinger/3.0) |  |  |
-| firewalld |  | [✅](./Templates/Applications/firewalld/6.4) |  |
+| firewalld |  | [✅](./Templates/Applications/firewalld/6.4) | [✅](./Templates/Applications/firewalld/7.0) |
 | GlusterFS Client | [✅](./Templates/Applications/GlusterFS_Client/3.0) |  |  |
 | GlusterFS Server | [✅](./Templates/Applications/GlusterFS_Server/3.0) |  |  |
-| gssproxy | [✅](./Templates/Applications/gssproxy/3.0) | [✅](./Templates/Applications/gssproxy/6.4) |  |
+| gssproxy | [✅](./Templates/Applications/gssproxy/3.0) | [✅](./Templates/Applications/gssproxy/6.4) | [✅](./Templates/Applications/gssproxy/7.0) |
 | Icecast | [✅](./Templates/Applications/Icecast/3.0) |  |  |
 | ISC DHCP daemon | [✅](./Templates/Applications/ISC_DHCP_daemon/3.0) |  |  |
 | ISC DHCP Relay Agent | [✅](./Templates/Applications/ISC_DHCP_Relay_Agent/3.0) |  |  |
@@ -84,19 +84,19 @@ inheritance problems.
 | LVM | [✅](./Templates/Applications/LVM/3.0) |  |  |
 | MD-RAID | [✅](./Templates/Applications/MD-RAID/3.0) |  |  |
 | ntpd | [✅](./Templates/Applications/ntpd/3.0) |  |  |
-| qemu-ga |  | [✅](./Templates/Applications/qemu-ga/6.4) |  |
+| qemu-ga |  | [✅](./Templates/Applications/qemu-ga/6.4) | [✅](./Templates/Applications/qemu-ga/7.0) |
 | Rotter | [✅](./Templates/Applications/Rotter/3.0) |  |  |
-| rpc.gssd |  | [✅](./Templates/Applications/rpc.gssd/6.4) |  |
-| rsyslog |  | [✅](./Templates/Applications/rsyslog/6.4) |  |
-| Songticker |  | [✅](./Templates/Applications/Songticker/6.4) |  |
-| sssd |  | [✅](./Templates/Applications/sssd/6.4) |  |
-| systemd-journald |  | [✅](./Templates/Applications/systemd-journald/6.4) |  |
-| systemd-logind |  | [✅](./Templates/Applications/systemd-logind/6.4) |  |
-| systemd-udevd |  | [✅](./Templates/Applications/systemd-udevd/6.4) |  |
-| timedatectl | [✅](./Templates/Applications/timedatectl/3.0) | [✅](./Templates/Applications/timedatectl/6.4) |  |
-| tuned |  | [✅](./Templates/Applications/tuned/6.4) |  |
+| rpc.gssd |  | [✅](./Templates/Applications/rpc.gssd/6.4) | [✅](./Templates/Applications/rpc.gssd/7.0) |
+| rsyslog |  | [✅](./Templates/Applications/rsyslog/6.4) | [✅](./Templates/Applications/rsyslog/7.0) |
+| Songticker |  | [✅](./Templates/Applications/Songticker/6.4) | [✅](./Templates/Applications/Songticker/7.0) |
+| sssd |  | [✅](./Templates/Applications/sssd/6.4) | [✅](./Templates/Applications/sssd/7.0) |
+| systemd-journald |  | [✅](./Templates/Applications/systemd-journald/6.4) | [✅](./Templates/Applications/systemd-journald/7.0) |
+| systemd-logind |  | [✅](./Templates/Applications/systemd-logind/6.4) | [✅](./Templates/Applications/systemd-logind/7.0) |
+| systemd-udevd |  | [✅](./Templates/Applications/systemd-udevd/6.4) | [✅](./Templates/Applications/systemd-udevd/7.0) |
+| timedatectl | [✅](./Templates/Applications/timedatectl/3.0) | [✅](./Templates/Applications/timedatectl/6.4) | [✅](./Templates/Applications/timedatectl/7.0) |
+| tuned |  | [✅](./Templates/Applications/tuned/6.4) | [✅](./Templates/Applications/tuned/7.0) |
 | zabbix-agent | [✅](./Templates/Applications/zabbix-agent/3.0) |  |  |
-| Zabbix unsupported items |  | [✅](./Templates/Applications/Zabbix_unsupported_items/6.4) |  |
+| Zabbix unsupported items |  | [✅](./Templates/Applications/Zabbix_unsupported_items/6.4) | [✅](./Templates/Applications/Zabbix_unsupported_items/7.0) |
 
 ### Templates: Network devices
 
@@ -149,8 +149,8 @@ We primarily support versions of Zabbix we use in production.
 | Version | Supported | Description |
 | ------- | --------- | ----------- |
 | 3.0 | ✅ | legacy RaBe environment |
-| 6.4 | ✅ | for LTS preparation work until 7.0 is available |
-| 7.0 | ✅ | once released |
+| 6.4 | ✅ | unsupported since 2024-12 |
+| 7.0 | ✅ | stable LTS |
 
 ## OS Version Support
 
diff --git a/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/Apache_with_TLS_by_HTTP_Stack.yaml b/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/Apache_with_TLS_by_HTTP_Stack.yaml
new file mode 100644
index 00000000..5ee87841
--- /dev/null
+++ b/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/Apache_with_TLS_by_HTTP_Stack.yaml
@@ -0,0 +1,21 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: 372bbb3675214fcf9ca8f57f2bc2ec77
+      name: Stacks/Applications
+  templates:
+    - uuid: 2446533622e04f2fae25827a3ada0a9a
+      template: 'Apache with TLS by HTTP Stack'
+      name: 'Apache with TLS by HTTP Stack'
+      description: 'Monitor Apache by HTTP and do a Zabbix agent2 based certificate check.'
+      vendor:
+        name: RaBe
+        version: '7.0'
+      templates:
+        - name: 'Apache by HTTP'
+        - name: 'Website certificate by Zabbix agent 2'
+      groups:
+        - name: Stacks/Applications
+      tags:
+        - tag: class
+          value: stack
diff --git a/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/README.md b/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/README.md
new file mode 100644
index 00000000..925753f7
--- /dev/null
+++ b/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/README.md
@@ -0,0 +1,22 @@
+# Zabbix Template: Apache with TLS by HTTP Stack
+
+![class: stack](https://img.shields.io/badge/class-stack-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitor Apache by HTTP and do a Zabbix agent2 based certificate check.
+
+## Linked Templates
+
+This Zabbix template depends on the following templates.
+
+* Apache by HTTP
+* Website certificate by Zabbix agent 2
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/6.4/docs/gen_ref_pages.py b/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/6.4/docs/gen_ref_pages.py
rename to Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/docs/gen_ref_pages.py
diff --git a/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/6.4/mkdocs.yaml b/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/mkdocs.yaml
similarity index 100%
rename from Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/6.4/mkdocs.yaml
rename to Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/mkdocs.yaml
diff --git a/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/Nginx_with_TLS_by_HTTP_Stack.yaml b/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/Nginx_with_TLS_by_HTTP_Stack.yaml
new file mode 100644
index 00000000..fcd774ad
--- /dev/null
+++ b/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/Nginx_with_TLS_by_HTTP_Stack.yaml
@@ -0,0 +1,21 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: 372bbb3675214fcf9ca8f57f2bc2ec77
+      name: Stacks/Applications
+  templates:
+    - uuid: f9adddfb423f4bb4b58cd77c2494f2dd
+      template: 'Nginx with TLS by HTTP Stack'
+      name: 'Nginx with TLS by HTTP Stack'
+      description: 'Monitor Nginx by HTTP and do a Zabbix agent2 based certificate check.'
+      vendor:
+        name: RaBe
+        version: '7.0'
+      templates:
+        - name: 'Nginx by HTTP'
+        - name: 'Website certificate by Zabbix agent 2'
+      groups:
+        - name: Stacks/Applications
+      tags:
+        - tag: class
+          value: stack
diff --git a/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/README.md b/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/README.md
new file mode 100644
index 00000000..5417ec36
--- /dev/null
+++ b/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/README.md
@@ -0,0 +1,22 @@
+# Zabbix Template: Nginx with TLS by HTTP Stack
+
+![class: stack](https://img.shields.io/badge/class-stack-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitor Nginx by HTTP and do a Zabbix agent2 based certificate check.
+
+## Linked Templates
+
+This Zabbix template depends on the following templates.
+
+* Nginx by HTTP
+* Website certificate by Zabbix agent 2
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/6.4/docs/gen_ref_pages.py b/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/6.4/docs/gen_ref_pages.py
rename to Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/docs/gen_ref_pages.py
diff --git a/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/6.4/mkdocs.yaml b/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/mkdocs.yaml
similarity index 100%
rename from Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/6.4/mkdocs.yaml
rename to Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/mkdocs.yaml
diff --git a/Stacks/Applications/Songticker_Stack/7.0/README.md b/Stacks/Applications/Songticker_Stack/7.0/README.md
new file mode 100644
index 00000000..01f0b84c
--- /dev/null
+++ b/Stacks/Applications/Songticker_Stack/7.0/README.md
@@ -0,0 +1,22 @@
+# Zabbix Template: Songticker Stack
+
+![class: stack](https://img.shields.io/badge/class-stack-00c9bf) ![system: songticker](https://img.shields.io/badge/system-songticker-00c9bf) ![type: service](https://img.shields.io/badge/type-service-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring for our Songticker
+
+## Linked Templates
+
+This Zabbix template depends on the following templates.
+
+* Songticker
+* Website certificate by Zabbix agent 2
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Stacks/Applications/Songticker_Stack/7.0/Songticker_Stack.yaml b/Stacks/Applications/Songticker_Stack/7.0/Songticker_Stack.yaml
new file mode 100644
index 00000000..487a7bf6
--- /dev/null
+++ b/Stacks/Applications/Songticker_Stack/7.0/Songticker_Stack.yaml
@@ -0,0 +1,25 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: 372bbb3675214fcf9ca8f57f2bc2ec77
+      name: Stacks/Applications
+  templates:
+    - uuid: 93c461ba64e642968daa550ac188d74d
+      template: 'Songticker Stack'
+      name: 'Songticker Stack'
+      description: 'Monitoring for our Songticker'
+      vendor:
+        name: RaBe
+        version: '7.0'
+      templates:
+        - name: Songticker
+        - name: 'Website certificate by Zabbix agent 2'
+      groups:
+        - name: Stacks/Applications
+      tags:
+        - tag: class
+          value: stack
+        - tag: system
+          value: songticker
+        - tag: type
+          value: service
diff --git a/Stacks/Applications/Songticker_Stack/6.4/docs/gen_ref_pages.py b/Stacks/Applications/Songticker_Stack/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Stacks/Applications/Songticker_Stack/6.4/docs/gen_ref_pages.py
rename to Stacks/Applications/Songticker_Stack/7.0/docs/gen_ref_pages.py
diff --git a/Stacks/Applications/Songticker_Stack/6.4/mkdocs.yaml b/Stacks/Applications/Songticker_Stack/7.0/mkdocs.yaml
similarity index 100%
rename from Stacks/Applications/Songticker_Stack/6.4/mkdocs.yaml
rename to Stacks/Applications/Songticker_Stack/7.0/mkdocs.yaml
diff --git a/Stacks/Applications/systemd_Stack/7.0/README.md b/Stacks/Applications/systemd_Stack/7.0/README.md
new file mode 100644
index 00000000..738ec5e0
--- /dev/null
+++ b/Stacks/Applications/systemd_Stack/7.0/README.md
@@ -0,0 +1,27 @@
+# Zabbix Template: systemd Stack
+
+![class: stack](https://img.shields.io/badge/class-stack-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+The [systemd](https://systemd.io) combines all the pieces of
+systemd that ususally run on a system host.
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Linked Templates
+
+This Zabbix template depends on the following templates.
+
+* systemd-journald
+* systemd-logind
+* systemd-udevd
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Stacks/Applications/systemd_Stack/6.4/docs/gen_ref_pages.py b/Stacks/Applications/systemd_Stack/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Stacks/Applications/systemd_Stack/6.4/docs/gen_ref_pages.py
rename to Stacks/Applications/systemd_Stack/7.0/docs/gen_ref_pages.py
diff --git a/Stacks/Applications/systemd_Stack/6.4/mkdocs.yaml b/Stacks/Applications/systemd_Stack/7.0/mkdocs.yaml
similarity index 100%
rename from Stacks/Applications/systemd_Stack/6.4/mkdocs.yaml
rename to Stacks/Applications/systemd_Stack/7.0/mkdocs.yaml
diff --git a/Stacks/Applications/systemd_Stack/7.0/systemd_Stack.yaml b/Stacks/Applications/systemd_Stack/7.0/systemd_Stack.yaml
new file mode 100644
index 00000000..7120f05c
--- /dev/null
+++ b/Stacks/Applications/systemd_Stack/7.0/systemd_Stack.yaml
@@ -0,0 +1,27 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: 372bbb3675214fcf9ca8f57f2bc2ec77
+      name: Stacks/Applications
+  templates:
+    - uuid: 77615056d84f4c289aa65a0610216f9e
+      template: 'systemd Stack'
+      name: 'systemd Stack'
+      description: |
+        The [systemd](https://systemd.io) combines all the pieces of
+        systemd that ususally run on a system host.
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      templates:
+        - name: systemd-journald
+        - name: systemd-logind
+        - name: systemd-udevd
+      groups:
+        - name: Stacks/Applications
+      tags:
+        - tag: class
+          value: stack
diff --git a/Stacks/Operating_systems/EL7_Stack/7.0/EL7_Stack.yaml b/Stacks/Operating_systems/EL7_Stack/7.0/EL7_Stack.yaml
new file mode 100644
index 00000000..bda5e769
--- /dev/null
+++ b/Stacks/Operating_systems/EL7_Stack/7.0/EL7_Stack.yaml
@@ -0,0 +1,41 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: e3797825aba640d9811af437183dab65
+      name: 'Stacks/Operating systems'
+  templates:
+    - uuid: 6894a14a44694510997ee950755a479a
+      template: 'EL7 Stack'
+      name: 'EL7 Stack'
+      description: |
+        Base stack template for CentOS 7 based systems.
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      templates:
+        - name: auditd
+        - name: candlepin-rhsmcertd
+        - name: certmonger
+        - name: chrony
+        - name: Cronie
+        - name: firewalld
+        - name: gssproxy
+        - name: 'Linux by Zabbix agent active'
+        - name: rpc.gssd
+        - name: rsyslog
+        - name: sssd
+        - name: 'systemd Stack'
+        - name: tuned
+        - name: 'Zabbix unsupported items'
+      groups:
+        - name: 'Stacks/Operating systems'
+      tags:
+        - tag: class
+          value: stack
+      macros:
+        - macro: '{$SYSTEMD.NAME.SERVICE.NOT_MATCHES}'
+          value: ^(iscsi\.service|mdmonitor\.service|microcode\.service|multipathd\.service|udisks2\.service|selinux-autorelabel-mark\.service|iscsi-onboot\.service|vgauthd\.service|vmtoolsd\.service|abrt-vmcore\.service|dmraid-activation\.service|abrt-xorg\.service|rhel-configure\.service|systemd-readahead-collect\.service|rhel-autorelabel\.service|irqbalance\.service|rhel-loadmodules\.service|systemd-readahead-replay\.service|rhel-autorelabel-mark\.service|timedatex\.service)$
+          description: 'Filter of systemd service units by name'
diff --git a/Stacks/Operating_systems/EL7_Stack/7.0/README.md b/Stacks/Operating_systems/EL7_Stack/7.0/README.md
new file mode 100644
index 00000000..420af5af
--- /dev/null
+++ b/Stacks/Operating_systems/EL7_Stack/7.0/README.md
@@ -0,0 +1,51 @@
+# Zabbix Template: EL7 Stack
+
+![class: stack](https://img.shields.io/badge/class-stack-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Base stack template for CentOS 7 based systems.
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Linked Templates
+
+This Zabbix template depends on the following templates.
+
+* auditd
+* candlepin-rhsmcertd
+* certmonger
+* chrony
+* Cronie
+* firewalld
+* gssproxy
+* Linux by Zabbix agent active
+* rpc.gssd
+* rsyslog
+* sssd
+* systemd Stack
+* tuned
+* Zabbix unsupported items
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$SYSTEMD.NAME.SERVICE.NOT_MATCHES}`
+
+Filter of systemd service units by name
+
+Default:
+
+```console
+^(iscsi\.service|mdmonitor\.service|microcode\.service|multipathd\.service|udisks2\.service|selinux-autorelabel-mark\.service|iscsi-onboot\.service|vgauthd\.service|vmtoolsd\.service|abrt-vmcore\.service|dmraid-activation\.service|abrt-xorg\.service|rhel-configure\.service|systemd-readahead-collect\.service|rhel-autorelabel\.service|irqbalance\.service|rhel-loadmodules\.service|systemd-readahead-replay\.service|rhel-autorelabel-mark\.service|timedatex\.service)$
+```
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Stacks/Operating_systems/EL7_Stack/6.4/docs/gen_ref_pages.py b/Stacks/Operating_systems/EL7_Stack/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Stacks/Operating_systems/EL7_Stack/6.4/docs/gen_ref_pages.py
rename to Stacks/Operating_systems/EL7_Stack/7.0/docs/gen_ref_pages.py
diff --git a/Stacks/Operating_systems/EL7_Stack/6.4/mkdocs.yaml b/Stacks/Operating_systems/EL7_Stack/7.0/mkdocs.yaml
similarity index 100%
rename from Stacks/Operating_systems/EL7_Stack/6.4/mkdocs.yaml
rename to Stacks/Operating_systems/EL7_Stack/7.0/mkdocs.yaml
diff --git a/Stacks/Operating_systems/EL8_Stack/7.0/EL8_Stack.yaml b/Stacks/Operating_systems/EL8_Stack/7.0/EL8_Stack.yaml
new file mode 100644
index 00000000..61661635
--- /dev/null
+++ b/Stacks/Operating_systems/EL8_Stack/7.0/EL8_Stack.yaml
@@ -0,0 +1,42 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: e3797825aba640d9811af437183dab65
+      name: 'Stacks/Operating systems'
+  templates:
+    - uuid: 457a175a097c4d0199dbf18c4b6a1d51
+      template: 'EL8 Stack'
+      name: 'EL8 Stack'
+      description: |
+        Base stack template for CentOS 8 Stream based systems.
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      templates:
+        - name: auditd
+        - name: candlepin-rhsmcertd
+        - name: certmonger
+        - name: chrony
+        - name: Cronie
+        - name: firewalld
+        - name: gssproxy
+        - name: 'Linux by Zabbix agent active'
+        - name: rpc.gssd
+        - name: rsyslog
+        - name: sssd
+        - name: 'systemd Stack'
+        - name: timedatectl
+        - name: tuned
+        - name: 'Zabbix unsupported items'
+      groups:
+        - name: 'Stacks/Operating systems'
+      tags:
+        - tag: class
+          value: stack
+      macros:
+        - macro: '{$SYSTEMD.NAME.SERVICE.NOT_MATCHES}'
+          value: ^(iscsi\.service|mdmonitor\.service|microcode\.service|multipathd\.service|udisks2\.service|selinux-autorelabel-mark\.service|iscsi-onboot\.service|vgauthd\.service|vmtoolsd\.service|loadmodules\.service|timedatex\.service)$
+          description: 'Filter of systemd service units by name'
diff --git a/Stacks/Operating_systems/EL8_Stack/7.0/README.md b/Stacks/Operating_systems/EL8_Stack/7.0/README.md
new file mode 100644
index 00000000..77109cee
--- /dev/null
+++ b/Stacks/Operating_systems/EL8_Stack/7.0/README.md
@@ -0,0 +1,52 @@
+# Zabbix Template: EL8 Stack
+
+![class: stack](https://img.shields.io/badge/class-stack-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Base stack template for CentOS 8 Stream based systems.
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Linked Templates
+
+This Zabbix template depends on the following templates.
+
+* auditd
+* candlepin-rhsmcertd
+* certmonger
+* chrony
+* Cronie
+* firewalld
+* gssproxy
+* Linux by Zabbix agent active
+* rpc.gssd
+* rsyslog
+* sssd
+* systemd Stack
+* timedatectl
+* tuned
+* Zabbix unsupported items
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$SYSTEMD.NAME.SERVICE.NOT_MATCHES}`
+
+Filter of systemd service units by name
+
+Default:
+
+```console
+^(iscsi\.service|mdmonitor\.service|microcode\.service|multipathd\.service|udisks2\.service|selinux-autorelabel-mark\.service|iscsi-onboot\.service|vgauthd\.service|vmtoolsd\.service|loadmodules\.service|timedatex\.service)$
+```
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Stacks/Operating_systems/EL8_Stack/6.4/docs/gen_ref_pages.py b/Stacks/Operating_systems/EL8_Stack/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Stacks/Operating_systems/EL8_Stack/6.4/docs/gen_ref_pages.py
rename to Stacks/Operating_systems/EL8_Stack/7.0/docs/gen_ref_pages.py
diff --git a/Stacks/Operating_systems/EL8_Stack/6.4/mkdocs.yaml b/Stacks/Operating_systems/EL8_Stack/7.0/mkdocs.yaml
similarity index 100%
rename from Stacks/Operating_systems/EL8_Stack/6.4/mkdocs.yaml
rename to Stacks/Operating_systems/EL8_Stack/7.0/mkdocs.yaml
diff --git a/Stacks/Operating_systems/EL9_Stack/7.0/EL9_Stack.yaml b/Stacks/Operating_systems/EL9_Stack/7.0/EL9_Stack.yaml
new file mode 100644
index 00000000..5031820f
--- /dev/null
+++ b/Stacks/Operating_systems/EL9_Stack/7.0/EL9_Stack.yaml
@@ -0,0 +1,42 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: e3797825aba640d9811af437183dab65
+      name: 'Stacks/Operating systems'
+  templates:
+    - uuid: 192a3c25a4b74cb2b583aaac6a5e5a11
+      template: 'EL9 Stack'
+      name: 'EL9 Stack'
+      description: |
+        Base stack template for AlmaLinux 9 based systems.
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      templates:
+        - name: auditd
+        - name: candlepin-rhsmcertd
+        - name: certmonger
+        - name: chrony
+        - name: Cronie
+        - name: firewalld
+        - name: gssproxy
+        - name: 'Linux by Zabbix agent active'
+        - name: rpc.gssd
+        - name: rsyslog
+        - name: sssd
+        - name: 'systemd Stack'
+        - name: timedatectl
+        - name: tuned
+        - name: 'Zabbix unsupported items'
+      groups:
+        - name: 'Stacks/Operating systems'
+      tags:
+        - tag: class
+          value: stack
+      macros:
+        - macro: '{$SYSTEMD.NAME.SERVICE.NOT_MATCHES}'
+          value: ^(iscsi\.service|mdmonitor\.service|microcode\.service|multipathd\.service|udisks2\.service|selinux-autorelabel-mark\.service|iscsi-onboot\.service|vgauthd\.service|vmtoolsd\.service|loadmodules\.service|timedatex\.service)$
+          description: 'Filter of systemd service units by name'
diff --git a/Stacks/Operating_systems/EL9_Stack/7.0/README.md b/Stacks/Operating_systems/EL9_Stack/7.0/README.md
new file mode 100644
index 00000000..de4d3025
--- /dev/null
+++ b/Stacks/Operating_systems/EL9_Stack/7.0/README.md
@@ -0,0 +1,52 @@
+# Zabbix Template: EL9 Stack
+
+![class: stack](https://img.shields.io/badge/class-stack-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Base stack template for AlmaLinux 9 based systems.
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Linked Templates
+
+This Zabbix template depends on the following templates.
+
+* auditd
+* candlepin-rhsmcertd
+* certmonger
+* chrony
+* Cronie
+* firewalld
+* gssproxy
+* Linux by Zabbix agent active
+* rpc.gssd
+* rsyslog
+* sssd
+* systemd Stack
+* timedatectl
+* tuned
+* Zabbix unsupported items
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$SYSTEMD.NAME.SERVICE.NOT_MATCHES}`
+
+Filter of systemd service units by name
+
+Default:
+
+```console
+^(iscsi\.service|mdmonitor\.service|microcode\.service|multipathd\.service|udisks2\.service|selinux-autorelabel-mark\.service|iscsi-onboot\.service|vgauthd\.service|vmtoolsd\.service|loadmodules\.service|timedatex\.service)$
+```
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Stacks/Operating_systems/EL9_Stack/6.4/docs/gen_ref_pages.py b/Stacks/Operating_systems/EL9_Stack/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Stacks/Operating_systems/EL9_Stack/6.4/docs/gen_ref_pages.py
rename to Stacks/Operating_systems/EL9_Stack/7.0/docs/gen_ref_pages.py
diff --git a/Stacks/Operating_systems/EL9_Stack/6.4/mkdocs.yaml b/Stacks/Operating_systems/EL9_Stack/7.0/mkdocs.yaml
similarity index 100%
rename from Stacks/Operating_systems/EL9_Stack/6.4/mkdocs.yaml
rename to Stacks/Operating_systems/EL9_Stack/7.0/mkdocs.yaml
diff --git a/Stacks/Servers/EL7_KVM_VM_Stack/7.0/EL7_KVM_VM_Stack.yaml b/Stacks/Servers/EL7_KVM_VM_Stack/7.0/EL7_KVM_VM_Stack.yaml
new file mode 100644
index 00000000..8cbdbdfe
--- /dev/null
+++ b/Stacks/Servers/EL7_KVM_VM_Stack/7.0/EL7_KVM_VM_Stack.yaml
@@ -0,0 +1,25 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: 866645e3f5054b82a1c0f7d7d8f30b69
+      name: Stacks/Servers
+  templates:
+    - uuid: fa4319b459bc4ebe845261ba8aaf739f
+      template: 'EL7 KVM VM Stack'
+      name: 'EL7 KVM VM Stack'
+      description: |
+        Base stack template for EL7 based virtual machines.
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      templates:
+        - name: 'EL7 Stack'
+        - name: qemu-ga
+      groups:
+        - name: Stacks/Servers
+      tags:
+        - tag: class
+          value: stack
diff --git a/Stacks/Servers/EL7_KVM_VM_Stack/7.0/README.md b/Stacks/Servers/EL7_KVM_VM_Stack/7.0/README.md
new file mode 100644
index 00000000..f7b12ade
--- /dev/null
+++ b/Stacks/Servers/EL7_KVM_VM_Stack/7.0/README.md
@@ -0,0 +1,25 @@
+# Zabbix Template: EL7 KVM VM Stack
+
+![class: stack](https://img.shields.io/badge/class-stack-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Base stack template for EL7 based virtual machines.
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Linked Templates
+
+This Zabbix template depends on the following templates.
+
+* EL7 Stack
+* qemu-ga
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Stacks/Servers/EL7_KVM_VM_Stack/6.4/docs/gen_ref_pages.py b/Stacks/Servers/EL7_KVM_VM_Stack/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Stacks/Servers/EL7_KVM_VM_Stack/6.4/docs/gen_ref_pages.py
rename to Stacks/Servers/EL7_KVM_VM_Stack/7.0/docs/gen_ref_pages.py
diff --git a/Stacks/Servers/EL7_KVM_VM_Stack/6.4/mkdocs.yaml b/Stacks/Servers/EL7_KVM_VM_Stack/7.0/mkdocs.yaml
similarity index 100%
rename from Stacks/Servers/EL7_KVM_VM_Stack/6.4/mkdocs.yaml
rename to Stacks/Servers/EL7_KVM_VM_Stack/7.0/mkdocs.yaml
diff --git a/Stacks/Servers/EL8_KVM_VM_Stack/7.0/EL8_KVM_VM_Stack.yaml b/Stacks/Servers/EL8_KVM_VM_Stack/7.0/EL8_KVM_VM_Stack.yaml
new file mode 100644
index 00000000..8fe44d94
--- /dev/null
+++ b/Stacks/Servers/EL8_KVM_VM_Stack/7.0/EL8_KVM_VM_Stack.yaml
@@ -0,0 +1,25 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: 866645e3f5054b82a1c0f7d7d8f30b69
+      name: Stacks/Servers
+  templates:
+    - uuid: e98af599eb5a4cfd86a2b6414b8a9958
+      template: 'EL8 KVM VM Stack'
+      name: 'EL8 KVM VM Stack'
+      description: |
+        Base stack template for EL8 based virtual machines.
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      templates:
+        - name: 'EL8 Stack'
+        - name: qemu-ga
+      groups:
+        - name: Stacks/Servers
+      tags:
+        - tag: class
+          value: stack
diff --git a/Stacks/Servers/EL8_KVM_VM_Stack/7.0/README.md b/Stacks/Servers/EL8_KVM_VM_Stack/7.0/README.md
new file mode 100644
index 00000000..438f464b
--- /dev/null
+++ b/Stacks/Servers/EL8_KVM_VM_Stack/7.0/README.md
@@ -0,0 +1,25 @@
+# Zabbix Template: EL8 KVM VM Stack
+
+![class: stack](https://img.shields.io/badge/class-stack-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Base stack template for EL8 based virtual machines.
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Linked Templates
+
+This Zabbix template depends on the following templates.
+
+* EL8 Stack
+* qemu-ga
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Stacks/Servers/EL8_KVM_VM_Stack/6.4/docs/gen_ref_pages.py b/Stacks/Servers/EL8_KVM_VM_Stack/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Stacks/Servers/EL8_KVM_VM_Stack/6.4/docs/gen_ref_pages.py
rename to Stacks/Servers/EL8_KVM_VM_Stack/7.0/docs/gen_ref_pages.py
diff --git a/Stacks/Servers/EL8_KVM_VM_Stack/6.4/mkdocs.yaml b/Stacks/Servers/EL8_KVM_VM_Stack/7.0/mkdocs.yaml
similarity index 100%
rename from Stacks/Servers/EL8_KVM_VM_Stack/6.4/mkdocs.yaml
rename to Stacks/Servers/EL8_KVM_VM_Stack/7.0/mkdocs.yaml
diff --git a/Stacks/Servers/EL9_KVM_VM_Stack/7.0/EL9_KVM_VM_Stack.yaml b/Stacks/Servers/EL9_KVM_VM_Stack/7.0/EL9_KVM_VM_Stack.yaml
new file mode 100644
index 00000000..7e2e28b2
--- /dev/null
+++ b/Stacks/Servers/EL9_KVM_VM_Stack/7.0/EL9_KVM_VM_Stack.yaml
@@ -0,0 +1,25 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: 866645e3f5054b82a1c0f7d7d8f30b69
+      name: Stacks/Servers
+  templates:
+    - uuid: 15e8db5f6c80464faa3da85bd3322e9b
+      template: 'EL9 KVM VM Stack'
+      name: 'EL9 KVM VM Stack'
+      description: |
+        Base stack template for EL9 based virtual machines.
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      templates:
+        - name: 'EL9 Stack'
+        - name: qemu-ga
+      groups:
+        - name: Stacks/Servers
+      tags:
+        - tag: class
+          value: stack
diff --git a/Stacks/Servers/EL9_KVM_VM_Stack/7.0/README.md b/Stacks/Servers/EL9_KVM_VM_Stack/7.0/README.md
new file mode 100644
index 00000000..4da1a673
--- /dev/null
+++ b/Stacks/Servers/EL9_KVM_VM_Stack/7.0/README.md
@@ -0,0 +1,25 @@
+# Zabbix Template: EL9 KVM VM Stack
+
+![class: stack](https://img.shields.io/badge/class-stack-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Base stack template for EL9 based virtual machines.
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Linked Templates
+
+This Zabbix template depends on the following templates.
+
+* EL9 Stack
+* qemu-ga
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Stacks/Servers/EL9_KVM_VM_Stack/6.4/docs/gen_ref_pages.py b/Stacks/Servers/EL9_KVM_VM_Stack/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Stacks/Servers/EL9_KVM_VM_Stack/6.4/docs/gen_ref_pages.py
rename to Stacks/Servers/EL9_KVM_VM_Stack/7.0/docs/gen_ref_pages.py
diff --git a/Stacks/Servers/EL9_KVM_VM_Stack/6.4/mkdocs.yaml b/Stacks/Servers/EL9_KVM_VM_Stack/7.0/mkdocs.yaml
similarity index 100%
rename from Stacks/Servers/EL9_KVM_VM_Stack/6.4/mkdocs.yaml
rename to Stacks/Servers/EL9_KVM_VM_Stack/7.0/mkdocs.yaml
diff --git a/Templates/Applications/Cronie/7.0/Cronie.yaml b/Templates/Applications/Cronie/7.0/Cronie.yaml
new file mode 100644
index 00000000..d8b5a88e
--- /dev/null
+++ b/Templates/Applications/Cronie/7.0/Cronie.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: 68118ee2b30546478c4a6caf3cc257d8
+      template: Cronie
+      name: Cronie
+      description: |
+        Monitoring of [Cronie](https://github.com/cronie-crond/cronie).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: bfc5695c8f9a42369b6f20f8ca8f9198
+          name: 'Cronie: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[crond,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about Cronie processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: c7503e4685954459b1f5cdd4689dac8f
+          name: 'Cronie: Unit active state'
+          type: DEPENDENT
+          key: rabe.Cronie.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["crond.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: fe48013762a544c2af6fa8f85ebde1ba
+              expression: last(/Cronie/rabe.Cronie.active_state)<>1
+              name: 'Cronie: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 24d9fbaae29343c3ad35960410ef8f24
+          name: 'Cronie: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.Cronie.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of Cronie processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[crond,root,,summary]'
+          tags:
+            - tag: component
+              value: cronie
+        - uuid: 3329d9db09dd42c2b4b79f7bb580b09a
+          name: 'Cronie: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.Cronie.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of Cronie processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[crond,root,,summary]'
+          tags:
+            - tag: component
+              value: cronie
+        - uuid: 5bf43cd9eaa9460799dafcc827501a70
+          name: 'Cronie: Service load state'
+          type: DEPENDENT
+          key: rabe.Cronie.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["crond.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: fc21c63ac8c048ab82558630a5b4f8b1
+          name: 'Cronie: Number of processes'
+          type: DEPENDENT
+          key: rabe.Cronie.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of Cronie processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[crond,root,,summary]'
+          tags:
+            - tag: component
+              value: cronie
+          triggers:
+            - uuid: ef13887e22f34a408992a818b6d68f2f
+              expression: 'last(/Cronie/rabe.Cronie.processes)<{$CRONIE.THRESHOLD.MIN_PROC}'
+              name: 'Cronie: No running processes'
+              priority: HIGH
+              description: 'No running Cronie processes.'
+              dependencies:
+                - name: 'Cronie: Service is not running'
+                  expression: last(/Cronie/rabe.Cronie.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 32752c9c060e4f0fa7f3c1726a38758c
+          name: 'Cronie: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.Cronie.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of Cronie processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[crond,root,,summary]'
+          tags:
+            - tag: component
+              value: cronie
+        - uuid: 2367b7951dcf43528a91c2ab7358c8b5
+          name: 'Cronie: Swap usage'
+          type: DEPENDENT
+          key: rabe.Cronie.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of Cronie processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[crond,root,,summary]'
+          tags:
+            - tag: component
+              value: cronie
+        - uuid: 5e6df906741a43eabb30f02f1aae47b8
+          name: 'Cronie: Number of threads'
+          type: DEPENDENT
+          key: rabe.Cronie.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of Cronie threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[crond,root,,summary]'
+          tags:
+            - tag: component
+              value: cronie
+        - uuid: fe480f6fa660404790b6c9d53d296e30
+          name: 'Cronie: Unit file state'
+          type: DEPENDENT
+          key: rabe.Cronie.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["crond.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 211faa71c5174273b4f837dc863658d8
+          name: 'Cronie: Uptime'
+          type: DEPENDENT
+          key: rabe.Cronie.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["crond.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: e06c778c8b29464f973074b13dfcbdbc
+              expression: last(/Cronie/rabe.Cronie.uptime)<=10m
+              name: 'Cronie: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: 3132cd6ccf3d45fc8cc38f5f17233155
+          name: 'Cronie: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["crond.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: cronie
+      macros:
+        - macro: '{$CRONIE.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: eb463a5714e746519592b864a1095030
+          name: 'Cronie: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Cronie
+                        key: rabe.Cronie.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Cronie
+                        key: rabe.Cronie.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABJD
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Cronie
+                        key: rabe.Cronie.rss
+                    - type: STRING
+                      name: reference
+                      value: AABJE
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Cronie
+                        key: rabe.Cronie.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Cronie
+                        key: rabe.Cronie.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABJF
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Cronie
+                        key: rabe.Cronie.swap
+                    - type: STRING
+                      name: reference
+                      value: AABJG
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Cronie
+                        key: rabe.Cronie.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Cronie
+                        key: rabe.Cronie.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Cronie
+                        key: rabe.Cronie.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: ab28be4710f144c5b2929bc8da84c3d5
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: 2940787c3b14479294d01cb03f69fb03
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: c4a7eadfe0304c25a3e5993295245e36
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/Cronie/7.0/README.md b/Templates/Applications/Cronie/7.0/README.md
new file mode 100644
index 00000000..11b3d2e0
--- /dev/null
+++ b/Templates/Applications/Cronie/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: Cronie
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: cronie](https://img.shields.io/badge/target-cronie-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [Cronie](https://github.com/cronie-crond/cronie).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: Cronie: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about Cronie processes
+
+```console
+proc.get[crond,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: Cronie: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.Cronie.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["crond.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: Cronie: CPU seconds (system)
+
+![component: cronie](https://img.shields.io/badge/component-cronie-00c9bf)
+
+Total CPU seconds (system) of Cronie processes.
+
+```console
+rabe.Cronie.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[crond,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: Cronie: CPU seconds (user)
+
+![component: cronie](https://img.shields.io/badge/component-cronie-00c9bf)
+
+Total CPU seconds (user) of Cronie processes.
+
+```console
+rabe.Cronie.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[crond,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: Cronie: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.Cronie.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["crond.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: Cronie: Number of processes
+
+![component: cronie](https://img.shields.io/badge/component-cronie-00c9bf)
+
+Number of Cronie processes.
+
+```console
+rabe.Cronie.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[crond,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: Cronie: Memory usage (RSS)
+
+![component: cronie](https://img.shields.io/badge/component-cronie-00c9bf)
+
+Memory usage of Cronie processes.
+
+```console
+rabe.Cronie.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[crond,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: Cronie: Swap usage
+
+![component: cronie](https://img.shields.io/badge/component-cronie-00c9bf)
+
+Swap usage of Cronie processes.
+
+```console
+rabe.Cronie.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[crond,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: Cronie: Number of threads
+
+![component: cronie](https://img.shields.io/badge/component-cronie-00c9bf)
+
+Number of Cronie threads.
+
+```console
+rabe.Cronie.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[crond,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: Cronie: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.Cronie.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["crond.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: Cronie: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.Cronie.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["crond.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: Cronie: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["crond.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: Cronie: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/Cronie/rabe.Cronie.active_state)<>1
+```
+
+### Trigger: Cronie: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running Cronie processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/Cronie/rabe.Cronie.processes)<{$CRONIE.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: Cronie: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/Cronie/rabe.Cronie.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$CRONIE.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* Cronie: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/Cronie/6.4/docs/gen_ref_pages.py b/Templates/Applications/Cronie/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/Cronie/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/Cronie/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/Cronie/6.4/mkdocs.yaml b/Templates/Applications/Cronie/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/Cronie/6.4/mkdocs.yaml
rename to Templates/Applications/Cronie/7.0/mkdocs.yaml
diff --git a/Templates/Applications/Songticker/7.0/README.md b/Templates/Applications/Songticker/7.0/README.md
new file mode 100644
index 00000000..2971367f
--- /dev/null
+++ b/Templates/Applications/Songticker/7.0/README.md
@@ -0,0 +1,201 @@
+# Zabbix Template: Songticker
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: songticker](https://img.shields.io/badge/target-songticker-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Check if the songticker is getting regular updates
+
+## Items
+
+### Item: Songticker: Last update
+
+![component: songticker](https://img.shields.io/badge/component-songticker-00c9bf)
+
+
+
+```console
+rabe.songticker.date
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `rabe.songticker.xml` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| XMLPATH | `["/*[name()='ticker']/*[name()='date']/text()"]` |
+| JAVASCRIPT | `["return Date.parse(value)/1000"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: Songticker: Show end
+
+![component: songticker](https://img.shields.io/badge/component-songticker-00c9bf)
+
+When the current show ends.
+
+```console
+rabe.songticker.show_endtime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `rabe.songticker.xml` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| XMLPATH | `["/*[name()='ticker']/*[name()='show']/*[name()='endTime']/text()"]` |
+| JAVASCRIPT | `["return Date.parse(value)/1000"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: Songticker: Show name
+
+![component: songticker](https://img.shields.io/badge/component-songticker-00c9bf)
+
+Name of the currently running show.
+
+```console
+rabe.songticker.show_name
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | TEXT |
+| History | 7d |
+| Source item | `rabe.songticker.xml` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| XMLPATH | `["/*[name()='ticker']/*[name()='show']/*[name()='name']/text()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: Songticker: Current Artist
+
+![component: songticker](https://img.shields.io/badge/component-songticker-00c9bf)
+
+Currently running artist.
+
+```console
+rabe.songticker.track_artist
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | TEXT |
+| History | 7d |
+| Source item | `rabe.songticker.xml` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| XMLPATH | `["/*[name()='ticker']/*[name()='track']/*[name()='artist']/text()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: Songticker: Current Title
+
+![component: songticker](https://img.shields.io/badge/component-songticker-00c9bf)
+
+Currently running track.
+
+```console
+rabe.songticker.track_title
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | TEXT |
+| History | 7d |
+| Source item | `rabe.songticker.xml` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| XMLPATH | `["/*[name()='ticker']/*[name()='track']/*[name()='title']/text()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: Songticker XML reponse
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+
+
+```console
+rabe.songticker.xml
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | HTTP_AGENT |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: Songticker: Show ends in the past
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No next show was started in songticker. This could mean that songticker itself is down somehow, or there could be an issue in our metadata that needs investigating.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+
+```console
+last(/Songticker/rabe.songticker.show_endtime)-time()<0
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$SONGTICKER.XML.ENDPOINT}`
+
+Location of the generated XML file for Songticker
+
+Default:
+
+```console
+https://songticker.rabe.ch/songticker/0.9.3/current.xml
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* Songticker: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/Songticker/7.0/Songticker.yaml b/Templates/Applications/Songticker/7.0/Songticker.yaml
new file mode 100644
index 00000000..3943d19a
--- /dev/null
+++ b/Templates/Applications/Songticker/7.0/Songticker.yaml
@@ -0,0 +1,235 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: d1403f0294d5459ba004f08def23e608
+      template: Songticker
+      name: Songticker
+      description: 'Check if the songticker is getting regular updates'
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: c84c0cb280db435484c9217b22208309
+          name: 'Songticker: Last update'
+          type: DEPENDENT
+          key: rabe.songticker.date
+          delay: '0'
+          history: 7d
+          trends: '0'
+          units: unixtime
+          preprocessing:
+            - type: XMLPATH
+              parameters:
+                - '/*[name()=''ticker'']/*[name()=''date'']/text()'
+            - type: JAVASCRIPT
+              parameters:
+                - 'return Date.parse(value)/1000'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: rabe.songticker.xml
+          tags:
+            - tag: component
+              value: songticker
+        - uuid: 1664b855379f4b6ea7764e9fd05a1a89
+          name: 'Songticker: Show end'
+          type: DEPENDENT
+          key: rabe.songticker.show_endtime
+          delay: '0'
+          history: 7d
+          trends: '0'
+          units: unixtime
+          description: 'When the current show ends.'
+          preprocessing:
+            - type: XMLPATH
+              parameters:
+                - '/*[name()=''ticker'']/*[name()=''show'']/*[name()=''endTime'']/text()'
+            - type: JAVASCRIPT
+              parameters:
+                - 'return Date.parse(value)/1000'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: rabe.songticker.xml
+          tags:
+            - tag: component
+              value: songticker
+          triggers:
+            - uuid: 52350d3ee2a14e1381809367122da29d
+              expression: last(/Songticker/rabe.songticker.show_endtime)-time()<0
+              name: 'Songticker: Show ends in the past'
+              priority: WARNING
+              description: 'No next show was started in songticker. This could mean that songticker itself is down somehow, or there could be an issue in our metadata that needs investigating.'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 9469eb2fc7e3445f92053a99c8219958
+          name: 'Songticker: Show name'
+          type: DEPENDENT
+          key: rabe.songticker.show_name
+          delay: '0'
+          history: 7d
+          value_type: TEXT
+          trends: '0'
+          description: 'Name of the currently running show.'
+          preprocessing:
+            - type: XMLPATH
+              parameters:
+                - '/*[name()=''ticker'']/*[name()=''show'']/*[name()=''name'']/text()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: rabe.songticker.xml
+          tags:
+            - tag: component
+              value: songticker
+        - uuid: a503e836d6f6428d83d0a1cf35b98551
+          name: 'Songticker: Current Artist'
+          type: DEPENDENT
+          key: rabe.songticker.track_artist
+          delay: '0'
+          history: 7d
+          value_type: TEXT
+          trends: '0'
+          description: 'Currently running artist.'
+          preprocessing:
+            - type: XMLPATH
+              parameters:
+                - '/*[name()=''ticker'']/*[name()=''track'']/*[name()=''artist'']/text()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: rabe.songticker.xml
+          tags:
+            - tag: component
+              value: songticker
+        - uuid: 4b158ace141648a7a1d2b5308ab6f4ec
+          name: 'Songticker: Current Title'
+          type: DEPENDENT
+          key: rabe.songticker.track_title
+          delay: '0'
+          history: 7d
+          value_type: TEXT
+          trends: '0'
+          description: 'Currently running track.'
+          preprocessing:
+            - type: XMLPATH
+              parameters:
+                - '/*[name()=''ticker'']/*[name()=''track'']/*[name()=''title'']/text()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: rabe.songticker.xml
+          tags:
+            - tag: component
+              value: songticker
+        - uuid: 17572c4eaaf64ccdae11785ada8f85b0
+          name: 'Songticker XML reponse'
+          type: HTTP_AGENT
+          key: rabe.songticker.xml
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          timeout: 3s
+          url: '{$SONGTICKER.XML.ENDPOINT}'
+          tags:
+            - tag: component
+              value: raw
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: songticker
+      macros:
+        - macro: '{$SONGTICKER.XML.ENDPOINT}'
+          value: 'https://songticker.rabe.ch/songticker/0.9.3/current.xml'
+          description: 'Location of the generated XML file for Songticker'
+      dashboards:
+        - uuid: 48bd9ac035544391bbc984804645171a
+          name: 'Songticker: Overview'
+          pages:
+            - widgets:
+                - type: clock
+                  width: '9'
+                  height: '3'
+                  fields:
+                    - type: INTEGER
+                      name: clock_type
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                - type: item
+                  'y': '3'
+                  width: '36'
+                  height: '3'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'last update'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Songticker
+                        key: rabe.songticker.date
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                - type: item
+                  x: '9'
+                  width: '63'
+                  height: '3'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'current show'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Songticker
+                        key: rabe.songticker.show_name
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                - type: item
+                  x: '36'
+                  'y': '3'
+                  width: '36'
+                  height: '3'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'show end time'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: Songticker
+                        key: rabe.songticker.show_endtime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
diff --git a/Templates/Applications/Songticker/6.4/docs/gen_ref_pages.py b/Templates/Applications/Songticker/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/Songticker/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/Songticker/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/Songticker/6.4/mkdocs.yaml b/Templates/Applications/Songticker/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/Songticker/6.4/mkdocs.yaml
rename to Templates/Applications/Songticker/7.0/mkdocs.yaml
diff --git a/Templates/Applications/Zabbix_unsupported_items/7.0/README.md b/Templates/Applications/Zabbix_unsupported_items/7.0/README.md
new file mode 100644
index 00000000..967a79eb
--- /dev/null
+++ b/Templates/Applications/Zabbix_unsupported_items/7.0/README.md
@@ -0,0 +1,59 @@
+# Zabbix Template: Zabbix unsupported items
+
+![class: app](https://img.shields.io/badge/class-app-00c9bf) ![target: zabbix](https://img.shields.io/badge/target-zabbix-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Implementation agnostic monitoring of unsupported items from Zabbix internal.
+
+Used as a mix-in to most low-level stack templates.
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: Unsupported items
+
+![component: zabbix](https://img.shields.io/badge/component-zabbix-00c9bf) ![target: zabbix](https://img.shields.io/badge/target-zabbix-00c9bf)
+
+The number of unsupported items on this host
+
+```console
+zabbix[host,,items_unsupported]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | INTERNAL |
+| History | 7d |
+
+## Triggers
+
+### Trigger: Unsupported items detected
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+The host has unsupported items, which might be an indication of a problem with certain items. Disable or fix the items.
+
+A count expression is used to reduce flapping to allow for items to go missing for one reading and then show back up.
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+
+```console
+count(/Zabbix unsupported items/zabbix[host,,items_unsupported],#3,"gt","0")>=1
+```
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/Zabbix_unsupported_items/7.0/Zabbix_unsupported_items.yaml b/Templates/Applications/Zabbix_unsupported_items/7.0/Zabbix_unsupported_items.yaml
new file mode 100644
index 00000000..3cc99498
--- /dev/null
+++ b/Templates/Applications/Zabbix_unsupported_items/7.0/Zabbix_unsupported_items.yaml
@@ -0,0 +1,56 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: 925cd90144d94624b05c6f08129c7365
+      template: 'Zabbix unsupported items'
+      name: 'Zabbix unsupported items'
+      description: |
+        Implementation agnostic monitoring of unsupported items from Zabbix internal.
+        
+        Used as a mix-in to most low-level stack templates.
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: a53fdb38181748ed90cc4b647641858b
+          name: 'Unsupported items'
+          type: INTERNAL
+          key: 'zabbix[host,,items_unsupported]'
+          delay: 5m
+          history: 7d
+          description: 'The number of unsupported items on this host'
+          preprocessing:
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - '900'
+          tags:
+            - tag: component
+              value: zabbix
+            - tag: target
+              value: zabbix
+          triggers:
+            - uuid: b2fb93680d1343f69b1878d657495834
+              expression: 'count(/Zabbix unsupported items/zabbix[host,,items_unsupported],#3,"gt","0")>=1'
+              name: 'Unsupported items detected'
+              opdata: 'Current unsupported items: {ITEM.LASTVALUE1}'
+              priority: WARNING
+              description: |
+                The host has unsupported items, which might be an indication of a problem with certain items. Disable or fix the items.
+                
+                A count expression is used to reduce flapping to allow for items to go missing for one reading and then show back up.
+              tags:
+                - tag: scope
+                  value: notice
+      tags:
+        - tag: class
+          value: app
+        - tag: target
+          value: zabbix
diff --git a/Templates/Applications/Zabbix_unsupported_items/6.4/docs/gen_ref_pages.py b/Templates/Applications/Zabbix_unsupported_items/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/Zabbix_unsupported_items/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/Zabbix_unsupported_items/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/Zabbix_unsupported_items/6.4/mkdocs.yaml b/Templates/Applications/Zabbix_unsupported_items/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/Zabbix_unsupported_items/6.4/mkdocs.yaml
rename to Templates/Applications/Zabbix_unsupported_items/7.0/mkdocs.yaml
diff --git a/Templates/Applications/auditd/7.0/README.md b/Templates/Applications/auditd/7.0/README.md
new file mode 100644
index 00000000..98932679
--- /dev/null
+++ b/Templates/Applications/auditd/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: auditd
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: auditd](https://img.shields.io/badge/target-auditd-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [auditd](https://people.redhat.com/sgrubb/audit/).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: auditd: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about auditd processes
+
+```console
+proc.get[auditd,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: auditd: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.auditd.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["auditd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: auditd: CPU seconds (system)
+
+![component: auditd](https://img.shields.io/badge/component-auditd-00c9bf)
+
+Total CPU seconds (system) of auditd processes.
+
+```console
+rabe.auditd.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[auditd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: auditd: CPU seconds (user)
+
+![component: auditd](https://img.shields.io/badge/component-auditd-00c9bf)
+
+Total CPU seconds (user) of auditd processes.
+
+```console
+rabe.auditd.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[auditd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: auditd: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.auditd.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["auditd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: auditd: Number of processes
+
+![component: auditd](https://img.shields.io/badge/component-auditd-00c9bf)
+
+Number of auditd processes.
+
+```console
+rabe.auditd.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[auditd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: auditd: Memory usage (RSS)
+
+![component: auditd](https://img.shields.io/badge/component-auditd-00c9bf)
+
+Memory usage of auditd processes.
+
+```console
+rabe.auditd.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[auditd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: auditd: Swap usage
+
+![component: auditd](https://img.shields.io/badge/component-auditd-00c9bf)
+
+Swap usage of auditd processes.
+
+```console
+rabe.auditd.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[auditd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: auditd: Number of threads
+
+![component: auditd](https://img.shields.io/badge/component-auditd-00c9bf)
+
+Number of auditd threads.
+
+```console
+rabe.auditd.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[auditd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: auditd: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.auditd.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["auditd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: auditd: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.auditd.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["auditd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: auditd: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["auditd.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: auditd: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/auditd/rabe.auditd.active_state)<>1
+```
+
+### Trigger: auditd: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running auditd processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/auditd/rabe.auditd.processes)<{$AUDITD.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: auditd: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/auditd/rabe.auditd.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$AUDITD.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* auditd: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/auditd/7.0/auditd.yaml b/Templates/Applications/auditd/7.0/auditd.yaml
new file mode 100644
index 00000000..fd858045
--- /dev/null
+++ b/Templates/Applications/auditd/7.0/auditd.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: cb33db846b0f4ca4bf01ada6228204ef
+      template: auditd
+      name: auditd
+      description: |
+        Monitoring of [auditd](https://people.redhat.com/sgrubb/audit/).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: 9238e7fe3ca14f3ab433837ded70c170
+          name: 'auditd: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[auditd,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about auditd processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: c73719485a194e94a7042a83d5c90ad8
+          name: 'auditd: Unit active state'
+          type: DEPENDENT
+          key: rabe.auditd.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["auditd.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 46b2cfdcd304459bb3c2664d8941f6d3
+              expression: last(/auditd/rabe.auditd.active_state)<>1
+              name: 'auditd: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: e7c1a45d007e4c2fbdf3c14d9e783837
+          name: 'auditd: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.auditd.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of auditd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[auditd,root,,summary]'
+          tags:
+            - tag: component
+              value: auditd
+        - uuid: 247b87f17abb489bad3df034c9cd2114
+          name: 'auditd: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.auditd.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of auditd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[auditd,root,,summary]'
+          tags:
+            - tag: component
+              value: auditd
+        - uuid: d0f10c7b59cb4d3e87a79254a293534b
+          name: 'auditd: Service load state'
+          type: DEPENDENT
+          key: rabe.auditd.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["auditd.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 00604ef169554ef192c6693f75ed1c35
+          name: 'auditd: Number of processes'
+          type: DEPENDENT
+          key: rabe.auditd.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of auditd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[auditd,root,,summary]'
+          tags:
+            - tag: component
+              value: auditd
+          triggers:
+            - uuid: e87c0519b4f54aad9d7d71c9f7a86313
+              expression: 'last(/auditd/rabe.auditd.processes)<{$AUDITD.THRESHOLD.MIN_PROC}'
+              name: 'auditd: No running processes'
+              priority: HIGH
+              description: 'No running auditd processes.'
+              dependencies:
+                - name: 'auditd: Service is not running'
+                  expression: last(/auditd/rabe.auditd.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 3536f3dfe8d34816af5299db7df961ba
+          name: 'auditd: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.auditd.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of auditd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[auditd,root,,summary]'
+          tags:
+            - tag: component
+              value: auditd
+        - uuid: 94ecaf2672fa4d069f221d117e9b9c58
+          name: 'auditd: Swap usage'
+          type: DEPENDENT
+          key: rabe.auditd.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of auditd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[auditd,root,,summary]'
+          tags:
+            - tag: component
+              value: auditd
+        - uuid: aa01f91534c446f9ab3194f85ad42a32
+          name: 'auditd: Number of threads'
+          type: DEPENDENT
+          key: rabe.auditd.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of auditd threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[auditd,root,,summary]'
+          tags:
+            - tag: component
+              value: auditd
+        - uuid: 0f05b3bb9b4a4e6d9a5895076ee18039
+          name: 'auditd: Unit file state'
+          type: DEPENDENT
+          key: rabe.auditd.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["auditd.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 7a51b5145538430aa3c363f9781af10b
+          name: 'auditd: Uptime'
+          type: DEPENDENT
+          key: rabe.auditd.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["auditd.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: bd20f3a273324c88b408c110135a4591
+              expression: last(/auditd/rabe.auditd.uptime)<=10m
+              name: 'auditd: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: fee979e9d3c64cb1873264957739052d
+          name: 'auditd: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["auditd.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: auditd
+      macros:
+        - macro: '{$AUDITD.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: 872c608dda554c688ae39c4b33d564cc
+          name: 'auditd: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: auditd
+                        key: rabe.auditd.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: auditd
+                        key: rabe.auditd.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABJH
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: auditd
+                        key: rabe.auditd.rss
+                    - type: STRING
+                      name: reference
+                      value: AABJI
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: auditd
+                        key: rabe.auditd.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: auditd
+                        key: rabe.auditd.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABJJ
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: auditd
+                        key: rabe.auditd.swap
+                    - type: STRING
+                      name: reference
+                      value: AABJK
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: auditd
+                        key: rabe.auditd.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: auditd
+                        key: rabe.auditd.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: auditd
+                        key: rabe.auditd.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: 8dbfbef1cf2f4da894428603161b3fb8
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: 2f9ca8a700394a89a2167304e72a50d8
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: e1060cbfc184495185807c473707961c
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/auditd/6.4/docs/gen_ref_pages.py b/Templates/Applications/auditd/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/auditd/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/auditd/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/auditd/6.4/mkdocs.yaml b/Templates/Applications/auditd/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/auditd/6.4/mkdocs.yaml
rename to Templates/Applications/auditd/7.0/mkdocs.yaml
diff --git a/Templates/Applications/candlepin-rhsmcertd/7.0/README.md b/Templates/Applications/candlepin-rhsmcertd/7.0/README.md
new file mode 100644
index 00000000..9a073672
--- /dev/null
+++ b/Templates/Applications/candlepin-rhsmcertd/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: candlepin-rhsmcertd
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: candlepin-rhsmcertd](https://img.shields.io/badge/target-candlepin-rhsmcertd-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [candlepin-rhsmcertd](https://github.com/candlepin/subscription-manager/blob/main/src/daemons/rhsmcertd.c).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: candlepin-rhsmcertd: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about candlepin-rhsmcertd processes
+
+```console
+proc.get[rhsmcertd,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: candlepin-rhsmcertd: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.candlepin-rhsmcertd.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["rhsmcertd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: candlepin-rhsmcertd: CPU seconds (system)
+
+![component: candlepin-rhsmcertd](https://img.shields.io/badge/component-candlepin-rhsmcertd-00c9bf)
+
+Total CPU seconds (system) of candlepin-rhsmcertd processes.
+
+```console
+rabe.candlepin-rhsmcertd.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[rhsmcertd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: candlepin-rhsmcertd: CPU seconds (user)
+
+![component: candlepin-rhsmcertd](https://img.shields.io/badge/component-candlepin-rhsmcertd-00c9bf)
+
+Total CPU seconds (user) of candlepin-rhsmcertd processes.
+
+```console
+rabe.candlepin-rhsmcertd.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[rhsmcertd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: candlepin-rhsmcertd: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.candlepin-rhsmcertd.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["rhsmcertd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: candlepin-rhsmcertd: Number of processes
+
+![component: candlepin-rhsmcertd](https://img.shields.io/badge/component-candlepin-rhsmcertd-00c9bf)
+
+Number of candlepin-rhsmcertd processes.
+
+```console
+rabe.candlepin-rhsmcertd.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rhsmcertd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: candlepin-rhsmcertd: Memory usage (RSS)
+
+![component: candlepin-rhsmcertd](https://img.shields.io/badge/component-candlepin-rhsmcertd-00c9bf)
+
+Memory usage of candlepin-rhsmcertd processes.
+
+```console
+rabe.candlepin-rhsmcertd.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rhsmcertd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: candlepin-rhsmcertd: Swap usage
+
+![component: candlepin-rhsmcertd](https://img.shields.io/badge/component-candlepin-rhsmcertd-00c9bf)
+
+Swap usage of candlepin-rhsmcertd processes.
+
+```console
+rabe.candlepin-rhsmcertd.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rhsmcertd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: candlepin-rhsmcertd: Number of threads
+
+![component: candlepin-rhsmcertd](https://img.shields.io/badge/component-candlepin-rhsmcertd-00c9bf)
+
+Number of candlepin-rhsmcertd threads.
+
+```console
+rabe.candlepin-rhsmcertd.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rhsmcertd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: candlepin-rhsmcertd: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.candlepin-rhsmcertd.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["rhsmcertd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: candlepin-rhsmcertd: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.candlepin-rhsmcertd.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["rhsmcertd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: candlepin-rhsmcertd: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["rhsmcertd.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: candlepin-rhsmcertd: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/candlepin-rhsmcertd/rabe.candlepin-rhsmcertd.active_state)<>1
+```
+
+### Trigger: candlepin-rhsmcertd: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running candlepin-rhsmcertd processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/candlepin-rhsmcertd/rabe.candlepin-rhsmcertd.processes)<{$CANDLEPINRHSMCERTD.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: candlepin-rhsmcertd: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/candlepin-rhsmcertd/rabe.candlepin-rhsmcertd.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$CANDLEPINRHSMCERTD.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* candlepin-rhsmcertd: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/candlepin-rhsmcertd/7.0/candlepin-rhsmcertd.yaml b/Templates/Applications/candlepin-rhsmcertd/7.0/candlepin-rhsmcertd.yaml
new file mode 100644
index 00000000..26e5d4b6
--- /dev/null
+++ b/Templates/Applications/candlepin-rhsmcertd/7.0/candlepin-rhsmcertd.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: a94da67f2f9d42a5b2daa4f25effa56e
+      template: candlepin-rhsmcertd
+      name: candlepin-rhsmcertd
+      description: |
+        Monitoring of [candlepin-rhsmcertd](https://github.com/candlepin/subscription-manager/blob/main/src/daemons/rhsmcertd.c).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: 6293b90697374a2aa898f1c4078b32a7
+          name: 'candlepin-rhsmcertd: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[rhsmcertd,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about candlepin-rhsmcertd processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: ed309ddc6e86458d8106370124154871
+          name: 'candlepin-rhsmcertd: Unit active state'
+          type: DEPENDENT
+          key: rabe.candlepin-rhsmcertd.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["rhsmcertd.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 6c9112436d4e47c0ab598d5919e20a40
+              expression: last(/candlepin-rhsmcertd/rabe.candlepin-rhsmcertd.active_state)<>1
+              name: 'candlepin-rhsmcertd: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: b16abb57e2a74b2f9dd2718ff751a033
+          name: 'candlepin-rhsmcertd: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.candlepin-rhsmcertd.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of candlepin-rhsmcertd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rhsmcertd,root,,summary]'
+          tags:
+            - tag: component
+              value: candlepin-rhsmcertd
+        - uuid: b51053e289ac4dc98759e189cdadb640
+          name: 'candlepin-rhsmcertd: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.candlepin-rhsmcertd.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of candlepin-rhsmcertd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rhsmcertd,root,,summary]'
+          tags:
+            - tag: component
+              value: candlepin-rhsmcertd
+        - uuid: 5fc7415bc7ab40be811a724f1b8ade77
+          name: 'candlepin-rhsmcertd: Service load state'
+          type: DEPENDENT
+          key: rabe.candlepin-rhsmcertd.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["rhsmcertd.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 213663b17a314a9a8773abc1e7174a98
+          name: 'candlepin-rhsmcertd: Number of processes'
+          type: DEPENDENT
+          key: rabe.candlepin-rhsmcertd.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of candlepin-rhsmcertd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rhsmcertd,root,,summary]'
+          tags:
+            - tag: component
+              value: candlepin-rhsmcertd
+          triggers:
+            - uuid: 66350d13cecf42458a11032e556e8ed0
+              expression: 'last(/candlepin-rhsmcertd/rabe.candlepin-rhsmcertd.processes)<{$CANDLEPINRHSMCERTD.THRESHOLD.MIN_PROC}'
+              name: 'candlepin-rhsmcertd: No running processes'
+              priority: HIGH
+              description: 'No running candlepin-rhsmcertd processes.'
+              dependencies:
+                - name: 'candlepin-rhsmcertd: Service is not running'
+                  expression: last(/candlepin-rhsmcertd/rabe.candlepin-rhsmcertd.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 6dd8934faa20481c89b5fc695fa74477
+          name: 'candlepin-rhsmcertd: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.candlepin-rhsmcertd.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of candlepin-rhsmcertd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rhsmcertd,root,,summary]'
+          tags:
+            - tag: component
+              value: candlepin-rhsmcertd
+        - uuid: 2321af48d75a4467ac066a615bc3fc71
+          name: 'candlepin-rhsmcertd: Swap usage'
+          type: DEPENDENT
+          key: rabe.candlepin-rhsmcertd.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of candlepin-rhsmcertd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rhsmcertd,root,,summary]'
+          tags:
+            - tag: component
+              value: candlepin-rhsmcertd
+        - uuid: c95c23d2ad9d4dc2ab49d6ea295317b9
+          name: 'candlepin-rhsmcertd: Number of threads'
+          type: DEPENDENT
+          key: rabe.candlepin-rhsmcertd.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of candlepin-rhsmcertd threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rhsmcertd,root,,summary]'
+          tags:
+            - tag: component
+              value: candlepin-rhsmcertd
+        - uuid: f56871bf80d0488d9d453419c8a19121
+          name: 'candlepin-rhsmcertd: Unit file state'
+          type: DEPENDENT
+          key: rabe.candlepin-rhsmcertd.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["rhsmcertd.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 2a10fbe27e274c05914a18702d8c52bb
+          name: 'candlepin-rhsmcertd: Uptime'
+          type: DEPENDENT
+          key: rabe.candlepin-rhsmcertd.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["rhsmcertd.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 061481c49fcd44b68fe03db822cf7b94
+              expression: last(/candlepin-rhsmcertd/rabe.candlepin-rhsmcertd.uptime)<=10m
+              name: 'candlepin-rhsmcertd: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: 7c7d45696d4b4ffbab8b3b9e0f4845f8
+          name: 'candlepin-rhsmcertd: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["rhsmcertd.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: candlepin-rhsmcertd
+      macros:
+        - macro: '{$CANDLEPINRHSMCERTD.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: 16873a85cc3048cc9fc63cf9d379cf2d
+          name: 'candlepin-rhsmcertd: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: candlepin-rhsmcertd
+                        key: rabe.candlepin-rhsmcertd.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: candlepin-rhsmcertd
+                        key: rabe.candlepin-rhsmcertd.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AAAAA
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: candlepin-rhsmcertd
+                        key: rabe.candlepin-rhsmcertd.rss
+                    - type: STRING
+                      name: reference
+                      value: AAAAB
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: candlepin-rhsmcertd
+                        key: rabe.candlepin-rhsmcertd.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: candlepin-rhsmcertd
+                        key: rabe.candlepin-rhsmcertd.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AAAAC
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: candlepin-rhsmcertd
+                        key: rabe.candlepin-rhsmcertd.swap
+                    - type: STRING
+                      name: reference
+                      value: AAAAD
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: candlepin-rhsmcertd
+                        key: rabe.candlepin-rhsmcertd.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: candlepin-rhsmcertd
+                        key: rabe.candlepin-rhsmcertd.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: candlepin-rhsmcertd
+                        key: rabe.candlepin-rhsmcertd.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: 66001957246547a191dc26a467ae1b2e
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: 49039e691c834b498b503dc8311fea26
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: c5c2c1e12e2c4562953ec17087da697b
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/candlepin-rhsmcertd/6.4/docs/gen_ref_pages.py b/Templates/Applications/candlepin-rhsmcertd/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/candlepin-rhsmcertd/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/candlepin-rhsmcertd/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/candlepin-rhsmcertd/6.4/mkdocs.yaml b/Templates/Applications/candlepin-rhsmcertd/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/candlepin-rhsmcertd/6.4/mkdocs.yaml
rename to Templates/Applications/candlepin-rhsmcertd/7.0/mkdocs.yaml
diff --git a/Templates/Applications/certmonger/7.0/README.md b/Templates/Applications/certmonger/7.0/README.md
new file mode 100644
index 00000000..a7ee6afa
--- /dev/null
+++ b/Templates/Applications/certmonger/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: certmonger
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: certmonger](https://img.shields.io/badge/target-certmonger-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [certmonger](https://www.freeipa.org/page/Certmonger).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: certmonger: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about certmonger processes
+
+```console
+proc.get[certmonger,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: certmonger: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.certmonger.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["certmonger.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: certmonger: CPU seconds (system)
+
+![component: certmonger](https://img.shields.io/badge/component-certmonger-00c9bf)
+
+Total CPU seconds (system) of certmonger processes.
+
+```console
+rabe.certmonger.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[certmonger,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: certmonger: CPU seconds (user)
+
+![component: certmonger](https://img.shields.io/badge/component-certmonger-00c9bf)
+
+Total CPU seconds (user) of certmonger processes.
+
+```console
+rabe.certmonger.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[certmonger,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: certmonger: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.certmonger.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["certmonger.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: certmonger: Number of processes
+
+![component: certmonger](https://img.shields.io/badge/component-certmonger-00c9bf)
+
+Number of certmonger processes.
+
+```console
+rabe.certmonger.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[certmonger,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: certmonger: Memory usage (RSS)
+
+![component: certmonger](https://img.shields.io/badge/component-certmonger-00c9bf)
+
+Memory usage of certmonger processes.
+
+```console
+rabe.certmonger.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[certmonger,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: certmonger: Swap usage
+
+![component: certmonger](https://img.shields.io/badge/component-certmonger-00c9bf)
+
+Swap usage of certmonger processes.
+
+```console
+rabe.certmonger.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[certmonger,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: certmonger: Number of threads
+
+![component: certmonger](https://img.shields.io/badge/component-certmonger-00c9bf)
+
+Number of certmonger threads.
+
+```console
+rabe.certmonger.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[certmonger,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: certmonger: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.certmonger.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["certmonger.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: certmonger: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.certmonger.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["certmonger.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: certmonger: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["certmonger.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: certmonger: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/certmonger/rabe.certmonger.active_state)<>1
+```
+
+### Trigger: certmonger: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running certmonger processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/certmonger/rabe.certmonger.processes)<{$CERTMONGER.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: certmonger: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/certmonger/rabe.certmonger.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$CERTMONGER.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* certmonger: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/certmonger/7.0/certmonger.yaml b/Templates/Applications/certmonger/7.0/certmonger.yaml
new file mode 100644
index 00000000..04a2f096
--- /dev/null
+++ b/Templates/Applications/certmonger/7.0/certmonger.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: f45e9a83754c4a5b83a26ccae9d5c84e
+      template: certmonger
+      name: certmonger
+      description: |
+        Monitoring of [certmonger](https://www.freeipa.org/page/Certmonger).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: af62b409c5d841b080b49e70f982d49d
+          name: 'certmonger: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[certmonger,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about certmonger processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: e96d5839859b434cb2dbc4dea536f511
+          name: 'certmonger: Unit active state'
+          type: DEPENDENT
+          key: rabe.certmonger.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["certmonger.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: b853eaa14d5744b6bdde1f38761c7f55
+              expression: last(/certmonger/rabe.certmonger.active_state)<>1
+              name: 'certmonger: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 9aaf184984b0421b899be1cede002aaa
+          name: 'certmonger: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.certmonger.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of certmonger processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[certmonger,root,,summary]'
+          tags:
+            - tag: component
+              value: certmonger
+        - uuid: 80c6bc8876b84dc3b0f6ec3089bd01f9
+          name: 'certmonger: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.certmonger.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of certmonger processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[certmonger,root,,summary]'
+          tags:
+            - tag: component
+              value: certmonger
+        - uuid: 977764278ea74b14a60afc6421684ee5
+          name: 'certmonger: Service load state'
+          type: DEPENDENT
+          key: rabe.certmonger.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["certmonger.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: b91a0fb53e0243c9a4577908b2109878
+          name: 'certmonger: Number of processes'
+          type: DEPENDENT
+          key: rabe.certmonger.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of certmonger processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[certmonger,root,,summary]'
+          tags:
+            - tag: component
+              value: certmonger
+          triggers:
+            - uuid: 754bfe5a7bd3463da3545a0321d95d3e
+              expression: 'last(/certmonger/rabe.certmonger.processes)<{$CERTMONGER.THRESHOLD.MIN_PROC}'
+              name: 'certmonger: No running processes'
+              priority: HIGH
+              description: 'No running certmonger processes.'
+              dependencies:
+                - name: 'certmonger: Service is not running'
+                  expression: last(/certmonger/rabe.certmonger.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 3637bbed68ad46a398143b61b7b4f651
+          name: 'certmonger: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.certmonger.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of certmonger processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[certmonger,root,,summary]'
+          tags:
+            - tag: component
+              value: certmonger
+        - uuid: 408749e1be014dbbbaf6b773b26c112f
+          name: 'certmonger: Swap usage'
+          type: DEPENDENT
+          key: rabe.certmonger.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of certmonger processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[certmonger,root,,summary]'
+          tags:
+            - tag: component
+              value: certmonger
+        - uuid: b014d7c31d30428b9b140cf6adbe96aa
+          name: 'certmonger: Number of threads'
+          type: DEPENDENT
+          key: rabe.certmonger.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of certmonger threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[certmonger,root,,summary]'
+          tags:
+            - tag: component
+              value: certmonger
+        - uuid: 8d6a007de3ce4b4d94a68497051e05a9
+          name: 'certmonger: Unit file state'
+          type: DEPENDENT
+          key: rabe.certmonger.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["certmonger.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: a7b3e53ff789481dba3aeadf519221d4
+          name: 'certmonger: Uptime'
+          type: DEPENDENT
+          key: rabe.certmonger.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["certmonger.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 98ba1f3f61b2472ba2e1bd307a0e8832
+              expression: last(/certmonger/rabe.certmonger.uptime)<=10m
+              name: 'certmonger: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: dfdf61b3b8664aee834f6f1ab613f887
+          name: 'certmonger: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["certmonger.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: certmonger
+      macros:
+        - macro: '{$CERTMONGER.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: b2ccf97fb0ed4a04abc386cafae1fc69
+          name: 'certmonger: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: certmonger
+                        key: rabe.certmonger.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: certmonger
+                        key: rabe.certmonger.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABJL
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: certmonger
+                        key: rabe.certmonger.rss
+                    - type: STRING
+                      name: reference
+                      value: AABJM
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: certmonger
+                        key: rabe.certmonger.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: certmonger
+                        key: rabe.certmonger.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABJN
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: certmonger
+                        key: rabe.certmonger.swap
+                    - type: STRING
+                      name: reference
+                      value: AABJO
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: certmonger
+                        key: rabe.certmonger.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: certmonger
+                        key: rabe.certmonger.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: certmonger
+                        key: rabe.certmonger.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: b8d873a993d84741b8bf3a77f0c507b0
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: f815b1b99ec84799b1c51adfdf838083
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: b0328ec0814b45829a56a7aadfd58257
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/certmonger/6.4/docs/gen_ref_pages.py b/Templates/Applications/certmonger/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/certmonger/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/certmonger/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/certmonger/6.4/mkdocs.yaml b/Templates/Applications/certmonger/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/certmonger/6.4/mkdocs.yaml
rename to Templates/Applications/certmonger/7.0/mkdocs.yaml
diff --git a/Templates/Applications/chrony/7.0/README.md b/Templates/Applications/chrony/7.0/README.md
new file mode 100644
index 00000000..e544ddec
--- /dev/null
+++ b/Templates/Applications/chrony/7.0/README.md
@@ -0,0 +1,547 @@
+# Zabbix Template: chrony
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: chrony](https://img.shields.io/badge/target-chrony-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Keeps track of [chrony](https://chrony-project.org/).
+
+Needs the following configuration:
+```
+AllowKey=system.run[/usr/bin/chronyc -c activity]
+AllowKey=system.run[/usr/bin/chronyc -c tracking]
+```
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: chrony: chronyd process
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about chrony processes
+
+```console
+proc.get[chronyd,chrony,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: chrony: Sources doing burst (return to offline)
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf)
+
+Sources doing burst (return to offline).
+
+```console
+rabe.chrony.activity.sources_burst_to_offline
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/chronyc -c activity]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["return value.split(\",\")[3]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chrony: Sources doing burst (return to online)
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf)
+
+Sources doing burst (return to online).
+
+```console
+rabe.chrony.activity.sources_burst_to_online
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/chronyc -c activity]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["return value.split(\",\")[2]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chrony: Sources offline
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf)
+
+Sources offline.
+
+```console
+rabe.chrony.activity.sources_offline
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/chronyc -c activity]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["return value.split(\",\")[1]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chrony: Sources online
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf)
+
+Sources online.
+
+```console
+rabe.chrony.activity.sources_online
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/chronyc -c activity]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["return value.split(\",\")[0]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chrony: Sources with unknown address
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf)
+
+Sources with unknown address.
+
+```console
+rabe.chrony.activity.sources_with_unknown_address
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/chronyc -c activity]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["return value.split(\",\")[4]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chronyd: CPU seconds (system)
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf) ![component: chronyd](https://img.shields.io/badge/component-chronyd-00c9bf)
+
+Total CPU seconds (system) of chronyd processes.
+
+```console
+rabe.chrony.chronyd.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[chronyd,chrony,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chronyd: CPU seconds (user)
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf) ![component: chronyd](https://img.shields.io/badge/component-chronyd-00c9bf)
+
+Total CPU seconds (user) of chronyd processes.
+
+```console
+rabe.chrony.chronyd.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[chronyd,chrony,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chronyd: Number of processes
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf) ![component: chronyd](https://img.shields.io/badge/component-chronyd-00c9bf)
+
+Number of chronyd processes.
+
+```console
+rabe.chrony.chronyd.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[chronyd,chrony,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chronyd: Memory usage (RSS)
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf) ![component: chronyd](https://img.shields.io/badge/component-chronyd-00c9bf)
+
+Memory usage of chronyd processes.
+
+```console
+rabe.chrony.chronyd.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[chronyd,chrony,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chronyd: Swap usage
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf) ![component: chronyd](https://img.shields.io/badge/component-chronyd-00c9bf)
+
+Swap usage of chronyd processes.
+
+```console
+rabe.chrony.chronyd.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[chronyd,chrony,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chronyd: Number of threads
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf) ![component: chronyd](https://img.shields.io/badge/component-chronyd-00c9bf)
+
+Number of chronyd threads.
+
+```console
+rabe.chrony.chronyd.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[chronyd,chrony,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chrony: Reference ID
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf)
+
+Reference ID.
+
+```console
+rabe.chrony.tracking.reference_id
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | TEXT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/chronyc -c tracking]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["return value.split(\",\")[0]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["1h"]` |
+
+### Item: chrony: Reference IP
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf)
+
+Reference IP.
+
+```console
+rabe.chrony.tracking.reference_ip
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | TEXT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/chronyc -c tracking]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["return value.split(\",\")[1]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["1h"]` |
+
+### Item: chrony: Ref time (UTC)
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf)
+
+Ref time (UTC).
+
+```console
+rabe.chrony.tracking.ref_time
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in unixtime |
+| History | 7d |
+| Source item | `system.run[/usr/bin/chronyc -c tracking]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["return value.split(\",\")[3]"]` |
+
+### Item: chrony: Skew
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf)
+
+Skew.
+
+```console
+rabe.chrony.tracking.skew
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in ppm |
+| History | 7d |
+| Source item | `system.run[/usr/bin/chronyc -c tracking]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["return value.split(\",\")[9]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chrony: Stratum
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf)
+
+Stratum.
+
+```console
+rabe.chrony.tracking.stratum
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/chronyc -c tracking]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["return value.split(\",\")[2]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["1h"]` |
+
+### Item: chrony: System time slowness
+
+![component: chrony](https://img.shields.io/badge/component-chrony-00c9bf)
+
+System time is seconds slow of NTP time
+
+```console
+rabe.chrony.tracking.system_time
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in s |
+| History | 7d |
+| Source item | `system.run[/usr/bin/chronyc -c tracking]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["return value.split(\",\")[4]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: chrony: Activitiy
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Results of chronyc -c activity
+
+```console
+system.run[/usr/bin/chronyc -c activity]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: chrony: Tracking
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Results of chronyc -c tracking
+
+```console
+system.run[/usr/bin/chronyc -c tracking]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: chronyd: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running chronyd processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/chrony/rabe.chrony.chronyd.processes)<1
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$CHRONY.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* chrony: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/chrony/7.0/chrony.yaml b/Templates/Applications/chrony/7.0/chrony.yaml
new file mode 100644
index 00000000..45c3149f
--- /dev/null
+++ b/Templates/Applications/chrony/7.0/chrony.yaml
@@ -0,0 +1,785 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: c4a24054ed3c4085aba8cfe5a077c2ca
+      template: chrony
+      name: chrony
+      description: |
+        Keeps track of [chrony](https://chrony-project.org/).
+        
+        Needs the following configuration:
+        ```
+        AllowKey=system.run[/usr/bin/chronyc -c activity]
+        AllowKey=system.run[/usr/bin/chronyc -c tracking]
+        ```
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: 1ad40d5c3d814204b84506a4f553a941
+          name: 'chrony: chronyd process'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[chronyd,chrony,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about chrony processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: e0f3a9d2b1cc40d4ada050409d94070a
+          name: 'chrony: Sources doing burst (return to offline)'
+          type: DEPENDENT
+          key: rabe.chrony.activity.sources_burst_to_offline
+          delay: '0'
+          history: 7d
+          description: 'Sources doing burst (return to offline).'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - 'return value.split(",")[3]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'system.run[/usr/bin/chronyc -c activity]'
+          tags:
+            - tag: component
+              value: chrony
+        - uuid: 26f9f34d7f944260bbcb7c85e057b299
+          name: 'chrony: Sources doing burst (return to online)'
+          type: DEPENDENT
+          key: rabe.chrony.activity.sources_burst_to_online
+          delay: '0'
+          history: 7d
+          description: 'Sources doing burst (return to online).'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - 'return value.split(",")[2]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'system.run[/usr/bin/chronyc -c activity]'
+          tags:
+            - tag: component
+              value: chrony
+        - uuid: debb8c9d77334ec68bce647216d06e4d
+          name: 'chrony: Sources offline'
+          type: DEPENDENT
+          key: rabe.chrony.activity.sources_offline
+          delay: '0'
+          history: 7d
+          description: 'Sources offline.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - 'return value.split(",")[1]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'system.run[/usr/bin/chronyc -c activity]'
+          tags:
+            - tag: component
+              value: chrony
+        - uuid: 2ad24b1b0a9a4697a4d7e446bb446f0c
+          name: 'chrony: Sources online'
+          type: DEPENDENT
+          key: rabe.chrony.activity.sources_online
+          delay: '0'
+          history: 7d
+          description: 'Sources online.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - 'return value.split(",")[0]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'system.run[/usr/bin/chronyc -c activity]'
+          tags:
+            - tag: component
+              value: chrony
+        - uuid: f70864b390ae4217b6c41b42261f3476
+          name: 'chrony: Sources with unknown address'
+          type: DEPENDENT
+          key: rabe.chrony.activity.sources_with_unknown_address
+          delay: '0'
+          history: 7d
+          description: 'Sources with unknown address.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - 'return value.split(",")[4]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'system.run[/usr/bin/chronyc -c activity]'
+          tags:
+            - tag: component
+              value: chrony
+        - uuid: 543eeacffc944ceca2a5e58bdbd5f808
+          name: 'chronyd: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.chrony.chronyd.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of chronyd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[chronyd,chrony,,summary]'
+          tags:
+            - tag: component
+              value: chrony
+            - tag: component
+              value: chronyd
+        - uuid: 714e726fbc3d407499df68217972219e
+          name: 'chronyd: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.chrony.chronyd.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of chronyd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[chronyd,chrony,,summary]'
+          tags:
+            - tag: component
+              value: chrony
+            - tag: component
+              value: chronyd
+        - uuid: 81b60ced2d504d3b89ecb6cffb2d8923
+          name: 'chronyd: Number of processes'
+          type: DEPENDENT
+          key: rabe.chrony.chronyd.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of chronyd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[chronyd,chrony,,summary]'
+          tags:
+            - tag: component
+              value: chrony
+            - tag: component
+              value: chronyd
+          triggers:
+            - uuid: 613dcabbede04f0eb95d60c87e75ffef
+              expression: last(/chrony/rabe.chrony.chronyd.processes)<1
+              name: 'chronyd: No running processes'
+              priority: HIGH
+              description: 'No running chronyd processes.'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 75fc457172ab4673ad5a07daaf84e229
+          name: 'chronyd: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.chrony.chronyd.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of chronyd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[chronyd,chrony,,summary]'
+          tags:
+            - tag: component
+              value: chrony
+            - tag: component
+              value: chronyd
+        - uuid: f3a04d588f3748cd9ff81faa33b6fd3f
+          name: 'chronyd: Swap usage'
+          type: DEPENDENT
+          key: rabe.chrony.chronyd.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of chronyd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[chronyd,chrony,,summary]'
+          tags:
+            - tag: component
+              value: chrony
+            - tag: component
+              value: chronyd
+        - uuid: a2e73469d6584108b941dbbe3d516447
+          name: 'chronyd: Number of threads'
+          type: DEPENDENT
+          key: rabe.chrony.chronyd.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of chronyd threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[chronyd,chrony,,summary]'
+          tags:
+            - tag: component
+              value: chrony
+            - tag: component
+              value: chronyd
+        - uuid: 674b727174904227bae9d2e93234803c
+          name: 'chrony: Reference ID'
+          type: DEPENDENT
+          key: rabe.chrony.tracking.reference_id
+          delay: '0'
+          history: 7d
+          value_type: TEXT
+          trends: '0'
+          description: 'Reference ID.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - 'return value.split(",")[0]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 1h
+          master_item:
+            key: 'system.run[/usr/bin/chronyc -c tracking]'
+          tags:
+            - tag: component
+              value: chrony
+        - uuid: d8c6446e98bd40efb779ec32169492f0
+          name: 'chrony: Reference IP'
+          type: DEPENDENT
+          key: rabe.chrony.tracking.reference_ip
+          delay: '0'
+          history: 7d
+          value_type: TEXT
+          trends: '0'
+          description: 'Reference IP.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - 'return value.split(",")[1]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 1h
+          master_item:
+            key: 'system.run[/usr/bin/chronyc -c tracking]'
+          tags:
+            - tag: component
+              value: chrony
+        - uuid: 31046634a8c349e798d5a9647531564f
+          name: 'chrony: Ref time (UTC)'
+          type: DEPENDENT
+          key: rabe.chrony.tracking.ref_time
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: unixtime
+          description: 'Ref time (UTC).'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - 'return value.split(",")[3]'
+          master_item:
+            key: 'system.run[/usr/bin/chronyc -c tracking]'
+          tags:
+            - tag: component
+              value: chrony
+        - uuid: bb49bcde746d4c60923ccf971847ca34
+          name: 'chrony: Skew'
+          type: DEPENDENT
+          key: rabe.chrony.tracking.skew
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: ppm
+          description: Skew.
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - 'return value.split(",")[9]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'system.run[/usr/bin/chronyc -c tracking]'
+          tags:
+            - tag: component
+              value: chrony
+        - uuid: 0e487eabb0a443f19a7e27c420dd88e5
+          name: 'chrony: Stratum'
+          type: DEPENDENT
+          key: rabe.chrony.tracking.stratum
+          delay: '0'
+          history: 7d
+          description: Stratum.
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - 'return value.split(",")[2]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 1h
+          master_item:
+            key: 'system.run[/usr/bin/chronyc -c tracking]'
+          tags:
+            - tag: component
+              value: chrony
+        - uuid: 585d7ab3c8744de3a083718b928f3d2c
+          name: 'chrony: System time slowness'
+          type: DEPENDENT
+          key: rabe.chrony.tracking.system_time
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: s
+          description: 'System time is seconds slow of NTP time'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - 'return value.split(",")[4]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'system.run[/usr/bin/chronyc -c tracking]'
+          tags:
+            - tag: component
+              value: chrony
+        - uuid: 4a02236adda54a649de3efc6470c56f5
+          name: 'chrony: Activitiy'
+          type: ZABBIX_ACTIVE
+          key: 'system.run[/usr/bin/chronyc -c activity]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Results of chronyc -c activity'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: a6379b74b39c40558b08b5a3cb699f4b
+          name: 'chrony: Tracking'
+          type: ZABBIX_ACTIVE
+          key: 'system.run[/usr/bin/chronyc -c tracking]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Results of chronyc -c tracking'
+          tags:
+            - tag: component
+              value: raw
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: chrony
+      macros:
+        - macro: '{$CHRONY.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: 503d0b61ebde46aea00f259664f23252
+          name: 'chrony: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '9'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: stratum
+                    - type: STRING
+                      name: down_color
+                      value: 4CAF50
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.tracking.stratum
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: show
+                      value: '4'
+                    - type: STRING
+                      name: updown_color
+                      value: 4CAF50
+                    - type: STRING
+                      name: up_color
+                      value: FF0000
+                - type: item
+                  'y': '2'
+                  width: '9'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_size
+                      value: '5'
+                    - type: STRING
+                      name: description
+                      value: 'reference IP'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.tracking.reference_ip
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: value_size
+                      value: '30'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.tracking.system_time
+                    - type: STRING
+                      name: reference
+                      value: AABIG
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.chronyd.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABIH
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '14'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.chronyd.rss
+                    - type: STRING
+                      name: reference
+                      value: AABII
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '9'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: 'online sources'
+                    - type: INTEGER
+                      name: desc_size
+                      value: '10'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.activity.sources_online
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 43A047
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '3'
+                - type: item
+                  x: '21'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: 'offline sources'
+                    - type: INTEGER
+                      name: desc_size
+                      value: '10'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.activity.sources_offline
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF465C
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                - type: item
+                  x: '33'
+                  width: '6'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: 'bursting online'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.activity.sources_burst_to_online
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF9800
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                - type: item
+                  x: '33'
+                  'y': '2'
+                  width: '6'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: 'bursting offline'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.activity.sources_burst_to_offline
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF465C
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.tracking.skew
+                    - type: STRING
+                      name: reference
+                      value: AABIJ
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.chronyd.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABIK
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '14'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.chronyd.swap
+                    - type: STRING
+                      name: reference
+                      value: AABIL
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '39'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: 'unknown sources'
+                    - type: INTEGER
+                      name: desc_size
+                      value: '10'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.activity.sources_with_unknown_address
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF465C
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: INTEGER
+                      name: desc_size
+                      value: '10'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: chrony
+                        key: rabe.chrony.chronyd.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF465C
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 43A047
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
diff --git a/Templates/Applications/chrony/6.4/docs/gen_ref_pages.py b/Templates/Applications/chrony/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/chrony/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/chrony/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/chrony/6.4/mkdocs.yaml b/Templates/Applications/chrony/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/chrony/6.4/mkdocs.yaml
rename to Templates/Applications/chrony/7.0/mkdocs.yaml
diff --git a/Templates/Applications/firewalld/7.0/README.md b/Templates/Applications/firewalld/7.0/README.md
new file mode 100644
index 00000000..ad2d6024
--- /dev/null
+++ b/Templates/Applications/firewalld/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: firewalld
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: firewalld](https://img.shields.io/badge/target-firewalld-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [firewalld](https://firewalld.org/).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: firewalld: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about firewalld processes
+
+```console
+proc.get[firewalld,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: firewalld: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.firewalld.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["firewalld.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: firewalld: CPU seconds (system)
+
+![component: firewalld](https://img.shields.io/badge/component-firewalld-00c9bf)
+
+Total CPU seconds (system) of firewalld processes.
+
+```console
+rabe.firewalld.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[firewalld,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: firewalld: CPU seconds (user)
+
+![component: firewalld](https://img.shields.io/badge/component-firewalld-00c9bf)
+
+Total CPU seconds (user) of firewalld processes.
+
+```console
+rabe.firewalld.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[firewalld,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: firewalld: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.firewalld.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["firewalld.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: firewalld: Number of processes
+
+![component: firewalld](https://img.shields.io/badge/component-firewalld-00c9bf)
+
+Number of firewalld processes.
+
+```console
+rabe.firewalld.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[firewalld,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: firewalld: Memory usage (RSS)
+
+![component: firewalld](https://img.shields.io/badge/component-firewalld-00c9bf)
+
+Memory usage of firewalld processes.
+
+```console
+rabe.firewalld.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[firewalld,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: firewalld: Swap usage
+
+![component: firewalld](https://img.shields.io/badge/component-firewalld-00c9bf)
+
+Swap usage of firewalld processes.
+
+```console
+rabe.firewalld.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[firewalld,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: firewalld: Number of threads
+
+![component: firewalld](https://img.shields.io/badge/component-firewalld-00c9bf)
+
+Number of firewalld threads.
+
+```console
+rabe.firewalld.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[firewalld,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: firewalld: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.firewalld.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["firewalld.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: firewalld: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.firewalld.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["firewalld.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: firewalld: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["firewalld.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: firewalld: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/firewalld/rabe.firewalld.active_state)<>1
+```
+
+### Trigger: firewalld: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running firewalld processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/firewalld/rabe.firewalld.processes)<{$FIREWALLD.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: firewalld: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/firewalld/rabe.firewalld.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$FIREWALLD.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* firewalld: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/firewalld/6.4/docs/gen_ref_pages.py b/Templates/Applications/firewalld/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/firewalld/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/firewalld/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/firewalld/7.0/firewalld.yaml b/Templates/Applications/firewalld/7.0/firewalld.yaml
new file mode 100644
index 00000000..7ce86b95
--- /dev/null
+++ b/Templates/Applications/firewalld/7.0/firewalld.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: dcfc6aa41ee44cf6a147e0390b959cca
+      template: firewalld
+      name: firewalld
+      description: |
+        Monitoring of [firewalld](https://firewalld.org/).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: e58846d3d0f7441985e4c2536c267a87
+          name: 'firewalld: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[firewalld,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about firewalld processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: daefe850dd144946b701d4021c57bcc0
+          name: 'firewalld: Unit active state'
+          type: DEPENDENT
+          key: rabe.firewalld.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["firewalld.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 43a7ea6e27d34c7d9938eb2d43c0b206
+              expression: last(/firewalld/rabe.firewalld.active_state)<>1
+              name: 'firewalld: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: c3d455aeb78c4b6a95e98b916cab7c7f
+          name: 'firewalld: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.firewalld.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of firewalld processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[firewalld,root,,summary]'
+          tags:
+            - tag: component
+              value: firewalld
+        - uuid: 201794babb9043c3b984bf1dd522e6a8
+          name: 'firewalld: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.firewalld.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of firewalld processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[firewalld,root,,summary]'
+          tags:
+            - tag: component
+              value: firewalld
+        - uuid: 8043ff12c7b6450cac73c9be0f2f0053
+          name: 'firewalld: Service load state'
+          type: DEPENDENT
+          key: rabe.firewalld.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["firewalld.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 3c59ca45dd3440cab29e426d3952fd35
+          name: 'firewalld: Number of processes'
+          type: DEPENDENT
+          key: rabe.firewalld.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of firewalld processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[firewalld,root,,summary]'
+          tags:
+            - tag: component
+              value: firewalld
+          triggers:
+            - uuid: 15a9761082ea433199dd5190c6c949a1
+              expression: 'last(/firewalld/rabe.firewalld.processes)<{$FIREWALLD.THRESHOLD.MIN_PROC}'
+              name: 'firewalld: No running processes'
+              priority: HIGH
+              description: 'No running firewalld processes.'
+              dependencies:
+                - name: 'firewalld: Service is not running'
+                  expression: last(/firewalld/rabe.firewalld.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 13497879a89140f8a4f09f411e4fda05
+          name: 'firewalld: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.firewalld.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of firewalld processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[firewalld,root,,summary]'
+          tags:
+            - tag: component
+              value: firewalld
+        - uuid: 174de31167f646178e70775d587721de
+          name: 'firewalld: Swap usage'
+          type: DEPENDENT
+          key: rabe.firewalld.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of firewalld processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[firewalld,root,,summary]'
+          tags:
+            - tag: component
+              value: firewalld
+        - uuid: f7891157dea943a88b84e8df0ae2cd7b
+          name: 'firewalld: Number of threads'
+          type: DEPENDENT
+          key: rabe.firewalld.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of firewalld threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[firewalld,root,,summary]'
+          tags:
+            - tag: component
+              value: firewalld
+        - uuid: 246dacbe5be0422ea2ade66dff2ac469
+          name: 'firewalld: Unit file state'
+          type: DEPENDENT
+          key: rabe.firewalld.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["firewalld.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 8c15b2bfaa1a4bac93c719720e434e5b
+          name: 'firewalld: Uptime'
+          type: DEPENDENT
+          key: rabe.firewalld.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["firewalld.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: d14cf3f068f248b6ad48d1835eb5f37f
+              expression: last(/firewalld/rabe.firewalld.uptime)<=10m
+              name: 'firewalld: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: 62b0fbf2c0934f0cb6098108b631c34d
+          name: 'firewalld: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["firewalld.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: firewalld
+      macros:
+        - macro: '{$FIREWALLD.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: 46f9f3ee13c94536b056e62463d5c7ea
+          name: 'firewalld: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: firewalld
+                        key: rabe.firewalld.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: firewalld
+                        key: rabe.firewalld.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABJP
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: firewalld
+                        key: rabe.firewalld.rss
+                    - type: STRING
+                      name: reference
+                      value: AABJQ
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: firewalld
+                        key: rabe.firewalld.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: firewalld
+                        key: rabe.firewalld.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABJR
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: firewalld
+                        key: rabe.firewalld.swap
+                    - type: STRING
+                      name: reference
+                      value: AABJS
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: firewalld
+                        key: rabe.firewalld.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: firewalld
+                        key: rabe.firewalld.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: firewalld
+                        key: rabe.firewalld.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: fe60e2f692a441f690f0047c9ed0f565
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: 14ad24ea691e4276a8a2dcb492cc665b
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: 4f25a75d5c5c4c16bd545dde836b6b4c
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/firewalld/6.4/mkdocs.yaml b/Templates/Applications/firewalld/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/firewalld/6.4/mkdocs.yaml
rename to Templates/Applications/firewalld/7.0/mkdocs.yaml
diff --git a/Templates/Applications/gssproxy/7.0/README.md b/Templates/Applications/gssproxy/7.0/README.md
new file mode 100644
index 00000000..a6034540
--- /dev/null
+++ b/Templates/Applications/gssproxy/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: gssproxy
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: gssproxy](https://img.shields.io/badge/target-gssproxy-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [gssproxy](https://pagure.io/gssproxy).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: gssproxy: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about gssproxy processes
+
+```console
+proc.get[gssproxy,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: gssproxy: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.gssproxy.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["gssproxy.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: gssproxy: CPU seconds (system)
+
+![component: gssproxy](https://img.shields.io/badge/component-gssproxy-00c9bf)
+
+Total CPU seconds (system) of gssproxy processes.
+
+```console
+rabe.gssproxy.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[gssproxy,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: gssproxy: CPU seconds (user)
+
+![component: gssproxy](https://img.shields.io/badge/component-gssproxy-00c9bf)
+
+Total CPU seconds (user) of gssproxy processes.
+
+```console
+rabe.gssproxy.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[gssproxy,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: gssproxy: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.gssproxy.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["gssproxy.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: gssproxy: Number of processes
+
+![component: gssproxy](https://img.shields.io/badge/component-gssproxy-00c9bf)
+
+Number of gssproxy processes.
+
+```console
+rabe.gssproxy.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[gssproxy,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: gssproxy: Memory usage (RSS)
+
+![component: gssproxy](https://img.shields.io/badge/component-gssproxy-00c9bf)
+
+Memory usage of gssproxy processes.
+
+```console
+rabe.gssproxy.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[gssproxy,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: gssproxy: Swap usage
+
+![component: gssproxy](https://img.shields.io/badge/component-gssproxy-00c9bf)
+
+Swap usage of gssproxy processes.
+
+```console
+rabe.gssproxy.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[gssproxy,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: gssproxy: Number of threads
+
+![component: gssproxy](https://img.shields.io/badge/component-gssproxy-00c9bf)
+
+Number of gssproxy threads.
+
+```console
+rabe.gssproxy.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[gssproxy,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: gssproxy: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.gssproxy.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["gssproxy.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: gssproxy: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.gssproxy.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["gssproxy.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: gssproxy: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["gssproxy.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: gssproxy: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/gssproxy/rabe.gssproxy.active_state)<>1
+```
+
+### Trigger: gssproxy: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running gssproxy processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/gssproxy/rabe.gssproxy.processes)<{$GSSPROXY.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: gssproxy: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/gssproxy/rabe.gssproxy.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$GSSPROXY.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* gssproxy: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/gssproxy/6.4/docs/gen_ref_pages.py b/Templates/Applications/gssproxy/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/gssproxy/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/gssproxy/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/gssproxy/7.0/gssproxy.yaml b/Templates/Applications/gssproxy/7.0/gssproxy.yaml
new file mode 100644
index 00000000..c162dea8
--- /dev/null
+++ b/Templates/Applications/gssproxy/7.0/gssproxy.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: 95c6a57fd45d41efa0a69adbcfe77f7d
+      template: gssproxy
+      name: gssproxy
+      description: |
+        Monitoring of [gssproxy](https://pagure.io/gssproxy).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: 564363b341d641eba0f8a5ac10bd0dd6
+          name: 'gssproxy: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[gssproxy,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about gssproxy processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: f092260974494d4e96cc31757b334533
+          name: 'gssproxy: Unit active state'
+          type: DEPENDENT
+          key: rabe.gssproxy.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["gssproxy.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 34ab28242bec487389f90f2566435e8a
+              expression: last(/gssproxy/rabe.gssproxy.active_state)<>1
+              name: 'gssproxy: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 071714c8ab3a48f5ad3aa4940cc7fdcd
+          name: 'gssproxy: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.gssproxy.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of gssproxy processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[gssproxy,root,,summary]'
+          tags:
+            - tag: component
+              value: gssproxy
+        - uuid: f623e4087c544a57afeba76b316f9691
+          name: 'gssproxy: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.gssproxy.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of gssproxy processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[gssproxy,root,,summary]'
+          tags:
+            - tag: component
+              value: gssproxy
+        - uuid: 6384b82e07a64b6aaa6d3094e344402f
+          name: 'gssproxy: Service load state'
+          type: DEPENDENT
+          key: rabe.gssproxy.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["gssproxy.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: b4bd342079254211ad2e7963f344bce4
+          name: 'gssproxy: Number of processes'
+          type: DEPENDENT
+          key: rabe.gssproxy.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of gssproxy processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[gssproxy,root,,summary]'
+          tags:
+            - tag: component
+              value: gssproxy
+          triggers:
+            - uuid: 63770c9832ac4b928c936eaeeb4feba2
+              expression: 'last(/gssproxy/rabe.gssproxy.processes)<{$GSSPROXY.THRESHOLD.MIN_PROC}'
+              name: 'gssproxy: No running processes'
+              priority: HIGH
+              description: 'No running gssproxy processes.'
+              dependencies:
+                - name: 'gssproxy: Service is not running'
+                  expression: last(/gssproxy/rabe.gssproxy.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: c337e6fdbeb24b429fb1e335a52a7250
+          name: 'gssproxy: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.gssproxy.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of gssproxy processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[gssproxy,root,,summary]'
+          tags:
+            - tag: component
+              value: gssproxy
+        - uuid: 61b026e0800149978bdd2ff1a829a53b
+          name: 'gssproxy: Swap usage'
+          type: DEPENDENT
+          key: rabe.gssproxy.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of gssproxy processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[gssproxy,root,,summary]'
+          tags:
+            - tag: component
+              value: gssproxy
+        - uuid: 0fcb923c94e3464e81f4d1fb19fd46cd
+          name: 'gssproxy: Number of threads'
+          type: DEPENDENT
+          key: rabe.gssproxy.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of gssproxy threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[gssproxy,root,,summary]'
+          tags:
+            - tag: component
+              value: gssproxy
+        - uuid: 948a1148dbb4460d96f54325ed30eb69
+          name: 'gssproxy: Unit file state'
+          type: DEPENDENT
+          key: rabe.gssproxy.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["gssproxy.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 2b33668b19954114bd38c63f39257279
+          name: 'gssproxy: Uptime'
+          type: DEPENDENT
+          key: rabe.gssproxy.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["gssproxy.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 48bdcd85e25846e08594edfd130ddb13
+              expression: last(/gssproxy/rabe.gssproxy.uptime)<=10m
+              name: 'gssproxy: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: f10701eed98a496f8bb8a2d2014f4f0e
+          name: 'gssproxy: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["gssproxy.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: gssproxy
+      macros:
+        - macro: '{$GSSPROXY.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: 1dd7da0a2faf413895311fb37bc32bad
+          name: 'gssproxy: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: gssproxy
+                        key: rabe.gssproxy.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: gssproxy
+                        key: rabe.gssproxy.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABJT
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: gssproxy
+                        key: rabe.gssproxy.rss
+                    - type: STRING
+                      name: reference
+                      value: AABJU
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: gssproxy
+                        key: rabe.gssproxy.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: gssproxy
+                        key: rabe.gssproxy.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABJV
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: gssproxy
+                        key: rabe.gssproxy.swap
+                    - type: STRING
+                      name: reference
+                      value: AABJW
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: gssproxy
+                        key: rabe.gssproxy.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '7'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '8'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '9'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: gssproxy
+                        key: rabe.gssproxy.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: gssproxy
+                        key: rabe.gssproxy.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: 375d36e8d2e044e29d24234d765530fc
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: fa603bc484d640cf9834ce368f9f4294
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: f83b8519353740289bffb75bb4c618e4
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/gssproxy/6.4/mkdocs.yaml b/Templates/Applications/gssproxy/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/gssproxy/6.4/mkdocs.yaml
rename to Templates/Applications/gssproxy/7.0/mkdocs.yaml
diff --git a/Templates/Applications/qemu-ga/7.0/README.md b/Templates/Applications/qemu-ga/7.0/README.md
new file mode 100644
index 00000000..c37dca62
--- /dev/null
+++ b/Templates/Applications/qemu-ga/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: QEMU Guest Agent
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: qemu-ga](https://img.shields.io/badge/target-qemu-ga-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of the [QEMU Guest Agent](https://www.qemu.org/docs/master/interop/qemu-ga.html).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: qemu-ga: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about qemu-ga processes
+
+```console
+proc.get[qemu-ga,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: qemu-ga: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.qemu-ga.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["qemu-guest-agent.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: qemu-ga: CPU seconds (system)
+
+![component: qemu-ga](https://img.shields.io/badge/component-qemu-ga-00c9bf)
+
+Total CPU seconds (system) of qemu-ga processes.
+
+```console
+rabe.qemu-ga.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[qemu-ga,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: qemu-ga: CPU seconds (user)
+
+![component: qemu-ga](https://img.shields.io/badge/component-qemu-ga-00c9bf)
+
+Total CPU seconds (user) of qemu-ga processes.
+
+```console
+rabe.qemu-ga.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[qemu-ga,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: qemu-ga: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.qemu-ga.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["qemu-guest-agent.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: qemu-ga: Number of processes
+
+![component: qemu-ga](https://img.shields.io/badge/component-qemu-ga-00c9bf)
+
+Number of qemu-ga processes.
+
+```console
+rabe.qemu-ga.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[qemu-ga,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: qemu-ga: Memory usage (RSS)
+
+![component: qemu-ga](https://img.shields.io/badge/component-qemu-ga-00c9bf)
+
+Memory usage of qemu-ga processes.
+
+```console
+rabe.qemu-ga.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[qemu-ga,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: qemu-ga: Swap usage
+
+![component: qemu-ga](https://img.shields.io/badge/component-qemu-ga-00c9bf)
+
+Swap usage of qemu-ga processes.
+
+```console
+rabe.qemu-ga.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[qemu-ga,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: qemu-ga: Number of threads
+
+![component: qemu-ga](https://img.shields.io/badge/component-qemu-ga-00c9bf)
+
+Number of qemu-ga threads.
+
+```console
+rabe.qemu-ga.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[qemu-ga,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: qemu-ga: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.qemu-ga.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["qemu-guest-agent.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: qemu-ga: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.qemu-ga.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["qemu-guest-agent.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: qemu-ga: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["qemu-guest-agent.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: qemu-ga: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/qemu-ga/rabe.qemu-ga.active_state)<>1
+```
+
+### Trigger: qemu-ga: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running qemu-ga processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/qemu-ga/rabe.qemu-ga.processes)<{$QEMUGA.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: qemu-ga: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/qemu-ga/rabe.qemu-ga.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$QEMUGA.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* qemu-ga: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/qemu-ga/6.4/docs/gen_ref_pages.py b/Templates/Applications/qemu-ga/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/qemu-ga/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/qemu-ga/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/qemu-ga/6.4/mkdocs.yaml b/Templates/Applications/qemu-ga/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/qemu-ga/6.4/mkdocs.yaml
rename to Templates/Applications/qemu-ga/7.0/mkdocs.yaml
diff --git a/Templates/Applications/qemu-ga/7.0/qemu-ga.yaml b/Templates/Applications/qemu-ga/7.0/qemu-ga.yaml
new file mode 100644
index 00000000..6fd6bffc
--- /dev/null
+++ b/Templates/Applications/qemu-ga/7.0/qemu-ga.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: 77a0624363cd4616a13d1902430ae186
+      template: qemu-ga
+      name: 'QEMU Guest Agent'
+      description: |
+        Monitoring of the [QEMU Guest Agent](https://www.qemu.org/docs/master/interop/qemu-ga.html).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: 479183626b394584a9faf40cda6e86ff
+          name: 'qemu-ga: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[qemu-ga,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about qemu-ga processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: 490c3dc19ef844dda08fc71378a65de2
+          name: 'qemu-ga: Unit active state'
+          type: DEPENDENT
+          key: rabe.qemu-ga.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["qemu-guest-agent.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 35f0bcdb66a14d9da957bf89f86a5bcd
+              expression: last(/qemu-ga/rabe.qemu-ga.active_state)<>1
+              name: 'qemu-ga: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 17bd216dfec5463f8ddbc8237bf25fbc
+          name: 'qemu-ga: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.qemu-ga.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of qemu-ga processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[qemu-ga,root,,summary]'
+          tags:
+            - tag: component
+              value: qemu-ga
+        - uuid: 1def6d220e36452b850cdb00ee088372
+          name: 'qemu-ga: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.qemu-ga.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of qemu-ga processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[qemu-ga,root,,summary]'
+          tags:
+            - tag: component
+              value: qemu-ga
+        - uuid: 983e40d9d5f04fd483681421cedae2fe
+          name: 'qemu-ga: Service load state'
+          type: DEPENDENT
+          key: rabe.qemu-ga.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["qemu-guest-agent.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: f1dd7d16f45c4fd289cfa085ae1c88b8
+          name: 'qemu-ga: Number of processes'
+          type: DEPENDENT
+          key: rabe.qemu-ga.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of qemu-ga processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[qemu-ga,root,,summary]'
+          tags:
+            - tag: component
+              value: qemu-ga
+          triggers:
+            - uuid: aa2a46515f98469482296b49600c44c7
+              expression: 'last(/qemu-ga/rabe.qemu-ga.processes)<{$QEMUGA.THRESHOLD.MIN_PROC}'
+              name: 'qemu-ga: No running processes'
+              priority: HIGH
+              description: 'No running qemu-ga processes.'
+              dependencies:
+                - name: 'qemu-ga: Service is not running'
+                  expression: last(/qemu-ga/rabe.qemu-ga.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 49bda86d7fa6491e88b9cace94751f34
+          name: 'qemu-ga: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.qemu-ga.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of qemu-ga processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[qemu-ga,root,,summary]'
+          tags:
+            - tag: component
+              value: qemu-ga
+        - uuid: 850a82a7000d44509b709951fe00ac98
+          name: 'qemu-ga: Swap usage'
+          type: DEPENDENT
+          key: rabe.qemu-ga.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of qemu-ga processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[qemu-ga,root,,summary]'
+          tags:
+            - tag: component
+              value: qemu-ga
+        - uuid: b799e7ba76b2442ba0b296c51f7517a4
+          name: 'qemu-ga: Number of threads'
+          type: DEPENDENT
+          key: rabe.qemu-ga.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of qemu-ga threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[qemu-ga,root,,summary]'
+          tags:
+            - tag: component
+              value: qemu-ga
+        - uuid: dc3d8fd54e7b44d4951f276f1703496d
+          name: 'qemu-ga: Unit file state'
+          type: DEPENDENT
+          key: rabe.qemu-ga.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["qemu-guest-agent.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: b44b4dda6f254b19879ce854b29f5f12
+          name: 'qemu-ga: Uptime'
+          type: DEPENDENT
+          key: rabe.qemu-ga.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["qemu-guest-agent.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: d2e99905e5e04957a2953ef7f71081f7
+              expression: last(/qemu-ga/rabe.qemu-ga.uptime)<=10m
+              name: 'qemu-ga: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: 609efd8900794691a7ace4002d1c78ae
+          name: 'qemu-ga: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["qemu-guest-agent.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: qemu-ga
+      macros:
+        - macro: '{$QEMUGA.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: 910162aa19a04fd9b91f491190ab4c74
+          name: 'qemu-ga: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: qemu-ga
+                        key: rabe.qemu-ga.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: qemu-ga
+                        key: rabe.qemu-ga.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABJX
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: qemu-ga
+                        key: rabe.qemu-ga.rss
+                    - type: STRING
+                      name: reference
+                      value: AABJY
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: qemu-ga
+                        key: rabe.qemu-ga.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: qemu-ga
+                        key: rabe.qemu-ga.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABJZ
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: qemu-ga
+                        key: rabe.qemu-ga.swap
+                    - type: STRING
+                      name: reference
+                      value: AABKA
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: qemu-ga
+                        key: rabe.qemu-ga.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: qemu-ga
+                        key: rabe.qemu-ga.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: qemu-ga
+                        key: rabe.qemu-ga.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: 3379206daed14761a2104f5bda46651f
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: ed6125e7aadc47b1bd6c5a5133fcb676
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: 35810908d92e41b2b760d0c38c887ceb
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/rpc.gssd/7.0/README.md b/Templates/Applications/rpc.gssd/7.0/README.md
new file mode 100644
index 00000000..171ea724
--- /dev/null
+++ b/Templates/Applications/rpc.gssd/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: rpc.gssd
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: rpcgssd](https://img.shields.io/badge/target-rpcgssd-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [rpc.gssd](https://linux.die.net/man/8/rpc.gssd).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: rpc.gssd: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about rpc.gssd processes
+
+```console
+proc.get[rpc.gssd,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: rpc.gssd: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.rpc.gssd.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["rpc-gssd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: rpc.gssd: CPU seconds (system)
+
+![component: rpcgssd](https://img.shields.io/badge/component-rpcgssd-00c9bf)
+
+Total CPU seconds (system) of rpc.gssd processes.
+
+```console
+rabe.rpc.gssd.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[rpc.gssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rpc.gssd: CPU seconds (user)
+
+![component: rpcgssd](https://img.shields.io/badge/component-rpcgssd-00c9bf)
+
+Total CPU seconds (user) of rpc.gssd processes.
+
+```console
+rabe.rpc.gssd.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[rpc.gssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rpc.gssd: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.rpc.gssd.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["rpc-gssd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: rpc.gssd: Number of processes
+
+![component: rpcgssd](https://img.shields.io/badge/component-rpcgssd-00c9bf)
+
+Number of rpc.gssd processes.
+
+```console
+rabe.rpc.gssd.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rpc.gssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rpc.gssd: Memory usage (RSS)
+
+![component: rpcgssd](https://img.shields.io/badge/component-rpcgssd-00c9bf)
+
+Memory usage of rpc.gssd processes.
+
+```console
+rabe.rpc.gssd.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rpc.gssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rpc.gssd: Swap usage
+
+![component: rpcgssd](https://img.shields.io/badge/component-rpcgssd-00c9bf)
+
+Swap usage of rpc.gssd processes.
+
+```console
+rabe.rpc.gssd.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rpc.gssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rpc.gssd: Number of threads
+
+![component: rpcgssd](https://img.shields.io/badge/component-rpcgssd-00c9bf)
+
+Number of rpc.gssd threads.
+
+```console
+rabe.rpc.gssd.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rpc.gssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rpc.gssd: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.rpc.gssd.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["rpc-gssd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: rpc.gssd: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.rpc.gssd.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["rpc-gssd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: rpc.gssd: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["rpc-gssd.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: rpc.gssd: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/rpc.gssd/rabe.rpc.gssd.active_state)<>1
+```
+
+### Trigger: rpc.gssd: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running rpc.gssd processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/rpc.gssd/rabe.rpc.gssd.processes)<{$RPC.GSSD.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: rpc.gssd: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/rpc.gssd/rabe.rpc.gssd.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$RPC.GSSD.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* rpc.gssd: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/rpc.gssd/6.4/docs/gen_ref_pages.py b/Templates/Applications/rpc.gssd/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/rpc.gssd/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/rpc.gssd/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/rpc.gssd/6.4/mkdocs.yaml b/Templates/Applications/rpc.gssd/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/rpc.gssd/6.4/mkdocs.yaml
rename to Templates/Applications/rpc.gssd/7.0/mkdocs.yaml
diff --git a/Templates/Applications/rpc.gssd/7.0/rpc.gssd.yaml b/Templates/Applications/rpc.gssd/7.0/rpc.gssd.yaml
new file mode 100644
index 00000000..3af398d9
--- /dev/null
+++ b/Templates/Applications/rpc.gssd/7.0/rpc.gssd.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: c17341b0f4ae4087a5356f695608cdce
+      template: rpc.gssd
+      name: rpc.gssd
+      description: |
+        Monitoring of [rpc.gssd](https://linux.die.net/man/8/rpc.gssd).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: aa03535713e14255805c5c1017fe0357
+          name: 'rpc.gssd: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[rpc.gssd,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about rpc.gssd processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: 25a88fbd637b460eb5b4c387c35481ce
+          name: 'rpc.gssd: Unit active state'
+          type: DEPENDENT
+          key: rabe.rpc.gssd.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["rpc-gssd.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 95f68a5df31047c4a2d677cb130288af
+              expression: last(/rpc.gssd/rabe.rpc.gssd.active_state)<>1
+              name: 'rpc.gssd: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 2cd32fd6e6b64ed5aa3a0edc391bf436
+          name: 'rpc.gssd: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.rpc.gssd.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of rpc.gssd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rpc.gssd,root,,summary]'
+          tags:
+            - tag: component
+              value: rpcgssd
+        - uuid: b7977b94dd864c8dade8565e76133d61
+          name: 'rpc.gssd: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.rpc.gssd.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of rpc.gssd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rpc.gssd,root,,summary]'
+          tags:
+            - tag: component
+              value: rpcgssd
+        - uuid: 013b833e86bf4626835be2d058f5284f
+          name: 'rpc.gssd: Service load state'
+          type: DEPENDENT
+          key: rabe.rpc.gssd.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["rpc-gssd.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 600747130717406d96d09850419d282f
+          name: 'rpc.gssd: Number of processes'
+          type: DEPENDENT
+          key: rabe.rpc.gssd.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of rpc.gssd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rpc.gssd,root,,summary]'
+          tags:
+            - tag: component
+              value: rpcgssd
+          triggers:
+            - uuid: 4c40385bebe248cca1353f35a1814493
+              expression: 'last(/rpc.gssd/rabe.rpc.gssd.processes)<{$RPC.GSSD.THRESHOLD.MIN_PROC}'
+              name: 'rpc.gssd: No running processes'
+              priority: HIGH
+              description: 'No running rpc.gssd processes.'
+              dependencies:
+                - name: 'rpc.gssd: Service is not running'
+                  expression: last(/rpc.gssd/rabe.rpc.gssd.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 98482fdc7c6648c4b6bf9a04ab84516a
+          name: 'rpc.gssd: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.rpc.gssd.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of rpc.gssd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rpc.gssd,root,,summary]'
+          tags:
+            - tag: component
+              value: rpcgssd
+        - uuid: 49810a108bda4d88951f173cecacf02a
+          name: 'rpc.gssd: Swap usage'
+          type: DEPENDENT
+          key: rabe.rpc.gssd.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of rpc.gssd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rpc.gssd,root,,summary]'
+          tags:
+            - tag: component
+              value: rpcgssd
+        - uuid: 29c8d2dc65424d68901122945f79ea24
+          name: 'rpc.gssd: Number of threads'
+          type: DEPENDENT
+          key: rabe.rpc.gssd.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of rpc.gssd threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rpc.gssd,root,,summary]'
+          tags:
+            - tag: component
+              value: rpcgssd
+        - uuid: 1e1d8a5d4fb341388789d2e62175370b
+          name: 'rpc.gssd: Unit file state'
+          type: DEPENDENT
+          key: rabe.rpc.gssd.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["rpc-gssd.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: cdf83090d37a4ab4995d460956885916
+          name: 'rpc.gssd: Uptime'
+          type: DEPENDENT
+          key: rabe.rpc.gssd.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["rpc-gssd.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 37b70a412ae7483d91db35a192a12f0e
+              expression: last(/rpc.gssd/rabe.rpc.gssd.uptime)<=10m
+              name: 'rpc.gssd: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: df8f87350ceb4880b6ae8b95ce2dd420
+          name: 'rpc.gssd: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["rpc-gssd.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: rpcgssd
+      macros:
+        - macro: '{$RPC.GSSD.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: a0304f5c816e4d01acb1b5c39e608e11
+          name: 'rpc.gssd: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rpc.gssd
+                        key: rabe.rpc.gssd.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rpc.gssd
+                        key: rabe.rpc.gssd.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABKB
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rpc.gssd
+                        key: rabe.rpc.gssd.rss
+                    - type: STRING
+                      name: reference
+                      value: AABKC
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rpc.gssd
+                        key: rabe.rpc.gssd.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rpc.gssd
+                        key: rabe.rpc.gssd.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABKD
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rpc.gssd
+                        key: rabe.rpc.gssd.swap
+                    - type: STRING
+                      name: reference
+                      value: AABKE
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rpc.gssd
+                        key: rabe.rpc.gssd.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '6'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '7'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '8'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rpc.gssd
+                        key: rabe.rpc.gssd.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rpc.gssd
+                        key: rabe.rpc.gssd.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: 3e75b70aa1a4490097f155444d90540d
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: fdba5e0122994f50b9d3f5765a9c715f
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: d3f9d5b008de4827a92f3d4dda9c5e5b
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/rsyslog/7.0/README.md b/Templates/Applications/rsyslog/7.0/README.md
new file mode 100644
index 00000000..1874a1a1
--- /dev/null
+++ b/Templates/Applications/rsyslog/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: rsyslog
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: rsyslog](https://img.shields.io/badge/target-rsyslog-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [rsyslog](https://www.rsyslog.com/).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: rsyslog: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about rsyslog processes
+
+```console
+proc.get[rsyslogd,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: rsyslog: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.rsyslog.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["rsyslog.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: rsyslog: CPU seconds (system)
+
+![component: rsyslog](https://img.shields.io/badge/component-rsyslog-00c9bf)
+
+Total CPU seconds (system) of rsyslog processes.
+
+```console
+rabe.rsyslog.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[rsyslogd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rsyslog: CPU seconds (user)
+
+![component: rsyslog](https://img.shields.io/badge/component-rsyslog-00c9bf)
+
+Total CPU seconds (user) of rsyslog processes.
+
+```console
+rabe.rsyslog.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[rsyslogd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rsyslog: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.rsyslog.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["rsyslog.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: rsyslog: Number of processes
+
+![component: rsyslog](https://img.shields.io/badge/component-rsyslog-00c9bf)
+
+Number of rsyslog processes.
+
+```console
+rabe.rsyslog.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rsyslogd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rsyslog: Memory usage (RSS)
+
+![component: rsyslog](https://img.shields.io/badge/component-rsyslog-00c9bf)
+
+Memory usage of rsyslog processes.
+
+```console
+rabe.rsyslog.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rsyslogd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rsyslog: Swap usage
+
+![component: rsyslog](https://img.shields.io/badge/component-rsyslog-00c9bf)
+
+Swap usage of rsyslog processes.
+
+```console
+rabe.rsyslog.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rsyslogd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rsyslog: Number of threads
+
+![component: rsyslog](https://img.shields.io/badge/component-rsyslog-00c9bf)
+
+Number of rsyslog threads.
+
+```console
+rabe.rsyslog.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[rsyslogd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: rsyslog: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.rsyslog.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["rsyslog.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: rsyslog: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.rsyslog.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["rsyslog.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: rsyslog: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["rsyslog.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: rsyslog: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/rsyslog/rabe.rsyslog.active_state)<>1
+```
+
+### Trigger: rsyslog: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running rsyslog processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/rsyslog/rabe.rsyslog.processes)<{$RSYSLOG.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: rsyslog: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/rsyslog/rabe.rsyslog.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$RSYSLOG.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* rsyslog: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/rsyslog/6.4/docs/gen_ref_pages.py b/Templates/Applications/rsyslog/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/rsyslog/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/rsyslog/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/rsyslog/6.4/mkdocs.yaml b/Templates/Applications/rsyslog/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/rsyslog/6.4/mkdocs.yaml
rename to Templates/Applications/rsyslog/7.0/mkdocs.yaml
diff --git a/Templates/Applications/rsyslog/7.0/rsyslog.yaml b/Templates/Applications/rsyslog/7.0/rsyslog.yaml
new file mode 100644
index 00000000..1c992bec
--- /dev/null
+++ b/Templates/Applications/rsyslog/7.0/rsyslog.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: 67bcb0eff7844452b277630a5b03da13
+      template: rsyslog
+      name: rsyslog
+      description: |
+        Monitoring of [rsyslog](https://www.rsyslog.com/).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: fd6bb615efd7419988d3f4280d4806e9
+          name: 'rsyslog: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[rsyslogd,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about rsyslog processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: eb72e78ac46a42099fc6398a77bf88a5
+          name: 'rsyslog: Unit active state'
+          type: DEPENDENT
+          key: rabe.rsyslog.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["rsyslog.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: eff32a718ecc44d5b28dc444b2a3abfe
+              expression: last(/rsyslog/rabe.rsyslog.active_state)<>1
+              name: 'rsyslog: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 41be8e5506934eddba86d09b1aaf67d7
+          name: 'rsyslog: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.rsyslog.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of rsyslog processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rsyslogd,root,,summary]'
+          tags:
+            - tag: component
+              value: rsyslog
+        - uuid: 6b777e6889834f59aff3c2eeaf96f560
+          name: 'rsyslog: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.rsyslog.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of rsyslog processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rsyslogd,root,,summary]'
+          tags:
+            - tag: component
+              value: rsyslog
+        - uuid: 50c5ccf1b99b49d5809f6637f99fd257
+          name: 'rsyslog: Service load state'
+          type: DEPENDENT
+          key: rabe.rsyslog.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["rsyslog.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: e4c66dfa4c1a457fac71189e2e9d7339
+          name: 'rsyslog: Number of processes'
+          type: DEPENDENT
+          key: rabe.rsyslog.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of rsyslog processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rsyslogd,root,,summary]'
+          tags:
+            - tag: component
+              value: rsyslog
+          triggers:
+            - uuid: cd0c058237d84b3484cd6c91f78eed38
+              expression: 'last(/rsyslog/rabe.rsyslog.processes)<{$RSYSLOG.THRESHOLD.MIN_PROC}'
+              name: 'rsyslog: No running processes'
+              priority: HIGH
+              description: 'No running rsyslog processes.'
+              dependencies:
+                - name: 'rsyslog: Service is not running'
+                  expression: last(/rsyslog/rabe.rsyslog.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: d7111b302ee84409b14cd7850ac2dd87
+          name: 'rsyslog: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.rsyslog.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of rsyslog processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rsyslogd,root,,summary]'
+          tags:
+            - tag: component
+              value: rsyslog
+        - uuid: 890fa1b9113146baac4353cbf2752db6
+          name: 'rsyslog: Swap usage'
+          type: DEPENDENT
+          key: rabe.rsyslog.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of rsyslog processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rsyslogd,root,,summary]'
+          tags:
+            - tag: component
+              value: rsyslog
+        - uuid: 424037a4821c4d36a345db5cf24fd067
+          name: 'rsyslog: Number of threads'
+          type: DEPENDENT
+          key: rabe.rsyslog.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of rsyslog threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[rsyslogd,root,,summary]'
+          tags:
+            - tag: component
+              value: rsyslog
+        - uuid: 308405e512c54311816100dbe9a40bdf
+          name: 'rsyslog: Unit file state'
+          type: DEPENDENT
+          key: rabe.rsyslog.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["rsyslog.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 1afff21ff9c94fb39025c370a16e6fa4
+          name: 'rsyslog: Uptime'
+          type: DEPENDENT
+          key: rabe.rsyslog.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["rsyslog.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 0ebab0a4fc134a048f05d07a86e1443d
+              expression: last(/rsyslog/rabe.rsyslog.uptime)<=10m
+              name: 'rsyslog: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: ef752a32685a4bc59466b8e56f9eb7bc
+          name: 'rsyslog: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["rsyslog.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: rsyslog
+      macros:
+        - macro: '{$RSYSLOG.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: df75390b93dc45c4a43ef90ec6b1060b
+          name: 'rsyslog: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rsyslog
+                        key: rabe.rsyslog.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rsyslog
+                        key: rabe.rsyslog.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABKF
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rsyslog
+                        key: rabe.rsyslog.rss
+                    - type: STRING
+                      name: reference
+                      value: AABKG
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rsyslog
+                        key: rabe.rsyslog.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rsyslog
+                        key: rabe.rsyslog.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABKH
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rsyslog
+                        key: rabe.rsyslog.swap
+                    - type: STRING
+                      name: reference
+                      value: AABKI
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rsyslog
+                        key: rabe.rsyslog.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rsyslog
+                        key: rabe.rsyslog.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: rsyslog
+                        key: rabe.rsyslog.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: 165f060c97b84515ada93713bb68847d
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: fdb6a8a860324de49fa51eb09f1f5a64
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: 07b22fdaf8b84e99bbc97062d622f0f4
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/sssd/7.0/README.md b/Templates/Applications/sssd/7.0/README.md
new file mode 100644
index 00000000..7f7ad12e
--- /dev/null
+++ b/Templates/Applications/sssd/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: sssd
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: sssd](https://img.shields.io/badge/target-sssd-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [sssd](https://sssd.io).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: sssd: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about sssd processes
+
+```console
+proc.get[sssd,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: sssd: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.sssd.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["sssd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: sssd: CPU seconds (system)
+
+![component: sssd](https://img.shields.io/badge/component-sssd-00c9bf)
+
+Total CPU seconds (system) of sssd processes.
+
+```console
+rabe.sssd.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[sssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: sssd: CPU seconds (user)
+
+![component: sssd](https://img.shields.io/badge/component-sssd-00c9bf)
+
+Total CPU seconds (user) of sssd processes.
+
+```console
+rabe.sssd.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[sssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: sssd: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.sssd.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["sssd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: sssd: Number of processes
+
+![component: sssd](https://img.shields.io/badge/component-sssd-00c9bf)
+
+Number of sssd processes.
+
+```console
+rabe.sssd.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[sssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: sssd: Memory usage (RSS)
+
+![component: sssd](https://img.shields.io/badge/component-sssd-00c9bf)
+
+Memory usage of sssd processes.
+
+```console
+rabe.sssd.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[sssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: sssd: Swap usage
+
+![component: sssd](https://img.shields.io/badge/component-sssd-00c9bf)
+
+Swap usage of sssd processes.
+
+```console
+rabe.sssd.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[sssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: sssd: Number of threads
+
+![component: sssd](https://img.shields.io/badge/component-sssd-00c9bf)
+
+Number of sssd threads.
+
+```console
+rabe.sssd.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[sssd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: sssd: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.sssd.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["sssd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: sssd: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.sssd.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["sssd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: sssd: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["sssd.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: sssd: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/sssd/rabe.sssd.active_state)<>1
+```
+
+### Trigger: sssd: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running sssd processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/sssd/rabe.sssd.processes)<{$SSSD.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: sssd: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/sssd/rabe.sssd.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$SSSD.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* sssd: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/sssd/6.4/docs/gen_ref_pages.py b/Templates/Applications/sssd/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/sssd/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/sssd/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/sssd/6.4/mkdocs.yaml b/Templates/Applications/sssd/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/sssd/6.4/mkdocs.yaml
rename to Templates/Applications/sssd/7.0/mkdocs.yaml
diff --git a/Templates/Applications/sssd/7.0/sssd.yaml b/Templates/Applications/sssd/7.0/sssd.yaml
new file mode 100644
index 00000000..48bdf687
--- /dev/null
+++ b/Templates/Applications/sssd/7.0/sssd.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: 16b1c17264c0460d92c29aa6b8adb8d1
+      template: sssd
+      name: sssd
+      description: |
+        Monitoring of [sssd](https://sssd.io).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: f794b260ca324da69dd3b551a94d617d
+          name: 'sssd: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[sssd,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about sssd processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: dd211793eab148abba1d130b47e8bf02
+          name: 'sssd: Unit active state'
+          type: DEPENDENT
+          key: rabe.sssd.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["sssd.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 2b195da3505041d2b9167c89ca754576
+              expression: last(/sssd/rabe.sssd.active_state)<>1
+              name: 'sssd: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 42a91aec255a4c42bae147c8588bd660
+          name: 'sssd: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.sssd.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of sssd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[sssd,root,,summary]'
+          tags:
+            - tag: component
+              value: sssd
+        - uuid: 95cb13a3d1cf4aae85429a3b3d29a01f
+          name: 'sssd: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.sssd.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of sssd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[sssd,root,,summary]'
+          tags:
+            - tag: component
+              value: sssd
+        - uuid: 630537b42c5c40049a0ae2859e03b723
+          name: 'sssd: Service load state'
+          type: DEPENDENT
+          key: rabe.sssd.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["sssd.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 65ba0f18eac0408cae1afee4f4b53046
+          name: 'sssd: Number of processes'
+          type: DEPENDENT
+          key: rabe.sssd.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of sssd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[sssd,root,,summary]'
+          tags:
+            - tag: component
+              value: sssd
+          triggers:
+            - uuid: c47f07f0cd5b437082c2293f17812b6b
+              expression: 'last(/sssd/rabe.sssd.processes)<{$SSSD.THRESHOLD.MIN_PROC}'
+              name: 'sssd: No running processes'
+              priority: HIGH
+              description: 'No running sssd processes.'
+              dependencies:
+                - name: 'sssd: Service is not running'
+                  expression: last(/sssd/rabe.sssd.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 4b7f1921c57f4b0c8c0f970e3674c4b7
+          name: 'sssd: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.sssd.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of sssd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[sssd,root,,summary]'
+          tags:
+            - tag: component
+              value: sssd
+        - uuid: 7c7eaf25cf29483db288a7a06b832944
+          name: 'sssd: Swap usage'
+          type: DEPENDENT
+          key: rabe.sssd.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of sssd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[sssd,root,,summary]'
+          tags:
+            - tag: component
+              value: sssd
+        - uuid: b55d87f2113b4a28a53ac8dd5aeeefa7
+          name: 'sssd: Number of threads'
+          type: DEPENDENT
+          key: rabe.sssd.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of sssd threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[sssd,root,,summary]'
+          tags:
+            - tag: component
+              value: sssd
+        - uuid: 47cfb060a88c45728d2aa5a8f903e961
+          name: 'sssd: Unit file state'
+          type: DEPENDENT
+          key: rabe.sssd.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["sssd.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: a2f3779174da4f03891e01eae14c9264
+          name: 'sssd: Uptime'
+          type: DEPENDENT
+          key: rabe.sssd.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["sssd.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: cc585bbbe101460b923cea1b4a803cbc
+              expression: last(/sssd/rabe.sssd.uptime)<=10m
+              name: 'sssd: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: 95e635d0590843b68bd927e513f15619
+          name: 'sssd: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["sssd.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: sssd
+      macros:
+        - macro: '{$SSSD.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: b7b75193454546dc98336f500ae4ff49
+          name: 'sssd: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: sssd
+                        key: rabe.sssd.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: sssd
+                        key: rabe.sssd.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABKJ
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: sssd
+                        key: rabe.sssd.rss
+                    - type: STRING
+                      name: reference
+                      value: AABKK
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: sssd
+                        key: rabe.sssd.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: sssd
+                        key: rabe.sssd.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABKL
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: sssd
+                        key: rabe.sssd.swap
+                    - type: STRING
+                      name: reference
+                      value: AABKM
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: sssd
+                        key: rabe.sssd.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: sssd
+                        key: rabe.sssd.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: sssd
+                        key: rabe.sssd.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: 63dc6ca94ce84eff8a7352fd2d414382
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: c479dbf0f1a64a209559d041ba5f25e3
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: 4df42b6777264d218b97878c10dadbdd
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/systemd-journald/7.0/README.md b/Templates/Applications/systemd-journald/7.0/README.md
new file mode 100644
index 00000000..63332bb6
--- /dev/null
+++ b/Templates/Applications/systemd-journald/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: systemd-journald
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: systemd-journald](https://img.shields.io/badge/target-systemd-journald-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [systemd-journald](https://www.freedesktop.org/software/systemd/man/latest/systemd-journald.service.html).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: systemd-journald: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about systemd-journald processes
+
+```console
+proc.get[systemd-journald,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: systemd-journald: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.systemd-journald.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-journald.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: systemd-journald: CPU seconds (system)
+
+![component: systemd-journald](https://img.shields.io/badge/component-systemd-journald-00c9bf)
+
+Total CPU seconds (system) of systemd-journald processes.
+
+```console
+rabe.systemd-journald.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[systemd-journald,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-journald: CPU seconds (user)
+
+![component: systemd-journald](https://img.shields.io/badge/component-systemd-journald-00c9bf)
+
+Total CPU seconds (user) of systemd-journald processes.
+
+```console
+rabe.systemd-journald.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[systemd-journald,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-journald: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.systemd-journald.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-journald.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: systemd-journald: Number of processes
+
+![component: systemd-journald](https://img.shields.io/badge/component-systemd-journald-00c9bf)
+
+Number of systemd-journald processes.
+
+```console
+rabe.systemd-journald.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-journald,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-journald: Memory usage (RSS)
+
+![component: systemd-journald](https://img.shields.io/badge/component-systemd-journald-00c9bf)
+
+Memory usage of systemd-journald processes.
+
+```console
+rabe.systemd-journald.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-journald,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-journald: Swap usage
+
+![component: systemd-journald](https://img.shields.io/badge/component-systemd-journald-00c9bf)
+
+Swap usage of systemd-journald processes.
+
+```console
+rabe.systemd-journald.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-journald,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-journald: Number of threads
+
+![component: systemd-journald](https://img.shields.io/badge/component-systemd-journald-00c9bf)
+
+Number of systemd-journald threads.
+
+```console
+rabe.systemd-journald.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-journald,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-journald: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.systemd-journald.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-journald.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: systemd-journald: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.systemd-journald.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-journald.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: systemd-journald: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["systemd-journald.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: systemd-journald: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/systemd-journald/rabe.systemd-journald.active_state)<>1
+```
+
+### Trigger: systemd-journald: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running systemd-journald processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/systemd-journald/rabe.systemd-journald.processes)<{$SYSTEMDJOURNALD.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: systemd-journald: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/systemd-journald/rabe.systemd-journald.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$SYSTEMDJOURNALD.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* systemd-journald: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/systemd-journald/6.4/docs/gen_ref_pages.py b/Templates/Applications/systemd-journald/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/systemd-journald/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/systemd-journald/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/systemd-journald/6.4/mkdocs.yaml b/Templates/Applications/systemd-journald/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/systemd-journald/6.4/mkdocs.yaml
rename to Templates/Applications/systemd-journald/7.0/mkdocs.yaml
diff --git a/Templates/Applications/systemd-journald/7.0/systemd-journald.yaml b/Templates/Applications/systemd-journald/7.0/systemd-journald.yaml
new file mode 100644
index 00000000..c3000382
--- /dev/null
+++ b/Templates/Applications/systemd-journald/7.0/systemd-journald.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: c0d178b0ba524448b7bf7b5644009d37
+      template: systemd-journald
+      name: systemd-journald
+      description: |
+        Monitoring of [systemd-journald](https://www.freedesktop.org/software/systemd/man/latest/systemd-journald.service.html).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: 363fe7de80bd462aa3d37146674de67c
+          name: 'systemd-journald: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[systemd-journald,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about systemd-journald processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: 2494ccda55a045e894dcf33ee28ba00a
+          name: 'systemd-journald: Unit active state'
+          type: DEPENDENT
+          key: rabe.systemd-journald.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["systemd-journald.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 8912efe4d5334ec099cceed708e0aba8
+              expression: last(/systemd-journald/rabe.systemd-journald.active_state)<>1
+              name: 'systemd-journald: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: c7931c7ada3747f39a4982111ad85344
+          name: 'systemd-journald: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.systemd-journald.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of systemd-journald processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-journald,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-journald
+        - uuid: 945b74e98c744651a681109fe71ff16b
+          name: 'systemd-journald: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.systemd-journald.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of systemd-journald processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-journald,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-journald
+        - uuid: 86823152e33a48b3b3ec9ca2dd06c094
+          name: 'systemd-journald: Service load state'
+          type: DEPENDENT
+          key: rabe.systemd-journald.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["systemd-journald.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 7545d90e87ab4f8396591f0d1d0498b6
+          name: 'systemd-journald: Number of processes'
+          type: DEPENDENT
+          key: rabe.systemd-journald.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of systemd-journald processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-journald,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-journald
+          triggers:
+            - uuid: 2e718d635eee47f8987d572b690dd20a
+              expression: 'last(/systemd-journald/rabe.systemd-journald.processes)<{$SYSTEMDJOURNALD.THRESHOLD.MIN_PROC}'
+              name: 'systemd-journald: No running processes'
+              priority: HIGH
+              description: 'No running systemd-journald processes.'
+              dependencies:
+                - name: 'systemd-journald: Service is not running'
+                  expression: last(/systemd-journald/rabe.systemd-journald.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: ee555340f7544fb0b0ba742826baf5ab
+          name: 'systemd-journald: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.systemd-journald.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of systemd-journald processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-journald,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-journald
+        - uuid: c11f4d417aa74fb8be1f4d5501eaf3f1
+          name: 'systemd-journald: Swap usage'
+          type: DEPENDENT
+          key: rabe.systemd-journald.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of systemd-journald processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-journald,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-journald
+        - uuid: fe6b759f836041878266787446195030
+          name: 'systemd-journald: Number of threads'
+          type: DEPENDENT
+          key: rabe.systemd-journald.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of systemd-journald threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-journald,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-journald
+        - uuid: ea0bbb0d1309474fb9eb6ddcd255e7b2
+          name: 'systemd-journald: Unit file state'
+          type: DEPENDENT
+          key: rabe.systemd-journald.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["systemd-journald.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 7f0e73f84b974f58a666dbdd82aa2e91
+          name: 'systemd-journald: Uptime'
+          type: DEPENDENT
+          key: rabe.systemd-journald.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["systemd-journald.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 20c0d0a59aee4471b591984a4de1b6fa
+              expression: last(/systemd-journald/rabe.systemd-journald.uptime)<=10m
+              name: 'systemd-journald: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: aa7a1a7f8ca2493c82057f5963a936a2
+          name: 'systemd-journald: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["systemd-journald.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: systemd-journald
+      macros:
+        - macro: '{$SYSTEMDJOURNALD.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: e7954e35bcb845b39fd8fb0b4a5b9654
+          name: 'systemd-journald: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-journald
+                        key: rabe.systemd-journald.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-journald
+                        key: rabe.systemd-journald.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABKN
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-journald
+                        key: rabe.systemd-journald.rss
+                    - type: STRING
+                      name: reference
+                      value: AABKO
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-journald
+                        key: rabe.systemd-journald.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-journald
+                        key: rabe.systemd-journald.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABKP
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-journald
+                        key: rabe.systemd-journald.swap
+                    - type: STRING
+                      name: reference
+                      value: AABKQ
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-journald
+                        key: rabe.systemd-journald.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '6'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '7'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '8'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-journald
+                        key: rabe.systemd-journald.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-journald
+                        key: rabe.systemd-journald.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: a1a9b9d4abd44617b2c935ab7a996e4c
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: 76365f9e226341c990150d110e6d92db
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: 46f704bbfdec4e3c872b6db247caecb2
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/systemd-logind/7.0/README.md b/Templates/Applications/systemd-logind/7.0/README.md
new file mode 100644
index 00000000..81aae2e4
--- /dev/null
+++ b/Templates/Applications/systemd-logind/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: systemd-logind
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: systemd-logind](https://img.shields.io/badge/target-systemd-logind-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [systemd-logind](https://www.freedesktop.org/software/systemd/man/latest/systemd-logind.service.html).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: systemd-logind: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about systemd-logind processes
+
+```console
+proc.get[systemd-logind,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: systemd-logind: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.systemd-logind.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-logind.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: systemd-logind: CPU seconds (system)
+
+![component: systemd-logind](https://img.shields.io/badge/component-systemd-logind-00c9bf)
+
+Total CPU seconds (system) of systemd-logind processes.
+
+```console
+rabe.systemd-logind.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[systemd-logind,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-logind: CPU seconds (user)
+
+![component: systemd-logind](https://img.shields.io/badge/component-systemd-logind-00c9bf)
+
+Total CPU seconds (user) of systemd-logind processes.
+
+```console
+rabe.systemd-logind.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[systemd-logind,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-logind: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.systemd-logind.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-logind.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: systemd-logind: Number of processes
+
+![component: systemd-logind](https://img.shields.io/badge/component-systemd-logind-00c9bf)
+
+Number of systemd-logind processes.
+
+```console
+rabe.systemd-logind.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-logind,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-logind: Memory usage (RSS)
+
+![component: systemd-logind](https://img.shields.io/badge/component-systemd-logind-00c9bf)
+
+Memory usage of systemd-logind processes.
+
+```console
+rabe.systemd-logind.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-logind,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-logind: Swap usage
+
+![component: systemd-logind](https://img.shields.io/badge/component-systemd-logind-00c9bf)
+
+Swap usage of systemd-logind processes.
+
+```console
+rabe.systemd-logind.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-logind,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-logind: Number of threads
+
+![component: systemd-logind](https://img.shields.io/badge/component-systemd-logind-00c9bf)
+
+Number of systemd-logind threads.
+
+```console
+rabe.systemd-logind.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-logind,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-logind: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.systemd-logind.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-logind.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: systemd-logind: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.systemd-logind.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-logind.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: systemd-logind: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["systemd-logind.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: systemd-logind: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/systemd-logind/rabe.systemd-logind.active_state)<>1
+```
+
+### Trigger: systemd-logind: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running systemd-logind processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/systemd-logind/rabe.systemd-logind.processes)<{$SYSTEMDLOGIND.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: systemd-logind: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/systemd-logind/rabe.systemd-logind.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$SYSTEMDLOGIND.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* systemd-logind: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/systemd-logind/6.4/docs/gen_ref_pages.py b/Templates/Applications/systemd-logind/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/systemd-logind/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/systemd-logind/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/systemd-logind/6.4/mkdocs.yaml b/Templates/Applications/systemd-logind/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/systemd-logind/6.4/mkdocs.yaml
rename to Templates/Applications/systemd-logind/7.0/mkdocs.yaml
diff --git a/Templates/Applications/systemd-logind/7.0/systemd-logind.yaml b/Templates/Applications/systemd-logind/7.0/systemd-logind.yaml
new file mode 100644
index 00000000..1e6c07cd
--- /dev/null
+++ b/Templates/Applications/systemd-logind/7.0/systemd-logind.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: a30e5c013f51405f9a91afa1a6a978f2
+      template: systemd-logind
+      name: systemd-logind
+      description: |
+        Monitoring of [systemd-logind](https://www.freedesktop.org/software/systemd/man/latest/systemd-logind.service.html).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: e77759138ce440cc85b1071b1a8ee9a0
+          name: 'systemd-logind: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[systemd-logind,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about systemd-logind processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: ce970f8212fd435182d3cd02ba4a1718
+          name: 'systemd-logind: Unit active state'
+          type: DEPENDENT
+          key: rabe.systemd-logind.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["systemd-logind.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 4eab40cbbfe24d7fae40d3877392fa08
+              expression: last(/systemd-logind/rabe.systemd-logind.active_state)<>1
+              name: 'systemd-logind: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 9ea5c628669045dc83525cf198f9d55f
+          name: 'systemd-logind: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.systemd-logind.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of systemd-logind processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-logind,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-logind
+        - uuid: 150d11e553684077b6a55cc0fb04fd08
+          name: 'systemd-logind: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.systemd-logind.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of systemd-logind processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-logind,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-logind
+        - uuid: 8670ce83d52c456fa2661936197d90c9
+          name: 'systemd-logind: Service load state'
+          type: DEPENDENT
+          key: rabe.systemd-logind.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["systemd-logind.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 0a44678ec5d14449944e9b3e315f4755
+          name: 'systemd-logind: Number of processes'
+          type: DEPENDENT
+          key: rabe.systemd-logind.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of systemd-logind processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-logind,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-logind
+          triggers:
+            - uuid: faff94d6d02e440aae18fdd7b59bd73b
+              expression: 'last(/systemd-logind/rabe.systemd-logind.processes)<{$SYSTEMDLOGIND.THRESHOLD.MIN_PROC}'
+              name: 'systemd-logind: No running processes'
+              priority: HIGH
+              description: 'No running systemd-logind processes.'
+              dependencies:
+                - name: 'systemd-logind: Service is not running'
+                  expression: last(/systemd-logind/rabe.systemd-logind.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 6f538469a1d54a7586a721bd115cbdcf
+          name: 'systemd-logind: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.systemd-logind.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of systemd-logind processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-logind,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-logind
+        - uuid: 61251f313d8b47f0860dc9983840c7e5
+          name: 'systemd-logind: Swap usage'
+          type: DEPENDENT
+          key: rabe.systemd-logind.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of systemd-logind processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-logind,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-logind
+        - uuid: 1b10af6c40224d29b2cc68628e3ab617
+          name: 'systemd-logind: Number of threads'
+          type: DEPENDENT
+          key: rabe.systemd-logind.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of systemd-logind threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-logind,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-logind
+        - uuid: 97cb7b49a11f40f79295fc5091d62aad
+          name: 'systemd-logind: Unit file state'
+          type: DEPENDENT
+          key: rabe.systemd-logind.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["systemd-logind.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 194b6a296bc747a397fd19b83d2ccd7e
+          name: 'systemd-logind: Uptime'
+          type: DEPENDENT
+          key: rabe.systemd-logind.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["systemd-logind.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 8e6f3284cad14757adbf6c53f59c315c
+              expression: last(/systemd-logind/rabe.systemd-logind.uptime)<=10m
+              name: 'systemd-logind: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: 01564f12c06d4334b439ec69a19da517
+          name: 'systemd-logind: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["systemd-logind.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: systemd-logind
+      macros:
+        - macro: '{$SYSTEMDLOGIND.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: 9fd3c447ca7441b1834af2750b6feda6
+          name: 'systemd-logind: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-logind
+                        key: rabe.systemd-logind.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-logind
+                        key: rabe.systemd-logind.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABKR
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-logind
+                        key: rabe.systemd-logind.rss
+                    - type: STRING
+                      name: reference
+                      value: AABKS
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-logind
+                        key: rabe.systemd-logind.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-logind
+                        key: rabe.systemd-logind.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABKT
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-logind
+                        key: rabe.systemd-logind.swap
+                    - type: STRING
+                      name: reference
+                      value: AABKU
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-logind
+                        key: rabe.systemd-logind.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '6'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '7'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '8'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-logind
+                        key: rabe.systemd-logind.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-logind
+                        key: rabe.systemd-logind.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: 273454416134432b8069656b61227493
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: 2fbb5aa82d9d4e919ea068f761c2f991
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: d09f03ba510d43658aedd58b7132738f
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/systemd-udevd/7.0/README.md b/Templates/Applications/systemd-udevd/7.0/README.md
new file mode 100644
index 00000000..d543e8df
--- /dev/null
+++ b/Templates/Applications/systemd-udevd/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: systemd-udevd
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: systemd-udevd](https://img.shields.io/badge/target-systemd-udevd-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [systemd-udevd](https://www.freedesktop.org/software/systemd/man/latest/systemd-udevd.service.html).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: systemd-udevd: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about systemd-udevd processes
+
+```console
+proc.get[systemd-udevd,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: systemd-udevd: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.systemd-udevd.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-udevd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: systemd-udevd: CPU seconds (system)
+
+![component: systemd-udevd](https://img.shields.io/badge/component-systemd-udevd-00c9bf)
+
+Total CPU seconds (system) of systemd-udevd processes.
+
+```console
+rabe.systemd-udevd.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[systemd-udevd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-udevd: CPU seconds (user)
+
+![component: systemd-udevd](https://img.shields.io/badge/component-systemd-udevd-00c9bf)
+
+Total CPU seconds (user) of systemd-udevd processes.
+
+```console
+rabe.systemd-udevd.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[systemd-udevd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-udevd: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.systemd-udevd.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-udevd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: systemd-udevd: Number of processes
+
+![component: systemd-udevd](https://img.shields.io/badge/component-systemd-udevd-00c9bf)
+
+Number of systemd-udevd processes.
+
+```console
+rabe.systemd-udevd.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-udevd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-udevd: Memory usage (RSS)
+
+![component: systemd-udevd](https://img.shields.io/badge/component-systemd-udevd-00c9bf)
+
+Memory usage of systemd-udevd processes.
+
+```console
+rabe.systemd-udevd.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-udevd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-udevd: Swap usage
+
+![component: systemd-udevd](https://img.shields.io/badge/component-systemd-udevd-00c9bf)
+
+Swap usage of systemd-udevd processes.
+
+```console
+rabe.systemd-udevd.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-udevd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-udevd: Number of threads
+
+![component: systemd-udevd](https://img.shields.io/badge/component-systemd-udevd-00c9bf)
+
+Number of systemd-udevd threads.
+
+```console
+rabe.systemd-udevd.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[systemd-udevd,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: systemd-udevd: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.systemd-udevd.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-udevd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: systemd-udevd: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.systemd-udevd.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["systemd-udevd.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: systemd-udevd: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["systemd-udevd.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: systemd-udevd: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/systemd-udevd/rabe.systemd-udevd.active_state)<>1
+```
+
+### Trigger: systemd-udevd: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running systemd-udevd processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/systemd-udevd/rabe.systemd-udevd.processes)<{$SYSTEMDUDEVD.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: systemd-udevd: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/systemd-udevd/rabe.systemd-udevd.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$SYSTEMDUDEVD.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* systemd-udevd: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/systemd-udevd/6.4/docs/gen_ref_pages.py b/Templates/Applications/systemd-udevd/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/systemd-udevd/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/systemd-udevd/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/systemd-udevd/6.4/mkdocs.yaml b/Templates/Applications/systemd-udevd/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/systemd-udevd/6.4/mkdocs.yaml
rename to Templates/Applications/systemd-udevd/7.0/mkdocs.yaml
diff --git a/Templates/Applications/systemd-udevd/7.0/systemd-udevd.yaml b/Templates/Applications/systemd-udevd/7.0/systemd-udevd.yaml
new file mode 100644
index 00000000..50b4ffb3
--- /dev/null
+++ b/Templates/Applications/systemd-udevd/7.0/systemd-udevd.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: 68c64cee88374d66840dc22b430809d1
+      template: systemd-udevd
+      name: systemd-udevd
+      description: |
+        Monitoring of [systemd-udevd](https://www.freedesktop.org/software/systemd/man/latest/systemd-udevd.service.html).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: e84cdf8391e84b0bb54750115c7575f6
+          name: 'systemd-udevd: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[systemd-udevd,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about systemd-udevd processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: 169078f3661f44049ecfe145d31cfd72
+          name: 'systemd-udevd: Unit active state'
+          type: DEPENDENT
+          key: rabe.systemd-udevd.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["systemd-udevd.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: cc3834ce8310433298ed3c3ee0ad7711
+              expression: last(/systemd-udevd/rabe.systemd-udevd.active_state)<>1
+              name: 'systemd-udevd: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 865669d5334043fbbea0cbb8ebb76ff8
+          name: 'systemd-udevd: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.systemd-udevd.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of systemd-udevd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-udevd,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-udevd
+        - uuid: f1764724074e4af6b847345962f89bb9
+          name: 'systemd-udevd: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.systemd-udevd.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of systemd-udevd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-udevd,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-udevd
+        - uuid: 1cb71c9a92744506b2cc41c1255edeac
+          name: 'systemd-udevd: Service load state'
+          type: DEPENDENT
+          key: rabe.systemd-udevd.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["systemd-udevd.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: ed587c3a2b304a169b26b5a5ef6d1685
+          name: 'systemd-udevd: Number of processes'
+          type: DEPENDENT
+          key: rabe.systemd-udevd.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of systemd-udevd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-udevd,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-udevd
+          triggers:
+            - uuid: e05fd53525de4f05a5abf0406704bb95
+              expression: 'last(/systemd-udevd/rabe.systemd-udevd.processes)<{$SYSTEMDUDEVD.THRESHOLD.MIN_PROC}'
+              name: 'systemd-udevd: No running processes'
+              priority: HIGH
+              description: 'No running systemd-udevd processes.'
+              dependencies:
+                - name: 'systemd-udevd: Service is not running'
+                  expression: last(/systemd-udevd/rabe.systemd-udevd.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 962006696ce140938b981b211f6805a5
+          name: 'systemd-udevd: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.systemd-udevd.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of systemd-udevd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-udevd,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-udevd
+        - uuid: 10a6f83b779840adbe4c961108171faa
+          name: 'systemd-udevd: Swap usage'
+          type: DEPENDENT
+          key: rabe.systemd-udevd.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of systemd-udevd processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-udevd,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-udevd
+        - uuid: decff16e2eac4cd58d4adc84f5423871
+          name: 'systemd-udevd: Number of threads'
+          type: DEPENDENT
+          key: rabe.systemd-udevd.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of systemd-udevd threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[systemd-udevd,root,,summary]'
+          tags:
+            - tag: component
+              value: systemd-udevd
+        - uuid: 07e8cd833db64556b87d55282cbe5edc
+          name: 'systemd-udevd: Unit file state'
+          type: DEPENDENT
+          key: rabe.systemd-udevd.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["systemd-udevd.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: f4a17e829ec3416182649d7ddeb51e1f
+          name: 'systemd-udevd: Uptime'
+          type: DEPENDENT
+          key: rabe.systemd-udevd.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["systemd-udevd.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: a37f38acac464b43b196b641dfba5ffd
+              expression: last(/systemd-udevd/rabe.systemd-udevd.uptime)<=10m
+              name: 'systemd-udevd: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: b708a6fbee704fdc93f8a68fe2148928
+          name: 'systemd-udevd: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["systemd-udevd.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: systemd-udevd
+      macros:
+        - macro: '{$SYSTEMDUDEVD.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: aaa56c2502e344e49062c6d1d21ae124
+          name: 'systemd-udevd: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-udevd
+                        key: rabe.systemd-udevd.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-udevd
+                        key: rabe.systemd-udevd.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABKV
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-udevd
+                        key: rabe.systemd-udevd.rss
+                    - type: STRING
+                      name: reference
+                      value: AABKW
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-udevd
+                        key: rabe.systemd-udevd.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-udevd
+                        key: rabe.systemd-udevd.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABKX
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-udevd
+                        key: rabe.systemd-udevd.swap
+                    - type: STRING
+                      name: reference
+                      value: AABKY
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-udevd
+                        key: rabe.systemd-udevd.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '6'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '7'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '8'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-udevd
+                        key: rabe.systemd-udevd.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: systemd-udevd
+                        key: rabe.systemd-udevd.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: 9598ed70a3af401fbf0e9fb6a2d7f851
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: 64c4a8a82f514fc6b32eb23f7a1171cb
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: eb7cce35ded54ebdae38113b45db455b
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/Templates/Applications/timedatectl/7.0/README.md b/Templates/Applications/timedatectl/7.0/README.md
new file mode 100644
index 00000000..9e367a94
--- /dev/null
+++ b/Templates/Applications/timedatectl/7.0/README.md
@@ -0,0 +1,225 @@
+# Zabbix Template: timedatectl
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: timedatectl](https://img.shields.io/badge/target-timedatectl-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Keeps track of the time and date subsystem by running timedatectl status.
+
+Needs the following configuration:
+```
+AllowKey=system.run[/usr/bin/timedatectl show]
+```
+
+See [here](https://www.freedesktop.org/software/systemd/man/latest/timedatectl.html)
+for more information about timedatectl.
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: timedatectl: NTP service status
+
+![component: timedatectl](https://img.shields.io/badge/component-timedatectl-00c9bf)
+
+NTP service status
+
+```console
+rabe.timedatectl.status.ntp_service
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/timedatectl show]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| REGEX | `["NTP=(.*)", "\\1"]` |
+| JAVASCRIPT | `["return {\"yes\": 1, \"no\": 0}[value]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: timedatectl: RTC in local TZ
+
+![component: timedatectl](https://img.shields.io/badge/component-timedatectl-00c9bf)
+
+Is the RTC in local TZ?
+
+```console
+rabe.timedatectl.status.rtc_in_local_tz
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/timedatectl show]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| REGEX | `["LocalRTC=(.*)", "\\1"]` |
+| JAVASCRIPT | `["return {\"yes\": 1, \"no\": 0}[value]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: timedatectl: System clock synchronized
+
+![component: timedatectl](https://img.shields.io/badge/component-timedatectl-00c9bf)
+
+Is the system clock synchronized?
+
+```console
+rabe.timedatectl.status.system_clock_synchronized
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/timedatectl show]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| REGEX | `["NTPSynchronized=(.*)", "\\1"]` |
+| JAVASCRIPT | `["return {\"yes\": 1, \"no\": 0}[value]"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: timedatectl: Time zone
+
+![component: timedatectl](https://img.shields.io/badge/component-timedatectl-00c9bf)
+
+Time zone
+
+```console
+rabe.timedatectl.status.time_zone
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | TEXT |
+| History | 7d |
+| Source item | `system.run[/usr/bin/timedatectl show]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| REGEX | `["Timezone=(.*)", "\\1"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["1d"]` |
+
+### Item: timedatectl: Get status
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get output from timedatectl status.
+
+```console
+system.run[/usr/bin/timedatectl show]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: timedatectl: NTP not active
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+The NTP service is not active, check `timedatectl status` for more info.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+
+```console
+last(/timedatectl/rabe.timedatectl.status.ntp_service)<>1
+```
+
+### Trigger: timedatectl: RTC not in local TZ
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+The RTC not in local TZ, check `timedatectl status` for more info.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+
+```console
+last(/timedatectl/rabe.timedatectl.status.rtc_in_local_tz)<>0
+```
+
+### Trigger: timedatectl: NTP not synchronized
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) ![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+NTP is not in sync, check `timedatectl status` for more info.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+
+```console
+last(/timedatectl/rabe.timedatectl.status.system_clock_synchronized)<>1
+```
+
+### Trigger: timedatectl: NTP not synchronized for more than {$TIMEDATECTL_MAX_NO_SYNC_TIME}
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+NTP is not in sync, check `timedatectl status` for more info.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+
+```console
+last(/timedatectl/rabe.timedatectl.status.system_clock_synchronized,{$TIMEDATECTL_MAX_NO_SYNC_TIME})<1
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$TIMEDATECTL_MAX_NO_SYNC_TIME}`
+
+How long can time be out if sync before we care?
+
+Default:
+
+```console
+60m
+```
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/timedatectl/6.4/docs/gen_ref_pages.py b/Templates/Applications/timedatectl/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/timedatectl/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/timedatectl/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/timedatectl/6.4/mkdocs.yaml b/Templates/Applications/timedatectl/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/timedatectl/6.4/mkdocs.yaml
rename to Templates/Applications/timedatectl/7.0/mkdocs.yaml
diff --git a/Templates/Applications/timedatectl/7.0/timedatectl.yaml b/Templates/Applications/timedatectl/7.0/timedatectl.yaml
new file mode 100644
index 00000000..83761224
--- /dev/null
+++ b/Templates/Applications/timedatectl/7.0/timedatectl.yaml
@@ -0,0 +1,200 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: 6d986f76224c4737991379018a5053df
+      template: timedatectl
+      name: timedatectl
+      description: |
+        Keeps track of the time and date subsystem by running timedatectl status.
+        
+        Needs the following configuration:
+        ```
+        AllowKey=system.run[/usr/bin/timedatectl show]
+        ```
+        
+        See [here](https://www.freedesktop.org/software/systemd/man/latest/timedatectl.html)
+        for more information about timedatectl.
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: f99cb96f1a434eb0a18695b599be6aa2
+          name: 'timedatectl: NTP service status'
+          type: DEPENDENT
+          key: rabe.timedatectl.status.ntp_service
+          delay: '0'
+          history: 7d
+          description: 'NTP service status'
+          valuemap:
+            name: 'Service status'
+          preprocessing:
+            - type: REGEX
+              parameters:
+                - 'NTP=(.*)'
+                - \1
+            - type: JAVASCRIPT
+              parameters:
+                - 'return {"yes": 1, "no": 0}[value]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'system.run[/usr/bin/timedatectl show]'
+          tags:
+            - tag: component
+              value: timedatectl
+          triggers:
+            - uuid: 60519a0277a346359eb813d619835bea
+              expression: last(/timedatectl/rabe.timedatectl.status.ntp_service)<>1
+              name: 'timedatectl: NTP not active'
+              priority: WARNING
+              description: 'The NTP service is not active, check `timedatectl status` for more info.'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: 2e27ec62a973426a9dfbf2ee6ec80df5
+          name: 'timedatectl: RTC in local TZ'
+          type: DEPENDENT
+          key: rabe.timedatectl.status.rtc_in_local_tz
+          delay: '0'
+          history: 7d
+          description: 'Is the RTC in local TZ?'
+          valuemap:
+            name: Status
+          preprocessing:
+            - type: REGEX
+              parameters:
+                - 'LocalRTC=(.*)'
+                - \1
+            - type: JAVASCRIPT
+              parameters:
+                - 'return {"yes": 1, "no": 0}[value]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'system.run[/usr/bin/timedatectl show]'
+          tags:
+            - tag: component
+              value: timedatectl
+          triggers:
+            - uuid: fd6e89cd7a284eb09fb98f15ed011a04
+              expression: last(/timedatectl/rabe.timedatectl.status.rtc_in_local_tz)<>0
+              name: 'timedatectl: RTC not in local TZ'
+              priority: INFO
+              description: 'The RTC not in local TZ, check `timedatectl status` for more info.'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: c5e288f97d6d4a52959358a890409fd4
+          name: 'timedatectl: System clock synchronized'
+          type: DEPENDENT
+          key: rabe.timedatectl.status.system_clock_synchronized
+          delay: '0'
+          history: 7d
+          description: 'Is the system clock synchronized?'
+          valuemap:
+            name: Status
+          preprocessing:
+            - type: REGEX
+              parameters:
+                - 'NTPSynchronized=(.*)'
+                - \1
+            - type: JAVASCRIPT
+              parameters:
+                - 'return {"yes": 1, "no": 0}[value]'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'system.run[/usr/bin/timedatectl show]'
+          tags:
+            - tag: component
+              value: timedatectl
+          triggers:
+            - uuid: 8b917fa2bc904bfcba0467a968819020
+              expression: last(/timedatectl/rabe.timedatectl.status.system_clock_synchronized)<>1
+              name: 'timedatectl: NTP not synchronized'
+              priority: INFO
+              description: 'NTP is not in sync, check `timedatectl status` for more info.'
+              dependencies:
+                - name: 'timedatectl: NTP not synchronized for more than {$TIMEDATECTL_MAX_NO_SYNC_TIME}'
+                  expression: 'last(/timedatectl/rabe.timedatectl.status.system_clock_synchronized,{$TIMEDATECTL_MAX_NO_SYNC_TIME})<1'
+              tags:
+                - tag: scope
+                  value: availability
+                - tag: scope
+                  value: notice
+            - uuid: 40264d8d024b4a7c8e7eceadf719f43b
+              expression: 'last(/timedatectl/rabe.timedatectl.status.system_clock_synchronized,{$TIMEDATECTL_MAX_NO_SYNC_TIME})<1'
+              name: 'timedatectl: NTP not synchronized for more than {$TIMEDATECTL_MAX_NO_SYNC_TIME}'
+              priority: WARNING
+              description: 'NTP is not in sync, check `timedatectl status` for more info.'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: f4af343dc2c14673b8439c197f909239
+          name: 'timedatectl: Time zone'
+          type: DEPENDENT
+          key: rabe.timedatectl.status.time_zone
+          delay: '0'
+          history: 7d
+          value_type: TEXT
+          trends: '0'
+          description: 'Time zone'
+          preprocessing:
+            - type: REGEX
+              parameters:
+                - 'Timezone=(.*)'
+                - \1
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 1d
+          master_item:
+            key: 'system.run[/usr/bin/timedatectl show]'
+          tags:
+            - tag: component
+              value: timedatectl
+        - uuid: 913f9a76ee83464886433833455bd83f
+          name: 'timedatectl: Get status'
+          type: ZABBIX_ACTIVE
+          key: 'system.run[/usr/bin/timedatectl show]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get output from timedatectl status.'
+          tags:
+            - tag: component
+              value: raw
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: timedatectl
+      macros:
+        - macro: '{$TIMEDATECTL_MAX_NO_SYNC_TIME}'
+          value: 60m
+          description: 'How long can time be out if sync before we care?'
+      valuemaps:
+        - uuid: b2a114b092954391a1d6828f7b1f8bc0
+          name: 'Service status'
+          mappings:
+            - value: '1'
+              newvalue: active
+            - type: DEFAULT
+              newvalue: inactive
+        - uuid: 53732806df7e4a8aa9263ee9f928badc
+          name: Status
+          mappings:
+            - value: '1'
+              newvalue: 'yes'
+            - value: '0'
+              newvalue: 'no'
diff --git a/Templates/Applications/tuned/7.0/README.md b/Templates/Applications/tuned/7.0/README.md
new file mode 100644
index 00000000..88568fba
--- /dev/null
+++ b/Templates/Applications/tuned/7.0/README.md
@@ -0,0 +1,377 @@
+# Zabbix Template: tuned
+
+![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: tuned](https://img.shields.io/badge/target-tuned-00c9bf) ![vendor: RaBe](https://img.shields.io/badge/vendor-RaBe-00c9bf) ![version: 7.0](https://img.shields.io/badge/version-7.0-00c9bf)
+
+Monitoring of [tuned](https://tuned-project.org/).
+
+This template is part of [RaBe's Zabbix template and helpers
+collection](https://github.com/radiorabe/rabe-zabbix).
+
+## Items
+
+### Item: tuned: process summary
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf)
+
+Get info about tuned processes
+
+```console
+proc.get[tuned,root,,summary]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+### Item: tuned: Unit active state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".
+
+```console
+rabe.tuned.active_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["tuned.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.ActiveState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: tuned: CPU seconds (system)
+
+![component: tuned](https://img.shields.io/badge/component-tuned-00c9bf)
+
+Total CPU seconds (system) of tuned processes.
+
+```console
+rabe.tuned.cputime_system
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[tuned,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_system.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: tuned: CPU seconds (user)
+
+![component: tuned](https://img.shields.io/badge/component-tuned-00c9bf)
+
+Total CPU seconds (user) of tuned processes.
+
+```console
+rabe.tuned.cputime_user
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT |
+| History | 7d |
+| Source item | `proc.get[tuned,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].cputime_user.first()"]` |
+| SIMPLE_CHANGE | `[""]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: tuned: Service load state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".
+
+```console
+rabe.tuned.load_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["tuned.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.LoadState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: tuned: Number of processes
+
+![component: tuned](https://img.shields.io/badge/component-tuned-00c9bf)
+
+Number of tuned processes.
+
+```console
+rabe.tuned.processes
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[tuned,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].processes.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: tuned: Memory usage (RSS)
+
+![component: tuned](https://img.shields.io/badge/component-tuned-00c9bf)
+
+Memory usage of tuned processes.
+
+```console
+rabe.tuned.rss
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[tuned,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].rss.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: tuned: Swap usage
+
+![component: tuned](https://img.shields.io/badge/component-tuned-00c9bf)
+
+Swap usage of tuned processes.
+
+```console
+rabe.tuned.swap
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[tuned,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].swap.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: tuned: Number of threads
+
+![component: tuned](https://img.shields.io/badge/component-tuned-00c9bf)
+
+Number of tuned threads.
+
+```console
+rabe.tuned.threads
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `proc.get[tuned,root,,summary]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$[*].threads.first()"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["5m"]` |
+
+### Item: tuned: Unit file state
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".
+
+```console
+rabe.tuned.unitfile_state
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| History | 7d |
+| Source item | `systemd.unit.get["tuned.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JSONPATH | `["$.UnitFileState.state"]` |
+| DISCARD_UNCHANGED_HEARTBEAT | `["30m"]` |
+
+### Item: tuned: Uptime
+
+![component: service](https://img.shields.io/badge/component-service-00c9bf)
+
+Number of seconds since unit entered the active state.
+
+```console
+rabe.tuned.uptime
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | DEPENDENT |
+| Value type | FLOAT in uptime |
+| History | 7d |
+| Source item | `systemd.unit.get["tuned.service"]` |
+
+Preprocessing steps:
+
+| Type | Parameters |
+| ---- | ---------- |
+| JAVASCRIPT | `["data = JSON.parse(value);\nif (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {\n      return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;\n}\nreturn null;\n"]` |
+
+### Item: tuned: unit info
+
+![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: unit](https://img.shields.io/badge/component-unit-00c9bf)
+
+Get unit info from systemd
+
+```console
+systemd.unit.get["tuned.service"]
+```
+
+Settings:
+
+| Item Setting | Value |
+| ------------ | ----- |
+| Type | ZABBIX_ACTIVE |
+| Value type | TEXT |
+
+## Triggers
+
+### Trigger: tuned: Service is not running
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | WARNING |
+| Manual close | YES |
+
+```console
+last(/tuned/rabe.tuned.active_state)<>1
+```
+
+### Trigger: tuned: No running processes
+
+![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf)
+
+No running tuned processes.
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | HIGH |
+
+```console
+last(/tuned/rabe.tuned.processes)<{$TUNED.THRESHOLD.MIN_PROC}
+```
+
+### Trigger: tuned: has been restarted
+
+![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf)
+
+
+Settings:
+
+| Trigger Setting | Values |
+| --------------- | ------ |
+| Priority | INFO |
+| Manual close | YES |
+
+```console
+last(/tuned/rabe.tuned.uptime)<=10m
+```
+
+## Macros
+
+The following Zabbix macros are configured via this template.
+
+### Macro: `{$TUNED.THRESHOLD.MIN_PROC}`
+
+Minimum amount of processes expected to be running at all times.
+
+Default:
+
+```console
+1
+```
+
+## Dashboards
+
+The following Zabbix dashboards are included in this template.
+
+* tuned: Overview
+
+## License
+
+This template is free software: you can redistribute it and/or modify it under
+the terms of the GNU Affero General Public License as published by the Free
+Software Foundation, version 3 of the License.
+
+## Copyright
+
+Copyright (c) 2017 - 2024 [Radio Bern RaBe](http://www.rabe.ch)
diff --git a/Templates/Applications/tuned/6.4/docs/gen_ref_pages.py b/Templates/Applications/tuned/7.0/docs/gen_ref_pages.py
similarity index 100%
rename from Templates/Applications/tuned/6.4/docs/gen_ref_pages.py
rename to Templates/Applications/tuned/7.0/docs/gen_ref_pages.py
diff --git a/Templates/Applications/tuned/6.4/mkdocs.yaml b/Templates/Applications/tuned/7.0/mkdocs.yaml
similarity index 100%
rename from Templates/Applications/tuned/6.4/mkdocs.yaml
rename to Templates/Applications/tuned/7.0/mkdocs.yaml
diff --git a/Templates/Applications/tuned/7.0/tuned.yaml b/Templates/Applications/tuned/7.0/tuned.yaml
new file mode 100644
index 00000000..33e2fcae
--- /dev/null
+++ b/Templates/Applications/tuned/7.0/tuned.yaml
@@ -0,0 +1,592 @@
+zabbix_export:
+  version: '7.0'
+  template_groups:
+    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
+      name: Templates/Applications
+  templates:
+    - uuid: 0093431a499f44038cc53fb8add37607
+      template: tuned
+      name: tuned
+      description: |
+        Monitoring of [tuned](https://tuned-project.org/).
+        
+        This template is part of [RaBe's Zabbix template and helpers
+        collection](https://github.com/radiorabe/rabe-zabbix).
+      vendor:
+        name: RaBe
+        version: '7.0'
+      groups:
+        - name: Templates/Applications
+      items:
+        - uuid: e0742602ab444139bcafa095b2b89e24
+          name: 'tuned: process summary'
+          type: ZABBIX_ACTIVE
+          key: 'proc.get[tuned,root,,summary]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get info about tuned processes'
+          tags:
+            - tag: component
+              value: raw
+        - uuid: c7b6f51bbe514e4c925b4bc598903079
+          name: 'tuned: Unit active state'
+          type: DEPENDENT
+          key: rabe.tuned.active_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the unit is currently active or not. The following states are currently defined: "active", "reloading", "inactive", "failed", "activating", and "deactivating".'
+          valuemap:
+            name: 'Unit Active State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.ActiveState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["tuned.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: f3e38b42afb345d08de7d82d399714c9
+              expression: last(/tuned/rabe.tuned.active_state)<>1
+              name: 'tuned: Service is not running'
+              priority: WARNING
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 6ca6b762c1784a02ae25870f3e4e5f3e
+          name: 'tuned: CPU seconds (system)'
+          type: DEPENDENT
+          key: rabe.tuned.cputime_system
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (system) of tuned processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_system.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[tuned,root,,summary]'
+          tags:
+            - tag: component
+              value: tuned
+        - uuid: 9efc7e6794754e3b9015b3b7fa97c0ad
+          name: 'tuned: CPU seconds (user)'
+          type: DEPENDENT
+          key: rabe.tuned.cputime_user
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          description: 'Total CPU seconds (user) of tuned processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].cputime_user.first()'
+            - type: SIMPLE_CHANGE
+              parameters:
+                - ''
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[tuned,root,,summary]'
+          tags:
+            - tag: component
+              value: tuned
+        - uuid: 2605f3fa64e64dcaa43047b5eb3c9d7c
+          name: 'tuned: Service load state'
+          type: DEPENDENT
+          key: rabe.tuned.load_state
+          delay: '0'
+          history: 7d
+          description: 'State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked".'
+          valuemap:
+            name: 'Unit Load State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.LoadState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["tuned.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 8913fbd5c5ca456d9724bdb315dbf99f
+          name: 'tuned: Number of processes'
+          type: DEPENDENT
+          key: rabe.tuned.processes
+          delay: '0'
+          history: 7d
+          description: 'Number of tuned processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].processes.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[tuned,root,,summary]'
+          tags:
+            - tag: component
+              value: tuned
+          triggers:
+            - uuid: cdfbb7c4e736486583ce79b51764f4e5
+              expression: 'last(/tuned/rabe.tuned.processes)<{$TUNED.THRESHOLD.MIN_PROC}'
+              name: 'tuned: No running processes'
+              priority: HIGH
+              description: 'No running tuned processes.'
+              dependencies:
+                - name: 'tuned: Service is not running'
+                  expression: last(/tuned/rabe.tuned.active_state)<>1
+              tags:
+                - tag: scope
+                  value: availability
+        - uuid: 15f6e52e00514036ad1f70083f69130e
+          name: 'tuned: Memory usage (RSS)'
+          type: DEPENDENT
+          key: rabe.tuned.rss
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Memory usage of tuned processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].rss.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[tuned,root,,summary]'
+          tags:
+            - tag: component
+              value: tuned
+        - uuid: 289ff0de70cf4872aa01e22e90894834
+          name: 'tuned: Swap usage'
+          type: DEPENDENT
+          key: rabe.tuned.swap
+          delay: '0'
+          history: 7d
+          units: B
+          description: 'Swap usage of tuned processes.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].swap.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[tuned,root,,summary]'
+          tags:
+            - tag: component
+              value: tuned
+        - uuid: 535cb5ec169d49d4a6f34eb57cbf2102
+          name: 'tuned: Number of threads'
+          type: DEPENDENT
+          key: rabe.tuned.threads
+          delay: '0'
+          history: 7d
+          description: 'Number of tuned threads.'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - '$[*].threads.first()'
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 5m
+          master_item:
+            key: 'proc.get[tuned,root,,summary]'
+          tags:
+            - tag: component
+              value: tuned
+        - uuid: c6fca3398244461dabd4eeeaa99120fe
+          name: 'tuned: Unit file state'
+          type: DEPENDENT
+          key: rabe.tuned.unitfile_state
+          delay: '0'
+          history: 7d
+          description: 'Encodes the install state of the unit file of FragmentPath. It currently knows the following states: "enabled", "enabled-runtime", "linked", "linked-runtime", "masked", "masked-runtime", "static", "disabled", and "invalid".'
+          valuemap:
+            name: 'Unit File State'
+          preprocessing:
+            - type: JSONPATH
+              parameters:
+                - $.UnitFileState.state
+            - type: DISCARD_UNCHANGED_HEARTBEAT
+              parameters:
+                - 30m
+          master_item:
+            key: 'systemd.unit.get["tuned.service"]'
+          tags:
+            - tag: component
+              value: service
+        - uuid: 9b4ebb5f0c5a4edc8176a05c2239f2ef
+          name: 'tuned: Uptime'
+          type: DEPENDENT
+          key: rabe.tuned.uptime
+          delay: '0'
+          history: 7d
+          value_type: FLOAT
+          units: uptime
+          description: 'Number of seconds since unit entered the active state.'
+          preprocessing:
+            - type: JAVASCRIPT
+              parameters:
+                - |
+                  data = JSON.parse(value);
+                  if (data.ActiveEnterTimestamp > data.ActiveExitTimestamp) {
+                        return Math.floor(Date.now() / 1000) - Number(data.ActiveEnterTimestamp) / 1000000;
+                  }
+                  return null;
+          master_item:
+            key: 'systemd.unit.get["tuned.service"]'
+          tags:
+            - tag: component
+              value: service
+          triggers:
+            - uuid: 44fd0ebf6c2c4d66b5b96c72db51ca99
+              expression: last(/tuned/rabe.tuned.uptime)<=10m
+              name: 'tuned: has been restarted'
+              priority: INFO
+              manual_close: 'YES'
+              tags:
+                - tag: scope
+                  value: notice
+        - uuid: 3ce7ade3df2f4fb7b9922f414a153316
+          name: 'tuned: unit info'
+          type: ZABBIX_ACTIVE
+          key: 'systemd.unit.get["tuned.service"]'
+          history: '0'
+          value_type: TEXT
+          trends: '0'
+          description: 'Get unit info from systemd'
+          tags:
+            - tag: component
+              value: raw
+            - tag: component
+              value: unit
+      tags:
+        - tag: class
+          value: software
+        - tag: target
+          value: tuned
+      macros:
+        - macro: '{$TUNED.THRESHOLD.MIN_PROC}'
+          value: '1'
+          description: 'Minimum amount of processes expected to be running at all times.'
+      dashboards:
+        - uuid: c76c64463c3c4170a40c224c04b3ff4c
+          name: 'tuned: Overview'
+          pages:
+            - widgets:
+                - type: item
+                  width: '24'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'active state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: tuned
+                        key: rabe.tuned.active_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '3'
+                    - type: INTEGER
+                      name: units_bold
+                      value: '0'
+                    - type: INTEGER
+                      name: units_show
+                      value: '0'
+                - type: graph
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: tuned
+                        key: rabe.tuned.cputime_user
+                    - type: STRING
+                      name: reference
+                      value: AABKZ
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: tuned
+                        key: rabe.tuned.rss
+                    - type: STRING
+                      name: reference
+                      value: AABLA
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '24'
+                  width: '18'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: uptime
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: tuned
+                        key: rabe.tuned.uptime
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: INTEGER
+                      name: value_size
+                      value: '15'
+                - type: graph
+                  x: '36'
+                  'y': '4'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: tuned
+                        key: rabe.tuned.cputime_system
+                    - type: STRING
+                      name: reference
+                      value: AABLB
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: graph
+                  x: '36'
+                  'y': '9'
+                  width: '36'
+                  height: '5'
+                  fields:
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: tuned
+                        key: rabe.tuned.swap
+                    - type: STRING
+                      name: reference
+                      value: AABLC
+                    - type: INTEGER
+                      name: source_type
+                      value: '1'
+                - type: item
+                  x: '42'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'unit file state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: tuned
+                        key: rabe.tuned.unitfile_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '42'
+                  'y': '2'
+                  width: '12'
+                  hide_header: 'YES'
+                  fields:
+                    - type: STRING
+                      name: description
+                      value: 'service load state'
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: tuned
+                        key: rabe.tuned.load_state
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+                    - type: STRING
+                      name: thresholds.2.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.2.threshold
+                      value: '2'
+                - type: item
+                  x: '60'
+                  width: '12'
+                  height: '4'
+                  hide_header: 'YES'
+                  fields:
+                    - type: INTEGER
+                      name: decimal_places
+                      value: '0'
+                    - type: STRING
+                      name: description
+                      value: processes
+                    - type: ITEM
+                      name: itemid
+                      value:
+                        host: tuned
+                        key: rabe.tuned.processes
+                    - type: INTEGER
+                      name: show
+                      value: '1'
+                    - type: INTEGER
+                      name: show
+                      value: '2'
+                    - type: STRING
+                      name: thresholds.0.color
+                      value: FF0000
+                    - type: STRING
+                      name: thresholds.0.threshold
+                      value: '0'
+                    - type: STRING
+                      name: thresholds.1.color
+                      value: 4CAF50
+                    - type: STRING
+                      name: thresholds.1.threshold
+                      value: '1'
+      valuemaps:
+        - uuid: 84485564643f47f7bb35597bd50dcf07
+          name: 'Unit Active State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: active
+            - value: '2'
+              newvalue: reloading
+            - value: '3'
+              newvalue: inactive
+            - value: '4'
+              newvalue: failed
+            - value: '5'
+              newvalue: activating
+            - value: '6'
+              newvalue: deactivating
+        - uuid: 030bee1984a74b61a67b87955ce06429
+          name: 'Unit File State'
+          mappings:
+            - value: o
+              newvalue: unknown
+            - value: '1'
+              newvalue: enabled
+            - value: '2'
+              newvalue: enabled-runtime
+            - value: '3'
+              newvalue: linked
+            - value: '4'
+              newvalue: linked-runtime
+            - value: '5'
+              newvalue: masked
+            - value: '6'
+              newvalue: masked-runtime
+            - value: '7'
+              newvalue: static
+            - value: '8'
+              newvalue: disabled
+            - value: '9'
+              newvalue: runtime
+        - uuid: f3b540edc2224576890ef87e8dd7fbb5
+          name: 'Unit Load State'
+          mappings:
+            - value: '0'
+              newvalue: unknown
+            - value: '1'
+              newvalue: loaded
+            - value: '2'
+              newvalue: error
+            - value: '3'
+              newvalue: masked
diff --git a/catalog-info.yaml b/catalog-info.yaml
index 47ed699e..71b31cdd 100644
--- a/catalog-info.yaml
+++ b/catalog-info.yaml
@@ -32,7 +32,7 @@ spec:
   owner: it-reaktion
   system: rabe-zabbix
 ---
-# Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/6.4/Apache_with_TLS_by_HTTP_Stack.yaml
+# Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/Apache_with_TLS_by_HTTP_Stack.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -41,10 +41,10 @@ metadata:
   description: |
     Monitor Apache by HTTP and do a Zabbix agent2 based certificate check.
   annotations:
-    backstage.io/techdocs-ref: dir:./Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/6.4
+    backstage.io/techdocs-ref: dir:./Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0
       title: GitHub
       icon: github
   tags: [stack]
@@ -55,7 +55,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/6.4/Nginx_with_TLS_by_HTTP_Stack.yaml
+# Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0/Nginx_with_TLS_by_HTTP_Stack.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -64,10 +64,10 @@ metadata:
   description: |
     Monitor Nginx by HTTP and do a Zabbix agent2 based certificate check.
   annotations:
-    backstage.io/techdocs-ref: dir:./Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/6.4
+    backstage.io/techdocs-ref: dir:./Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Applications/Nginx_with_TLS_by_HTTP_Stack/7.0
       title: GitHub
       icon: github
   tags: [stack]
@@ -78,7 +78,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Stacks/Applications/Songticker_Stack/6.4/Songticker_Stack.yaml
+# Stacks/Applications/Songticker_Stack/7.0/Songticker_Stack.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -87,10 +87,10 @@ metadata:
   description: |
     Monitoring for our Songticker
   annotations:
-    backstage.io/techdocs-ref: dir:./Stacks/Applications/Songticker_Stack/6.4
+    backstage.io/techdocs-ref: dir:./Stacks/Applications/Songticker_Stack/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Applications/Songticker_Stack/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Applications/Songticker_Stack/7.0
       title: GitHub
       icon: github
   tags: [stack]
@@ -101,7 +101,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Stacks/Applications/systemd_Stack/6.4/systemd_Stack.yaml
+# Stacks/Applications/systemd_Stack/7.0/systemd_Stack.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -115,10 +115,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Stacks/Applications/systemd_Stack/6.4
+    backstage.io/techdocs-ref: dir:./Stacks/Applications/systemd_Stack/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Applications/systemd_Stack/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Applications/systemd_Stack/7.0
       title: GitHub
       icon: github
   tags: [stack]
@@ -129,7 +129,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Stacks/Operating_systems/EL7_Stack/6.4/EL7_Stack.yaml
+# Stacks/Operating_systems/EL7_Stack/7.0/EL7_Stack.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -142,10 +142,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Stacks/Operating_systems/EL7_Stack/6.4
+    backstage.io/techdocs-ref: dir:./Stacks/Operating_systems/EL7_Stack/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Operating_systems/EL7_Stack/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Operating_systems/EL7_Stack/7.0
       title: GitHub
       icon: github
   tags: [stack]
@@ -156,7 +156,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Stacks/Operating_systems/EL8_Stack/6.4/EL8_Stack.yaml
+# Stacks/Operating_systems/EL8_Stack/7.0/EL8_Stack.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -169,10 +169,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Stacks/Operating_systems/EL8_Stack/6.4
+    backstage.io/techdocs-ref: dir:./Stacks/Operating_systems/EL8_Stack/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Operating_systems/EL8_Stack/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Operating_systems/EL8_Stack/7.0
       title: GitHub
       icon: github
   tags: [stack]
@@ -183,7 +183,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Stacks/Operating_systems/EL9_Stack/6.4/EL9_Stack.yaml
+# Stacks/Operating_systems/EL9_Stack/7.0/EL9_Stack.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -196,10 +196,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Stacks/Operating_systems/EL9_Stack/6.4
+    backstage.io/techdocs-ref: dir:./Stacks/Operating_systems/EL9_Stack/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Operating_systems/EL9_Stack/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Operating_systems/EL9_Stack/7.0
       title: GitHub
       icon: github
   tags: [stack]
@@ -210,7 +210,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Stacks/Servers/EL7_KVM_VM_Stack/6.4/EL7_KVM_VM_Stack.yaml
+# Stacks/Servers/EL7_KVM_VM_Stack/7.0/EL7_KVM_VM_Stack.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -223,10 +223,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Stacks/Servers/EL7_KVM_VM_Stack/6.4
+    backstage.io/techdocs-ref: dir:./Stacks/Servers/EL7_KVM_VM_Stack/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Servers/EL7_KVM_VM_Stack/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Servers/EL7_KVM_VM_Stack/7.0
       title: GitHub
       icon: github
   tags: [stack]
@@ -237,7 +237,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Stacks/Servers/EL8_KVM_VM_Stack/6.4/EL8_KVM_VM_Stack.yaml
+# Stacks/Servers/EL8_KVM_VM_Stack/7.0/EL8_KVM_VM_Stack.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -250,10 +250,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Stacks/Servers/EL8_KVM_VM_Stack/6.4
+    backstage.io/techdocs-ref: dir:./Stacks/Servers/EL8_KVM_VM_Stack/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Servers/EL8_KVM_VM_Stack/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Servers/EL8_KVM_VM_Stack/7.0
       title: GitHub
       icon: github
   tags: [stack]
@@ -264,7 +264,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Stacks/Servers/EL9_KVM_VM_Stack/6.4/EL9_KVM_VM_Stack.yaml
+# Stacks/Servers/EL9_KVM_VM_Stack/7.0/EL9_KVM_VM_Stack.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -277,10 +277,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Stacks/Servers/EL9_KVM_VM_Stack/6.4
+    backstage.io/techdocs-ref: dir:./Stacks/Servers/EL9_KVM_VM_Stack/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Servers/EL9_KVM_VM_Stack/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Stacks/Servers/EL9_KVM_VM_Stack/7.0
       title: GitHub
       icon: github
   tags: [stack]
@@ -291,7 +291,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/auditd/6.4/auditd.yaml
+# Templates/Applications/auditd/7.0/auditd.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -304,10 +304,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/auditd/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/auditd/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/auditd/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/auditd/7.0
       title: GitHub
       icon: github
   tags: [software, auditd]
@@ -318,7 +318,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/candlepin-rhsmcertd/6.4/candlepin-rhsmcertd.yaml
+# Templates/Applications/candlepin-rhsmcertd/7.0/candlepin-rhsmcertd.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -331,10 +331,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/candlepin-rhsmcertd/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/candlepin-rhsmcertd/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/candlepin-rhsmcertd/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/candlepin-rhsmcertd/7.0
       title: GitHub
       icon: github
   tags: [software, candlepin-rhsmcertd]
@@ -345,7 +345,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/certmonger/6.4/certmonger.yaml
+# Templates/Applications/certmonger/7.0/certmonger.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -358,10 +358,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/certmonger/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/certmonger/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/certmonger/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/certmonger/7.0
       title: GitHub
       icon: github
   tags: [software, certmonger]
@@ -372,7 +372,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/chrony/6.4/chrony.yaml
+# Templates/Applications/chrony/7.0/chrony.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -391,10 +391,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/chrony/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/chrony/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/chrony/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/chrony/7.0
       title: GitHub
       icon: github
   tags: [software, chrony]
@@ -405,7 +405,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/Cronie/6.4/Cronie.yaml
+# Templates/Applications/Cronie/7.0/Cronie.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -418,10 +418,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/Cronie/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/Cronie/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/Cronie/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/Cronie/7.0
       title: GitHub
       icon: github
   tags: [software, cronie]
@@ -432,7 +432,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/firewalld/6.4/firewalld.yaml
+# Templates/Applications/firewalld/7.0/firewalld.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -445,10 +445,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/firewalld/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/firewalld/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/firewalld/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/firewalld/7.0
       title: GitHub
       icon: github
   tags: [software, firewalld]
@@ -459,7 +459,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/gssproxy/6.4/gssproxy.yaml
+# Templates/Applications/gssproxy/7.0/gssproxy.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -472,10 +472,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/gssproxy/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/gssproxy/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/gssproxy/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/gssproxy/7.0
       title: GitHub
       icon: github
   tags: [software, gssproxy]
@@ -486,7 +486,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/qemu-ga/6.4/qemu-ga.yaml
+# Templates/Applications/qemu-ga/7.0/qemu-ga.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -499,10 +499,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/qemu-ga/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/qemu-ga/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/qemu-ga/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/qemu-ga/7.0
       title: GitHub
       icon: github
   tags: [software, qemu-ga]
@@ -513,7 +513,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/rpc.gssd/6.4/rpc.gssd.yaml
+# Templates/Applications/rpc.gssd/7.0/rpc.gssd.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -526,10 +526,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/rpc.gssd/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/rpc.gssd/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/rpc.gssd/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/rpc.gssd/7.0
       title: GitHub
       icon: github
   tags: [software, rpcgssd]
@@ -540,7 +540,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/rsyslog/6.4/rsyslog.yaml
+# Templates/Applications/rsyslog/7.0/rsyslog.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -553,10 +553,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/rsyslog/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/rsyslog/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/rsyslog/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/rsyslog/7.0
       title: GitHub
       icon: github
   tags: [software, rsyslog]
@@ -567,7 +567,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/Songticker/6.4/Songticker.yaml
+# Templates/Applications/Songticker/7.0/Songticker.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -576,10 +576,10 @@ metadata:
   description: |
     Check if the songticker is getting regular updates
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/Songticker/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/Songticker/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/Songticker/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/Songticker/7.0
       title: GitHub
       icon: github
   tags: [software, songticker]
@@ -590,7 +590,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/sssd/6.4/sssd.yaml
+# Templates/Applications/sssd/7.0/sssd.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -603,10 +603,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/sssd/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/sssd/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/sssd/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/sssd/7.0
       title: GitHub
       icon: github
   tags: [software, sssd]
@@ -617,7 +617,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/systemd-journald/6.4/systemd-journald.yaml
+# Templates/Applications/systemd-journald/7.0/systemd-journald.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -630,10 +630,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/systemd-journald/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/systemd-journald/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/systemd-journald/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/systemd-journald/7.0
       title: GitHub
       icon: github
   tags: [software, systemd-journald]
@@ -644,7 +644,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/systemd-logind/6.4/systemd-logind.yaml
+# Templates/Applications/systemd-logind/7.0/systemd-logind.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -657,10 +657,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/systemd-logind/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/systemd-logind/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/systemd-logind/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/systemd-logind/7.0
       title: GitHub
       icon: github
   tags: [software, systemd-logind]
@@ -671,7 +671,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/systemd-udevd/6.4/systemd-udevd.yaml
+# Templates/Applications/systemd-udevd/7.0/systemd-udevd.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -684,10 +684,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/systemd-udevd/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/systemd-udevd/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/systemd-udevd/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/systemd-udevd/7.0
       title: GitHub
       icon: github
   tags: [software, systemd-udevd]
@@ -698,7 +698,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/timedatectl/6.4/timedatectl.yaml
+# Templates/Applications/timedatectl/7.0/timedatectl.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -719,10 +719,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/timedatectl/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/timedatectl/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/timedatectl/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/timedatectl/7.0
       title: GitHub
       icon: github
   tags: [software, timedatectl]
@@ -733,7 +733,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/tuned/6.4/tuned.yaml
+# Templates/Applications/tuned/7.0/tuned.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -746,10 +746,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/tuned/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/tuned/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/tuned/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/tuned/7.0
       title: GitHub
       icon: github
   tags: [software, tuned]
@@ -760,7 +760,7 @@ spec:
   system: rabe-zabbix
   subcomponentOf: rabe-zabbix-templates
 ---
-# Templates/Applications/Zabbix_unsupported_items/6.4/Zabbix_unsupported_items.yaml
+# Templates/Applications/Zabbix_unsupported_items/7.0/Zabbix_unsupported_items.yaml
 apiVersion: backstage.io/v1alpha1
 kind: Component
 metadata:
@@ -775,10 +775,10 @@ metadata:
     collection](https://github.com/radiorabe/rabe-zabbix).
 
   annotations:
-    backstage.io/techdocs-ref: dir:./Templates/Applications/Zabbix_unsupported_items/6.4
+    backstage.io/techdocs-ref: dir:./Templates/Applications/Zabbix_unsupported_items/7.0
     github.com/project-slug: radiorabe/rabe-zabbix
   links:
-    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/Zabbix_unsupported_items/6.4
+    - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Templates/Applications/Zabbix_unsupported_items/7.0
       title: GitHub
       icon: github
   tags: [app, zabbix]
diff --git a/hack/plays/manage.yml b/hack/plays/manage.yml
index 325cd2df..ee19be79 100644
--- a/hack/plays/manage.yml
+++ b/hack/plays/manage.yml
@@ -3,7 +3,7 @@
   hosts: [localhost]
 
   vars:
-    target_version: '6.4'
+    target_version: '7.0'
     rabe_zabbix_templates:
       - template_name: "Apache with TLS by HTTP Stack"
       - template_name: "auditd"
@@ -265,8 +265,8 @@
               | Version | Supported | Description |
               | ------- | --------- | ----------- |
               | 3.0 | ✅ | legacy RaBe environment |
-              | 6.4 | ✅ | for LTS preparation work until 7.0 is available |
-              | 7.0 | ✅ | once released |
+              | 6.4 | ✅ | unsupported since 2024-12 |
+              | 7.0 | ✅ | stable LTS |
 
               ## OS Version Support
 
@@ -356,6 +356,7 @@
                 owner: it-reaktion
                 system: rabe-zabbix
               {% for file in (yaml.files | map(attribute="path") | sort ) %}
+              {% if '7.0' in file %}
               {% set template = (lookup("ansible.builtin.file", "../../"+file) | from_yaml).zabbix_export %}
               ---
               # {{ file }}
@@ -380,10 +381,12 @@
                 owner: it-reaktion
                 system: rabe-zabbix
                 subcomponentOf: rabe-zabbix-templates
+              {% endif %}
               {% endfor %}
 
         - name: "RaBe Zabbix Templator : Generate template mkdocs.yaml"
           loop: "{{ yaml.files | map(attribute='path') }}"
+          when: '"7.0" in item'
           ansible.builtin.copy:
             dest: '{{ item | dirname }}/mkdocs.yaml'
             content: |
@@ -408,12 +411,14 @@
 
         - name: 'RaBe Zabbix Templator : Create Template docs directory'
           loop: "{{ yaml.files | map(attribute='path') }}"
+          when: '"7.0" in item'
           ansible.builtin.file:
             state: directory
             dest: '{{ item | dirname }}/docs'
 
         - name: "RaBe Zabbix Templator : Generate template gen_ref_pages.py"
           loop: "{{ yaml.files | map(attribute='path') }}"
+          when: '"7.0" in item'
           ansible.builtin.copy:
             dest: '{{ item | dirname }}/docs/gen_ref_pages.py'
             content: |