This template is for Zabbix version: 7.0
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/systemd?at=release/7.0
Systemd by Zabbix agent 2
Overview
This template is designed for the effortless deployment of Systemd monitoring by Zabbix via Zabbix agent 2 and doesn't require any external scripts.
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Setup and configure zabbix-agent2 compiled with the Systemd monitoring plugin.
- Set filters with macros if you want to override default filter parameters.
Macros used
Name |
Description |
Default |
{$SYSTEMD.NAME.SOCKET.MATCHES} |
Filter of systemd socket units by name |
.* |
{$SYSTEMD.NAME.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.ACTIVESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by unit file state |
CHANGE_IF_NEEDED |
{$SYSTEMD.NAME.SERVICE.MATCHES} |
Filter of systemd service units by name |
.* |
{$SYSTEMD.NAME.SERVICE.NOT_MATCHES} |
Filter of systemd service units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.ACTIVESTATE.SERVICE.MATCHES} |
Filter of systemd service units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SERVICE.MATCHES} |
Filter of systemd service units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by unit file state |
CHANGE_IF_NEEDED |
LLD rule Service units discovery
Name |
Description |
Type |
Key and additional info |
Service units discovery |
Discover systemd service units and their details. |
Zabbix agent |
systemd.unit.discovery[service] |
Item prototypes for Service units discovery
Name |
Description |
Type |
Key and additional info |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd service unit. Unit description: {#UNIT.DESCRIPTION}. |
Zabbix agent |
systemd.unit.get["{#UNIT.NAME}"] |
{#UNIT.NAME}: Active state |
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". |
Dependent item |
systemd.service.active_state["{#UNIT.NAME}"] Preprocessing |
{#UNIT.NAME}: Load state |
State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked". |
Dependent item |
systemd.service.load_state["{#UNIT.NAME}"] Preprocessing |
{#UNIT.NAME}: Unit file state |
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". |
Dependent item |
systemd.service.unitfile_state["{#UNIT.NAME}"] Preprocessing |
{#UNIT.NAME}: Active time |
Number of seconds since unit entered the active state. |
Dependent item |
systemd.service.uptime["{#UNIT.NAME}"] Preprocessing |
Trigger prototypes for Service units discovery
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
Systemd: {#UNIT.NAME}: Service is not running |
|
last(/Systemd by Zabbix agent 2/systemd.service.active_state["{#UNIT.NAME}"])<>1 |
Warning |
Manual close: Yes |
Systemd: {#UNIT.NAME}: has been restarted |
Uptime is less than 10 minutes. |
last(/Systemd by Zabbix agent 2/systemd.service.uptime["{#UNIT.NAME}"])<10m |
Info |
Manual close: Yes |
LLD rule Socket units discovery
Name |
Description |
Type |
Key and additional info |
Socket units discovery |
Discover systemd socket units and their details. |
Zabbix agent |
systemd.unit.discovery[socket] |
Item prototypes for Socket units discovery
Name |
Description |
Type |
Key and additional info |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd socket unit. Unit description: {#UNIT.DESCRIPTION}. |
Zabbix agent |
systemd.unit.get["{#UNIT.NAME}",Socket] |
{#UNIT.NAME}: Connections accepted per sec |
The number of accepted socket connections (NAccepted) per second. |
Dependent item |
systemd.socket.conn_accepted.rate["{#UNIT.NAME}"] Preprocessing JSON Path: $.NAccepted - Change per second
|
{#UNIT.NAME}: Connections connected |
The current number of socket connections (NConnections). |
Dependent item |
systemd.socket.conn_count["{#UNIT.NAME}"] Preprocessing |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
This template is for Zabbix version: 6.4
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/systemd?at=release/6.4
Systemd by Zabbix agent 2
Overview
This template is designed for the effortless deployment of Systemd monitoring by Zabbix via Zabbix agent 2 and doesn't require any external scripts.
Requirements
Zabbix version: 6.4 and higher.
Tested versions
This template has been tested on:
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Setup and configure zabbix-agent2 compiled with the Systemd monitoring plugin.
- Set filters with macros if you want to override default filter parameters.
Macros used
Name |
Description |
Default |
{$SYSTEMD.NAME.SOCKET.MATCHES} |
Filter of systemd socket units by name |
.* |
{$SYSTEMD.NAME.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.ACTIVESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by unit file state |
CHANGE_IF_NEEDED |
{$SYSTEMD.NAME.SERVICE.MATCHES} |
Filter of systemd service units by name |
.* |
{$SYSTEMD.NAME.SERVICE.NOT_MATCHES} |
Filter of systemd service units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.ACTIVESTATE.SERVICE.MATCHES} |
Filter of systemd service units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SERVICE.MATCHES} |
Filter of systemd service units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by unit file state |
CHANGE_IF_NEEDED |
LLD rule Service units discovery
Name |
Description |
Type |
Key and additional info |
Service units discovery |
Discover systemd service units and their details. |
Zabbix agent |
systemd.unit.discovery[service] |
Item prototypes for Service units discovery
Name |
Description |
Type |
Key and additional info |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd service unit. Unit description: {#UNIT.DESCRIPTION}. |
Zabbix agent |
systemd.unit.get["{#UNIT.NAME}"] |
{#UNIT.NAME}: Active state |
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". |
Dependent item |
systemd.service.active_state["{#UNIT.NAME}"] Preprocessing |
{#UNIT.NAME}: Load state |
State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked". |
Dependent item |
systemd.service.load_state["{#UNIT.NAME}"] Preprocessing |
{#UNIT.NAME}: Unit file state |
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". |
Dependent item |
systemd.service.unitfile_state["{#UNIT.NAME}"] Preprocessing |
{#UNIT.NAME}: Active time |
Number of seconds since unit entered the active state. |
Dependent item |
systemd.service.uptime["{#UNIT.NAME}"] Preprocessing |
Trigger prototypes for Service units discovery
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
{#UNIT.NAME}: Service is not running |
|
last(/Systemd by Zabbix agent 2/systemd.service.active_state["{#UNIT.NAME}"])<>1 |
Warning |
Manual close: Yes |
{#UNIT.NAME}: has been restarted |
Uptime is less than 10 minutes. |
last(/Systemd by Zabbix agent 2/systemd.service.uptime["{#UNIT.NAME}"])<10m |
Info |
Manual close: Yes |
LLD rule Socket units discovery
Name |
Description |
Type |
Key and additional info |
Socket units discovery |
Discover systemd socket units and their details. |
Zabbix agent |
systemd.unit.discovery[socket] |
Item prototypes for Socket units discovery
Name |
Description |
Type |
Key and additional info |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd socket unit. Unit description: {#UNIT.DESCRIPTION}. |
Zabbix agent |
systemd.unit.get["{#UNIT.NAME}",Socket] |
{#UNIT.NAME}: Connections accepted per sec |
The number of accepted socket connections (NAccepted) per second. |
Dependent item |
systemd.socket.conn_accepted.rate["{#UNIT.NAME}"] Preprocessing JSON Path: $.NAccepted - Change per second
|
{#UNIT.NAME}: Connections connected |
The current number of socket connections (NConnections). |
Dependent item |
systemd.socket.conn_count["{#UNIT.NAME}"] Preprocessing |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
This template is for Zabbix version: 6.2
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/systemd?at=release/6.2
Systemd by Zabbix agent 2
Overview
For Zabbix version: 6.2 and higher
The template to monitor systemd units.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Systemd by Zabbix agent 2
— collects metrics by polling zabbix-agent2.
This template was tested on:
Setup
See Zabbix template operation for basic instructions.
- Setup and configure zabbix-agent2 compiled with the Systemd monitoring plugin.
- Set filters with macros if you want to override default filter parameters.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name |
Description |
Default |
{$SYSTEMD.ACTIVESTATE.SERVICE.MATCHES} |
Filter of systemd service units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.ACTIVESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.NAME.SERVICE.MATCHES} |
Filter of systemd service units by name |
.* |
{$SYSTEMD.NAME.SERVICE.NOT_MATCHES} |
Filter of systemd service units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.NAME.SOCKET.MATCHES} |
Filter of systemd socket units by name |
.* |
{$SYSTEMD.NAME.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SERVICE.MATCHES} |
Filter of systemd service units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by unit file state |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by unit file state |
CHANGE_IF_NEEDED |
Template links
There are no template links in this template.
Discovery rules
Name |
Description |
Type |
Key and additional info |
Service units discovery |
Discover systemd service units and their details. |
ZABBIX_PASSIVE |
systemd.unit.discovery[service] Filter: AND - {#UNIT.ACTIVESTATE} MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SERVICE.MATCHES} - {#UNIT.ACTIVESTATE} NOT_MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SERVICE.NOT_MATCHES} - {#UNIT.UNITFILESTATE} MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SERVICE.MATCHES} - {#UNIT.UNITFILESTATE} NOT_MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SERVICE.NOT_MATCHES} - {#UNIT.NAME} NOT_MATCHES_REGEX {$SYSTEMD.NAME.SERVICE.NOT_MATCHES} - {#UNIT.NAME} MATCHES_REGEX {$SYSTEMD.NAME.SERVICE.MATCHES} |
Socket units discovery |
Discover systemd socket units and their details. |
ZABBIX_PASSIVE |
systemd.unit.discovery[socket] Filter: AND - {#UNIT.ACTIVESTATE} MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SOCKET.MATCHES} - {#UNIT.ACTIVESTATE} NOT_MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SOCKET.NOT_MATCHES} - {#UNIT.UNITFILESTATE} MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SOCKET.MATCHES} - {#UNIT.UNITFILESTATE} NOT_MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SOCKET.NOT_MATCHES} - {#UNIT.NAME} NOT_MATCHES_REGEX {$SYSTEMD.NAME.SOCKET.NOT_MATCHES} - {#UNIT.NAME} MATCHES_REGEX {$SYSTEMD.NAME.SOCKET.MATCHES} |
Items collected
Group |
Name |
Description |
Type |
Key and additional info |
Systemd |
{#UNIT.NAME}: Active state |
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". |
DEPENDENT |
systemd.service.active_state["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.ActiveState.state - DISCARD_UNCHANGED_HEARTBEAT: 30m |
Systemd |
{#UNIT.NAME}: Load state |
State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked". |
DEPENDENT |
systemd.service.load_state["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.LoadState.state - DISCARD_UNCHANGED_HEARTBEAT: 30m |
Systemd |
{#UNIT.NAME}: Unit file state |
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". |
DEPENDENT |
systemd.service.unitfile_state["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.UnitFileState.state - DISCARD_UNCHANGED_HEARTBEAT: 30m |
Systemd |
{#UNIT.NAME}: Active time |
Number of seconds since unit entered the active state. |
DEPENDENT |
systemd.service.uptime["{#UNIT.NAME}"] Preprocessing: - JAVASCRIPT: The text is too long. Please see the template. |
Systemd |
{#UNIT.NAME}: Connections accepted per sec |
The number of accepted socket connections (NAccepted) per second. |
DEPENDENT |
systemd.socket.conn_accepted.rate["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.NAccepted - CHANGE_PER_SECOND |
Systemd |
{#UNIT.NAME}: Connections connected |
The current number of socket connections (NConnections). |
DEPENDENT |
systemd.socket.conn_count["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.NConnections |
Zabbix raw items |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd service unit. Unit description: {#UNIT.DESCRIPTION}. |
ZABBIX_PASSIVE |
systemd.unit.get["{#UNIT.NAME}"] |
Zabbix raw items |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd socket unit. Unit description: {#UNIT.DESCRIPTION}. |
ZABBIX_PASSIVE |
systemd.unit.get["{#UNIT.NAME}",Socket] |
Triggers
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
{#UNIT.NAME}: Service is not running |
- |
last(/Systemd by Zabbix agent 2/systemd.service.active_state["{#UNIT.NAME}"])<>1 |
WARNING |
Manual close: YES |
{#UNIT.NAME}: has been restarted |
Uptime is less than 10 minutes. |
last(/Systemd by Zabbix agent 2/systemd.service.uptime["{#UNIT.NAME}"])<10m |
INFO |
Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.
This template is for Zabbix version: 6.0
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/systemd?at=release/6.0
Systemd by Zabbix agent 2
Overview
This template is designed for the effortless deployment of Systemd monitoring by Zabbix via Zabbix agent 2 and doesn't require any external scripts.
Requirements
Zabbix version: 6.0 and higher.
Tested versions
This template has been tested on:
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Setup and configure zabbix-agent2 compiled with the Systemd monitoring plugin.
- Set filters with macros if you want to override default filter parameters.
Macros used
Name |
Description |
Default |
{$SYSTEMD.NAME.SOCKET.MATCHES} |
Filter of systemd socket units by name |
.* |
{$SYSTEMD.NAME.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.ACTIVESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by unit file state |
CHANGE_IF_NEEDED |
{$SYSTEMD.NAME.SERVICE.MATCHES} |
Filter of systemd service units by name |
.* |
{$SYSTEMD.NAME.SERVICE.NOT_MATCHES} |
Filter of systemd service units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.ACTIVESTATE.SERVICE.MATCHES} |
Filter of systemd service units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SERVICE.MATCHES} |
Filter of systemd service units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by unit file state |
CHANGE_IF_NEEDED |
LLD rule Service units discovery
Name |
Description |
Type |
Key and additional info |
Service units discovery |
Discover systemd service units and their details. |
Zabbix agent |
systemd.unit.discovery[service] |
Item prototypes for Service units discovery
Name |
Description |
Type |
Key and additional info |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd service unit. Unit description: {#UNIT.DESCRIPTION}. |
Zabbix agent |
systemd.unit.get["{#UNIT.NAME}"] |
{#UNIT.NAME}: Active state |
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". |
Dependent item |
systemd.service.active_state["{#UNIT.NAME}"] Preprocessing |
{#UNIT.NAME}: Load state |
State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked". |
Dependent item |
systemd.service.load_state["{#UNIT.NAME}"] Preprocessing |
{#UNIT.NAME}: Unit file state |
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". |
Dependent item |
systemd.service.unitfile_state["{#UNIT.NAME}"] Preprocessing |
{#UNIT.NAME}: Active time |
Number of seconds since unit entered the active state. |
Dependent item |
systemd.service.uptime["{#UNIT.NAME}"] Preprocessing |
Trigger prototypes for Service units discovery
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
{#UNIT.NAME}: Service is not running |
|
last(/Systemd by Zabbix agent 2/systemd.service.active_state["{#UNIT.NAME}"])<>1 |
Warning |
Manual close: Yes |
{#UNIT.NAME}: has been restarted |
Uptime is less than 10 minutes. |
last(/Systemd by Zabbix agent 2/systemd.service.uptime["{#UNIT.NAME}"])<10m |
Info |
Manual close: Yes |
LLD rule Socket units discovery
Name |
Description |
Type |
Key and additional info |
Socket units discovery |
Discover systemd socket units and their details. |
Zabbix agent |
systemd.unit.discovery[socket] |
Item prototypes for Socket units discovery
Name |
Description |
Type |
Key and additional info |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd socket unit. Unit description: {#UNIT.DESCRIPTION}. |
Zabbix agent |
systemd.unit.get["{#UNIT.NAME}",Socket] |
{#UNIT.NAME}: Connections accepted per sec |
The number of accepted socket connections (NAccepted) per second. |
Dependent item |
systemd.socket.conn_accepted.rate["{#UNIT.NAME}"] Preprocessing JSON Path: $.NAccepted - Change per second
|
{#UNIT.NAME}: Connections connected |
The current number of socket connections (NConnections). |
Dependent item |
systemd.socket.conn_count["{#UNIT.NAME}"] Preprocessing |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
This template is for Zabbix version: 5.4
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/systemd?at=release/5.4
Systemd by Zabbix agent 2
Overview
For Zabbix version: 5.4 and higher
The template to monitor systemd units.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Systemd by Zabbix agent 2
— collects metrics by polling zabbix-agent2.
This template was tested on:
Setup
See Zabbix template operation for basic instructions.
- Setup and configure zabbix-agent2 compiled with the Systemd monitoring plugin.
- Set filters with macros if you want to override default filter parameters.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name |
Description |
Default |
{$SYSTEMD.ACTIVESTATE.SERVICE.MATCHES} |
Filter of systemd service units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.ACTIVESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.NAME.SERVICE.MATCHES} |
Filter of systemd service units by name |
.* |
{$SYSTEMD.NAME.SERVICE.NOT_MATCHES} |
Filter of systemd service units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.NAME.SOCKET.MATCHES} |
Filter of systemd socket units by name |
.* |
{$SYSTEMD.NAME.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SERVICE.MATCHES} |
Filter of systemd service units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by unit file state |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by unit file state |
CHANGE_IF_NEEDED |
Template links
There are no template links in this template.
Discovery rules
Name |
Description |
Type |
Key and additional info |
Service units discovery |
Discover systemd service units and their details. |
ZABBIX_PASSIVE |
systemd.unit.discovery[service] Filter: AND - {#UNIT.ACTIVESTATE} MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SERVICE.MATCHES} - {#UNIT.ACTIVESTATE} NOT_MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SERVICE.NOT_MATCHES} - {#UNIT.UNITFILESTATE} MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SERVICE.MATCHES} - {#UNIT.UNITFILESTATE} NOT_MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SERVICE.NOT_MATCHES} - {#UNIT.NAME} NOT_MATCHES_REGEX {$SYSTEMD.NAME.SERVICE.NOT_MATCHES} - {#UNIT.NAME} MATCHES_REGEX {$SYSTEMD.NAME.SERVICE.MATCHES} |
Socket units discovery |
Discover systemd socket units and their details. |
ZABBIX_PASSIVE |
systemd.unit.discovery[socket] Filter: AND - {#UNIT.ACTIVESTATE} MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SOCKET.MATCHES} - {#UNIT.ACTIVESTATE} NOT_MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SOCKET.NOT_MATCHES} - {#UNIT.UNITFILESTATE} MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SOCKET.MATCHES} - {#UNIT.UNITFILESTATE} NOT_MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SOCKET.NOT_MATCHES} - {#UNIT.NAME} NOT_MATCHES_REGEX {$SYSTEMD.NAME.SOCKET.NOT_MATCHES} - {#UNIT.NAME} MATCHES_REGEX {$SYSTEMD.NAME.SOCKET.MATCHES} |
Items collected
Group |
Name |
Description |
Type |
Key and additional info |
Systemd |
{#UNIT.NAME}: Active state |
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". |
DEPENDENT |
systemd.service.active_state["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.ActiveState.state - DISCARD_UNCHANGED_HEARTBEAT: 30m |
Systemd |
{#UNIT.NAME}: Load state |
State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked". |
DEPENDENT |
systemd.service.load_state["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.LoadState.state - DISCARD_UNCHANGED_HEARTBEAT: 30m |
Systemd |
{#UNIT.NAME}: Unit file state |
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". |
DEPENDENT |
systemd.service.unitfile_state["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.UnitFileState.state - DISCARD_UNCHANGED_HEARTBEAT: 30m |
Systemd |
{#UNIT.NAME}: Active time |
Number of seconds since unit entered the active state. |
DEPENDENT |
systemd.service.uptime["{#UNIT.NAME}"] Preprocessing: - JAVASCRIPT: The text is too long. Please see the template. |
Systemd |
{#UNIT.NAME}: Connections accepted per sec |
The number of accepted socket connections (NAccepted) per second. |
DEPENDENT |
systemd.socket.conn_accepted.rate["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.NAccepted - CHANGE_PER_SECOND |
Systemd |
{#UNIT.NAME}: Connections connected |
The current number of socket connections (NConnections). |
DEPENDENT |
systemd.socket.conn_count["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.NConnections |
Zabbix_raw_items |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd service unit. Unit description: {#UNIT.DESCRIPTION}. |
ZABBIX_PASSIVE |
systemd.unit.get["{#UNIT.NAME}"] |
Zabbix_raw_items |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd socket unit. Unit description: {#UNIT.DESCRIPTION}. |
ZABBIX_PASSIVE |
systemd.unit.get["{#UNIT.NAME}",Socket] |
Triggers
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
{#UNIT.NAME}: Service is not running |
- |
last(/Systemd by Zabbix agent 2/systemd.service.active_state["{#UNIT.NAME}"])<>1 |
WARNING |
Manual close: YES |
{#UNIT.NAME}: has been restarted (uptime < 10m) |
Uptime is less than 10 minutes |
last(/Systemd by Zabbix agent 2/systemd.service.uptime["{#UNIT.NAME}"])<10m |
INFO |
Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
This template is for Zabbix version: 5.0
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/systemd?at=release/5.0
Template APP Systemd by Zabbix agent 2
Overview
For Zabbix version: 5.0 and higher
The template to monitor systemd units.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template APP Systemd by Zabbix agent 2
— collects metrics by polling zabbix-agent2.
This template was tested on:
Setup
See Zabbix template operation for basic instructions.
- Setup and configure zabbix-agent2 compiled with the Systemd monitoring plugin.
- Set filters with macros if you want to override default filter parameters.
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name |
Description |
Default |
{$SYSTEMD.ACTIVESTATE.SERVICE.MATCHES} |
Filter of systemd service units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.ACTIVESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by active state |
active |
{$SYSTEMD.ACTIVESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by active state |
CHANGE_IF_NEEDED |
{$SYSTEMD.NAME.SERVICE.MATCHES} |
Filter of systemd service units by name |
.* |
{$SYSTEMD.NAME.SERVICE.NOT_MATCHES} |
Filter of systemd service units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.NAME.SOCKET.MATCHES} |
Filter of systemd socket units by name |
.* |
{$SYSTEMD.NAME.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by name |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SERVICE.MATCHES} |
Filter of systemd service units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SERVICE.NOT_MATCHES} |
Filter of systemd service units by unit file state |
CHANGE_IF_NEEDED |
{$SYSTEMD.UNITFILESTATE.SOCKET.MATCHES} |
Filter of systemd socket units by unit file state |
enabled |
{$SYSTEMD.UNITFILESTATE.SOCKET.NOT_MATCHES} |
Filter of systemd socket units by unit file state |
CHANGE_IF_NEEDED |
Template links
There are no template links in this template.
Discovery rules
Name |
Description |
Type |
Key and additional info |
Service units discovery |
Discover systemd service units and their details. |
ZABBIX_PASSIVE |
systemd.unit.discovery[service] Filter: AND - A: {#UNIT.ACTIVESTATE} MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SERVICE.MATCHES} - B: {#UNIT.ACTIVESTATE} NOT_MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SERVICE.NOT_MATCHES} - C: {#UNIT.UNITFILESTATE} MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SERVICE.MATCHES} - D: {#UNIT.UNITFILESTATE} NOT_MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SERVICE.NOT_MATCHES} - E: {#UNIT.NAME} NOT_MATCHES_REGEX {$SYSTEMD.NAME.SERVICE.NOT_MATCHES} - F: {#UNIT.NAME} MATCHES_REGEX {$SYSTEMD.NAME.SERVICE.MATCHES} |
Socket units discovery |
Discover systemd socket units and their details. |
ZABBIX_PASSIVE |
systemd.unit.discovery[socket] Filter: AND - A: {#UNIT.ACTIVESTATE} MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SOCKET.MATCHES} - B: {#UNIT.ACTIVESTATE} NOT_MATCHES_REGEX {$SYSTEMD.ACTIVESTATE.SOCKET.NOT_MATCHES} - C: {#UNIT.UNITFILESTATE} MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SOCKET.MATCHES} - D: {#UNIT.UNITFILESTATE} NOT_MATCHES_REGEX {$SYSTEMD.UNITFILESTATE.SOCKET.NOT_MATCHES} - E: {#UNIT.NAME} NOT_MATCHES_REGEX {$SYSTEMD.NAME.SOCKET.NOT_MATCHES} - F: {#UNIT.NAME} MATCHES_REGEX {$SYSTEMD.NAME.SOCKET.MATCHES} |
Items collected
Group |
Name |
Description |
Type |
Key and additional info |
Systemd |
{#UNIT.NAME}: Active state |
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". |
DEPENDENT |
systemd.service.active_state["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.ActiveState.state - DISCARD_UNCHANGED_HEARTBEAT: 30m |
Systemd |
{#UNIT.NAME}: Load state |
State value that reflects whether the configuration file of this unit has been loaded. The following states are currently defined: "loaded", "error", and "masked". |
DEPENDENT |
systemd.service.load_state["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.LoadState.state - DISCARD_UNCHANGED_HEARTBEAT: 30m |
Systemd |
{#UNIT.NAME}: Unit file state |
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". |
DEPENDENT |
systemd.service.unitfile_state["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.UnitFileState.state - DISCARD_UNCHANGED_HEARTBEAT: 30m |
Systemd |
{#UNIT.NAME}: Active time |
Number of seconds since unit entered the active state. |
DEPENDENT |
systemd.service.uptime["{#UNIT.NAME}"] Preprocessing: - JAVASCRIPT: The text is too long. Please see the template. |
Systemd |
{#UNIT.NAME}: Connections accepted per sec |
The number of accepted socket connections (NAccepted) per second. |
DEPENDENT |
systemd.socket.conn_accepted.rate["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.NAccepted - CHANGE_PER_SECOND |
Systemd |
{#UNIT.NAME}: Connections connected |
The current number of socket connections (NConnections). |
DEPENDENT |
systemd.socket.conn_count["{#UNIT.NAME}"] Preprocessing: - JSONPATH: $.NConnections |
Zabbix_raw_items |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd service unit. Unit description: {#UNIT.DESCRIPTION}. |
ZABBIX_PASSIVE |
systemd.unit.get["{#UNIT.NAME}"] |
Zabbix_raw_items |
{#UNIT.NAME}: Get unit info |
Returns all properties of a systemd socket unit. Unit description: {#UNIT.DESCRIPTION}. |
ZABBIX_PASSIVE |
systemd.unit.get["{#UNIT.NAME}",Socket] |
Triggers
Name |
Description |
Expression |
Severity |
Dependencies and additional info |
{#UNIT.NAME}: Service is not running |
- |
{TEMPLATE_NAME:systemd.service.active_state["{#UNIT.NAME}"].last()}<>1 |
WARNING |
Manual close: YES |
{#UNIT.NAME}: has been restarted (uptime < 10m) |
Uptime is less than 10 minutes |
{TEMPLATE_NAME:systemd.service.uptime["{#UNIT.NAME}"].last()}<10m |
INFO |
Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.