8 Individuazione dei servizi systemd

Panoramica

È possibile individuare le unità systemd (i servizi, per impostazione predefinita) con Zabbix.

Chiave item

L'item da utilizzare nella regola di discovery è

systemd.unit.discovery

Questa chiave item è supportata solo in Zabbix agent 2.

Questo item restituisce un JSON con informazioni sulle unità systemd, ad esempio:

[{
    "{#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"
}]
Individuazione delle unità systemd disabilitate

È anche possibile individuare le unità systemd disabilitate. In questo caso, nel JSON risultante vengono restituite tre macro:

  • {#UNIT.PATH}
  • {#UNIT.ACTIVESTATE}
  • {#UNIT.UNITFILESTATE}.

Per fare in modo che item e trigger vengano creati dai prototipi per le unità systemd disabilitate, assicurati di modificare (o rimuovere) i filtri LLD che ne impediscono la creazione per {#UNIT.ACTIVESTATE} e {#UNIT.UNITFILESTATE}.

Macro supportate

Le seguenti macro sono supportate per l'uso nel filtro della regola di discovery e nei prototipi di item, trigger e grafici:

Macro Descrizione
{#UNIT.NAME} Nome dell'unità principale.
{#UNIT.DESCRIPTION} Descrizione leggibile dall'utente.
{#UNIT.LOADSTATE} Stato di caricamento (cioè se il file dell'unità è stato caricato correttamente)
{#UNIT.ACTIVESTATE} Stato attivo (cioè se l'unità è attualmente avviata o meno)
{#UNIT.SUBSTATE} Sottostato (una versione più dettagliata dello stato attivo, specifica per il tipo di unità, a differenza dello stato attivo)
{#UNIT.FOLLOWED} Unità il cui stato viene seguito da questa unità, se presente; altrimenti una stringa vuota.
{#UNIT.PATH} Percorso dell'oggetto unità.
{#UNIT.JOBID} ID numerico del job se è presente un job in coda per l'unità del job; 0 altrimenti.
{#UNIT.JOBTYPE} Tipo di job.
{#UNIT.JOBPATH} Percorso dell'oggetto job.
{#UNIT.UNITFILESTATE} Stato di installazione del file dell'unità.
{#UNIT.SERVICETYPE} Tipo dell'unità di servizio (ad esempio simple, forking, oneshot, idle, ecc.). Questa macro viene restituita solo se l'unità è un servizio.

Prototipi di item

I prototipi di item che possono essere creati in base al rilevamento dei servizi systemd includono, ad esempio:

  • Nome item: {#UNIT.DESCRIPTION} informazioni sullo stato attivo; chiave item: systemd.unit.info["{#UNIT.NAME}"]
  • Nome item: {#UNIT.DESCRIPTION} informazioni sullo stato di caricamento; chiave item: systemd.unit.info["{#UNIT.NAME}",LoadState]