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]