Erkennung von systemd-Diensten
Übersicht
Es ist möglich, systemd-Units (standardmäßig Services) mit Zabbix zu entdecken.
Item key
Um die Erkennungsregel zu konfigurieren, verwenden Sie den Zabbix Agent-Datenpunkt-Schlüssel systemd.unit.discovery.
Dieser Datenpunkt-Schlüssel wird nur von Zabbix Agent 2 unterstützt.
Dieser Datenpunkt gibt ein JSON mit Informationen zu 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 aus Prototypen für deaktivierte systemd-Units Datenpunkte und Auslöser erstellt werden, stellen Sie sicher, dass die verbietenden LLD-Filter für {#UNIT.ACTIVESTATE} und {#UNIT.UNITFILESTATE} angepasst werden (oder entfernen Sie sie).
Unterstützte Makros
Die folgenden Makros werden für die Verwendung im Erkennungsregel-Filter und in Vorlagen von Datenpunkten, Auslösern und Diagrammen unterstützt:
| Macro | Description |
|---|---|
{#UNIT.NAME} |
Name der primären Einheit. |
{#UNIT.DESCRIPTION} |
Lesbare Beschreibung. |
{#UNIT.LOADSTATE} |
Ladezustand (d. h. ob die Unit-Datei erfolgreich geladen wurde) |
{#UNIT.ACTIVESTATE} |
Aktiver Zustand (d. h. ob die Unit derzeit gestartet ist oder nicht) |
{#UNIT.SUBSTATE} |
Unterzustand (eine feinere Version des aktiven Zustands, die spezifisch für den Unit-Typ ist und die der aktive Zustand nicht abbildet) |
{#UNIT.FOLLOWED} |
Unit, deren Zustand von dieser Unit verfolgt wird, falls vorhanden; andernfalls ein leerer String. |
{#UNIT.PATH} |
Objektpfad der Unit. |
{#UNIT.JOBID} |
Numerische Job-ID, wenn für die Job-Unit ein Job in der Warteschlange steht; andernfalls 0. |
{#UNIT.JOBTYPE} |
Jobtyp. |
{#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]