It is possible to discover systemd units (services, by default) with Zabbix.
The item to use in the discovery rule is the
This item key is only supported in Zabbix agent 2.
This item returns a JSON with information about systemd units, for example:
[{
"{#UNIT.NAME}": "mysqld.service",
"{#UNIT.DESCRIPTION}": "MySQL Server",
"{#UNIT.LOADSTATE}": "loaded",
"{#UNIT.ACTIVESTATE}": "active",
"{#UNIT.SUBSTATE}": "running",
"{#UNIT.FOLLOWED}": "",
"{#UNIT.PATH}": "/org/freedesktop/systemd1/unit/mysqld_2eservice",
"{#UNIT.JOBID}": 0,
"{#UNIT.JOBTYPE}": ""
"{#UNIT.JOBPATH}": "/",
"{#UNIT.UNITFILESTATE}": "enabled"
}, {
"{#UNIT.NAME}": "systemd-journald.socket",
"{#UNIT.DESCRIPTION}": "Journal Socket",
"{#UNIT.LOADSTATE}": "loaded",
"{#UNIT.ACTIVESTATE}": "active",
"{#UNIT.SUBSTATE}": "running",
"{#UNIT.FOLLOWED}": "",
"{#UNIT.PATH}": "/org/freedesktop/systemd1/unit/systemd_2djournald_2esocket",
"{#UNIT.JOBID}": 0,
"{#UNIT.JOBTYPE}": "",
"{#UNIT.JOBPATH}": "/"
"{#UNIT.UNITFILESTATE}": "enabled"
}]
The following macros are supported for use in the discovery rule filter and prototypes of items, triggers and graphs:
Macro | Description |
---|---|
{#UNIT.NAME} | Primary unit name. |
{#UNIT.DESCRIPTION} | Human readable description. |
{#UNIT.LOADSTATE} | Load state (i.e. whether the unit file has been loaded successfully) |
{#UNIT.ACTIVESTATE} | Active state (i.e. whether the unit is currently started or not) |
{#UNIT.SUBSTATE} | Sub state (a more fine-grained version of the active state that is specific to the unit type, which the active state is not) |
{#UNIT.FOLLOWED} | Unit that is being followed in its state by this unit, if there is any; otherwise an empty string. |
{#UNIT.PATH} | Unit object path. |
{#UNIT.JOBID} | Numeric job ID if there is a job queued for the job unit; 0 otherwise. |
{#UNIT.JOBTYPE} | Job type. |
{#UNIT.JOBPATH} | Job object path. |
{#UNIT.UNITFILESTATE} | The install state of the unit file. |
Item prototypes that can be created based on systemd service discovery include, for example:
{#UNIT.DESCRIPTION}
; item key: systemd.unit.info["{#UNIT.NAME}"]
{#UNIT.DESCRIPTION}
; item key: systemd.unit.info["{#UNIT.NAME}",LoadState]
systemd.unit.info
agent items are supported since Zabbix 4.4.