8 Erkennung von systemd-Diensten

Übersicht

Es ist möglich, systemd-Units (standardmäßig Services) mit Zabbix zu entdecken.

Datenpunktschlüssel

Der im Discovery-Regel zu verwendende Datenpunkt ist

systemd.unit.discovery

Dieser Datenpunkt-Schlüssel wird nur von Zabbix Agent 2 unterstützt.

Dieser Datenpunkt gibt ein JSON mit Informationen über systemd-Units zurück, zum Beispiel:

[{
    "{#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.SERVICETYPE}": "simple"
}, {
    "{#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"
}]
Erkennung deaktivierter systemd-Units

Es ist auch möglich, deaktivierte systemd-Units zu erkennen. In diesem Fall werden im resultierenden JSON drei Makros zurückgegeben:

  • {#UNIT.PATH}
  • {#UNIT.ACTIVESTATE}
  • {#UNIT.UNITFILESTATE}.

Damit Datenpunkte und Auslöser aus Prototypen für deaktivierte systemd-Units erstellt werden, stellen Sie sicher, dass Sie einschränkende LLD-Filter für {#UNIT.ACTIVESTATE} und {#UNIT.UNITFILESTATE} anpassen (oder entfernen).

Unterstützte Makros

Die folgenden Makros werden zur Verwendung im Filter der Discovery-Regel und in Prototypen von Datenpunkten, Auslösern und Diagrammen unterstützt:

Makro Beschreibung
{#UNIT.NAME} Name der primären Unit.
{#UNIT.DESCRIPTION} Menschenlesbare Beschreibung.
{#UNIT.LOADSTATE} Ladezustand (d. h. ob die Unit-Datei erfolgreich geladen wurde)
{#UNIT.ACTIVESTATE} Aktivzustand (d. h. ob die Unit derzeit gestartet ist oder nicht)
{#UNIT.SUBSTATE} Unterzustand (eine feinere Version des Aktivzustands, die spezifisch für den Unit-Typ ist, was auf den Aktivzustand nicht zutrifft)
{#UNIT.FOLLOWED} Unit, deren Zustand von dieser Unit verfolgt wird, falls vorhanden; andernfalls eine leere Zeichenfolge.
{#UNIT.PATH} Objektpfad der Unit.
{#UNIT.JOBID} Numerische Job-ID, wenn für die Job-Unit ein Job in die Warteschlange eingereiht ist; andernfalls 0.
{#UNIT.JOBTYPE} Job-Typ.
{#UNIT.JOBPATH} Objektpfad des Jobs.
{#UNIT.UNITFILESTATE} Installationszustand der Unit-Datei.
{#UNIT.SERVICETYPE} Typ der Service-Unit (z. B. simple, forking, oneshot, idle usw.). Dieses Makro wird nur zurückgegeben, wenn die Unit ein Service ist.

Datenpunkt-Prototypen

Datenpunkt-Prototypen, die auf Basis der systemd-Service-Erkennung erstellt werden können, umfassen zum Beispiel:

  • Datenpunktname: {#UNIT.DESCRIPTION} active state info; Datenpunktschlüssel: systemd.unit.info["{#UNIT.NAME}"]
  • Datenpunktname: {#UNIT.DESCRIPTION} load state info; Datenpunktschlüssel: systemd.unit.info["{#UNIT.NAME}",LoadState]