8 Descoberta de serviços systemd
Visão geral
É possível descobrir unidades systemd (serviços, por padrão) com Zabbix.
Chave do item
O item a ser usado na regra de descoberta é
systemd.unit.discovery
Esta chave de item é compatível apenas com o Zabbix agent 2.
Este item retorna um JSON com informações sobre unidades systemd, por exemplo:
[{
"{#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.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"
}]
Descoberta de unidades systemd desabilitadas
Também é possível descobrir unidades systemd desabilitadas. Neste caso, três macros são retornadas no JSON resultante:
- {#UNIT.PATH}
- {#UNIT.ACTIVESTATE}
- {#UNIT.UNITFILESTATE}.
Para que items e triggers sejam criados a partir de protótipos para unidades systemd desabilitadas, certifique-se de ajustar (ou remover) os filtros LLD proibitivos para {#UNIT.ACTIVESTATE} e {#UNIT.UNITFILESTATE}.
Macros suportadas
As macros a seguir são suportadas para uso no filtro da regra de descoberta e nos protótipos de itens, triggers e gráficos:
| Macro | Descrição |
|---|---|
| {#UNIT.NAME} | Nome da unidade principal. |
| {#UNIT.DESCRIPTION} | Descrição legível por humanos. |
| {#UNIT.LOADSTATE} | Estado de carregamento (ou seja, se o arquivo da unidade foi carregado com sucesso) |
| {#UNIT.ACTIVESTATE} | Estado ativo (ou seja, se a unidade está iniciada no momento ou não) |
| {#UNIT.SUBSTATE} | Subestado (uma versão mais detalhada do estado ativo, específica para o tipo de unidade, ao contrário do estado ativo) |
| {#UNIT.FOLLOWED} | Unidade cujo estado está sendo seguido por esta unidade, se houver; caso contrário, uma string vazia. |
| {#UNIT.PATH} | Caminho do objeto da unidade. |
| {#UNIT.JOBID} | ID numérico do job, se houver um job enfileirado para a unidade do job; caso contrário, 0. |
| {#UNIT.JOBTYPE} | Tipo de job. |
| {#UNIT.JOBPATH} | Caminho do objeto do job. |
| {#UNIT.UNITFILESTATE} | O estado de instalação do arquivo da unidade. |
Protótipos de item
Protótipos de item que podem ser criados com base na descoberta de serviços systemd incluem, por exemplo:
- Nome do item:
{#UNIT.DESCRIPTION} active state info; chave do item:systemd.unit.info["{#UNIT.NAME}"] - Nome do item:
{#UNIT.DESCRIPTION} load state info; chave do item:systemd.unit.info["{#UNIT.NAME}",LoadState]