8 Wykrywanie usług systemd
Przegląd
Możliwe jest wykrywanie jednostek systemd (domyślnie usług) za pomocą Zabbix.
Klucz pozycji
Pozycja używana w regule wykrywania to
systemd.unit.discovery
Ten klucz pozycji jest obsługiwany tylko w Zabbix agent 2.
Ta pozycja zwraca JSON z informacjami o jednostkach systemd, na przykład:
[{
"{#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"
}]
Wykrywanie wyłączonych jednostek systemd
Możliwe jest również wykrywanie wyłączonych jednostek systemd. W takim przypadku w wynikowym JSON zwracane są trzy makra:
- {#UNIT.PATH}
- {#UNIT.ACTIVESTATE}
- {#UNIT.UNITFILESTATE}.
Aby pozycje i wyzwalacze były tworzone z prototypów dla wyłączonych jednostek systemd, upewnij się, że dostosowano (lub usunięto) blokujące filtry LLD dla {#UNIT.ACTIVESTATE} i {#UNIT.UNITFILESTATE}.
Obsługiwane makra
Następujące makra są obsługiwane do użycia w filtrze reguły wykrywania oraz w prototypach pozycji, wyzwalaczy i wykresów:
| Macro | Description |
|---|---|
| {#UNIT.NAME} | Podstawowa nazwa jednostki. |
| {#UNIT.DESCRIPTION} | Opis czytelny dla człowieka. |
| {#UNIT.LOADSTATE} | Stan załadowania (tj. czy plik jednostki został pomyślnie załadowany). |
| {#UNIT.ACTIVESTATE} | Stan aktywności (tj. czy jednostka jest obecnie uruchomiona, czy nie). |
| {#UNIT.SUBSTATE} | Stan podrzędny (bardziej szczegółowa wersja stanu aktywności, specyficzna dla typu jednostki, w przeciwieństwie do stanu aktywności). |
| {#UNIT.FOLLOWED} | Jednostka, której stan jest śledzony przez tę jednostkę, jeśli taka istnieje; w przeciwnym razie pusty ciąg. |
| {#UNIT.PATH} | Ścieżka obiektu jednostki. |
| {#UNIT.JOBID} | Numeryczny identyfikator zadania, jeśli dla jednostki zadania znajduje się zadanie w kolejce; w przeciwnym razie 0. |
| {#UNIT.JOBTYPE} | Typ zadania. |
| {#UNIT.JOBPATH} | Ścieżka obiektu zadania. |
| {#UNIT.UNITFILESTATE} | Stan instalacji pliku jednostki. |
| {#UNIT.SERVICETYPE} | Typ jednostki usługi (np. simple, forking, oneshot, idle itd.). To makro jest zwracane tylko wtedy, gdy jednostka jest usługą. |
Prototypy pozycji
Prototypy pozycji, które można utworzyć na podstawie wykrywania usług systemd, obejmują na przykład:
- Nazwa pozycji:
{#UNIT.DESCRIPTION} active state info; klucz pozycji:systemd.unit.info["{#UNIT.NAME}"] - Nazwa pozycji:
{#UNIT.DESCRIPTION} load state info; klucz pozycji:systemd.unit.info["{#UNIT.NAME}",LoadState]