It is possible to discover systemd units (services, by default) with Áú»¢¶Ä²©.
The item to use in the discovery rule is the
This item key is only supported in Áú»¢¶Ä²© 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"
}]
It is also possible to discover disabled systemd units. In this case three macros are returned in the resulting JSON:
To have items and triggers created from prototypes for disabled systemd units, make sure to adjust (or remove) prohibiting LLD filters for {#UNIT.ACTIVESTATE} and {#UNIT.UNITFILESTATE}.
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} active state info
; item key: systemd.unit.info["{#UNIT.NAME}"]
{#UNIT.DESCRIPTION} load state info
; item key: systemd.unit.info["{#UNIT.NAME}",LoadState]