You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5.9 KiB

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