8 Découverte des services systemd

Aperçu

Il est possible de découvrir des unités systemd (services, par défaut) avec Zabbix.

Clé d'élément

Pour configurer la règle de découverte, utilisez la clé d'élément de l'agent Zabbix systemd.unit.discovery.

Cette clé d'élément n'est prise en charge que par Zabbix agent 2.

Cette clé d'élément renvoie un JSON contenant des informations sur les unités systemd, par exemple :

[{
    "{#UNIT.NAME}": "mysqld.service",
    "{#UNIT.DESCRIPTION}": "Serveur MySQL",
    "{#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}": "Socket de journal",
    "{#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"
}]
Découverte des unités systemd désactivées

Il est également possible de découvrir les unités systemd désactivées. Dans ce cas, trois macros sont renvoyées dans le JSON résultant :

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

Pour que les éléments et les déclencheurs soient créés à partir des prototypes pour les unités systemd désactivées, veillez à ajuster (ou supprimer) les filtres LLD d’exclusion pour {#UNIT.ACTIVESTATE} et {#UNIT.UNITFILESTATE}.

Macros pris en charge

Les macros suivantes sont prises en charge pour une utilisation dans la règle de découverte filter et les prototypes d'éléments, de déclencheurs et de graphiques :

Macro Description
{#UNIT.NAME} Nom de l'unité principale.
{#UNIT.DESCRIPTION} Description lisible par l'utilisateur.
{#UNIT.LOADSTATE} État de chargement (c'est-à-dire si le fichier d'unité a été chargé avec succès)
{#UNIT.ACTIVESTATE} État actif (c'est-à-dire si l'unité est actuellement démarrée ou non)
{#UNIT.SUBSTATE} Sous-état (une version plus détaillée de l'état actif, spécifique au type d'unité, contrairement à l'état actif)
{#UNIT.FOLLOWED} Unité dont l'état est suivi par cette unité, s'il y en a une ; sinon, chaîne vide.
{#UNIT.PATH} Chemin de l'objet unité.
{#UNIT.JOBID} ID numérique du travail s'il existe un travail en file d'attente pour l'unité de travail ; 0 sinon.
{#UNIT.JOBTYPE} Type de travail.
{#UNIT.JOBPATH} Chemin de l'objet travail.
{#UNIT.UNITFILESTATE} État d'installation du fichier d'unité.

Prototypes d'éléments

Les prototypes d'éléments pouvant être créés sur la base de la découverte des services systemd incluent, par exemple :

  • Nom de l'élément : {#UNIT.DESCRIPTION} active state info ; clé de l'élément : systemd.unit.info["{#UNIT.NAME}"]
  • Nom de l'élément : {#UNIT.DESCRIPTION} load state info ; clé de l'élément : systemd.unit.info["{#UNIT.NAME}",LoadState]