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
La clé d’élément à utiliser dans la règle de découverte est
systemd.unit.discovery
Cette clé d’élément n’est prise en charge que par Zabbix agent 2.
Cet é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.SERVICETYPE}": "simple"
}, {
"{#UNIT.NAME}": "systemd-journald.socket",
"{#UNIT.DESCRIPTION}": "Socket du 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 prises en charge
Les macros suivantes sont prises en charge pour une utilisation dans le filtre de la règle de découverte et dans les prototypes d’éléments, de déclencheurs et de graphiques :
| Macro | Description |
|---|---|
| {#UNIT.NAME} | Nom principal de l’unité. |
| {#UNIT.DESCRIPTION} | Description lisible par l’homme. |
| {#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 fine 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é, le cas échéant ; sinon, une chaîne vide. |
| {#UNIT.PATH} | Chemin de l’objet unité. |
| {#UNIT.JOBID} | ID numérique de tâche si une tâche est en file d’attente pour l’unité de tâche ; 0 sinon. |
| {#UNIT.JOBTYPE} | Type de tâche. |
| {#UNIT.JOBPATH} | Chemin de l’objet tâche. |
| {#UNIT.UNITFILESTATE} | État d’installation du fichier d’unité. |
| {#UNIT.SERVICETYPE} | Type de l’unité de service (par exemple, simple, forking, oneshot, idle, etc.). Cette macro n’est renvoyée que si l’unité est un service. |
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]