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]