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]