8 Wykrywanie usług systemd

Przegląd

Możliwe jest wykrywanie jednostek systemd (domyślnie usług) za pomocą Zabbix.

Klucz pozycja

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.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 regule wykrywania filter oraz prototypach pozycji, wyzwalaczy i wykresów:

Macro Description
{#UNIT.NAME} Nazwa głównej 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, której stan aktywności nie obejmuje)
{#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.

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]