Individuazione dei servizi systemd
Panoramica
È possibile individuare le unità systemd (i servizi, per impostazione predefinita) con Zabbix.
Chiave item
Per configurare la regola di discovery, usa la chiave item dell'agent Zabbix systemd.unit.discovery.
Questa chiave item è supportata solo in Zabbix agent 2.
Questa chiave 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"
}]
Rilevamento delle unità systemd disabilitate
È anche possibile rilevare 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 vengano creati item e trigger dai prototipi per le unità systemd disabilitate, assicurati di modificare (o rimuovere) i filtri LLD che impediscono {#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à primaria. |
{#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 oppure no) |
{#UNIT.SUBSTATE} |
Sotto-stato (una versione più dettagliata dello stato attivo, specifica per il tipo di unità, che lo stato attivo non è) |
{#UNIT.FOLLOWED} |
Unità seguita nel suo stato 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]