Systemd

systemd is a software suite that provides an array of system components for Linux operating systems. Its main aim is to unify service configuration and behavior across Linux distributions.

Available solutions




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:

  • Systemd 219

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

  1. Setup and configure zabbix-agent2 compiled with the Systemd monitoring plugin.
  2. 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

  • JSON Path: $.ActiveState.state

  • Discard unchanged with heartbeat: 30m

{#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

  • JSON Path: $.LoadState.state

  • Discard unchanged with heartbeat: 30m

{#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

  • JSON Path: $.UnitFileState.state

  • Discard unchanged with heartbeat: 30m

{#UNIT.NAME}: Active time

Number of seconds since unit entered the active state.

Dependent item systemd.service.uptime["{#UNIT.NAME}"]

Preprocessing

  • JavaScript: The text is too long. Please see the template.

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

  • JSON Path: $.NConnections

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

Articles and documentation

+ Propose new article

Didn't find what you are looking for?