Descoberta de serviços systemd
Visão geral
É possível descobrir unidades systemd (serviços, por padrão) com o Zabbix.
Chave do item
Para configurar a regra de descoberta, use a chave de item do Zabbix agent systemd.unit.discovery.
Esta chave de item é suportada apenas no Zabbix agent 2.
Esta chave de 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.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"
}]
Descoberta de unidades systemd desabilitadas
Também é possível descobrir unidades systemd desabilitadas. Nesse caso, três macros são retornadas no JSON resultante:
{#UNIT.PATH}{#UNIT.ACTIVESTATE}{#UNIT.UNITFILESTATE}
Para que itens e triggers sejam criados a partir de protótipos para unidades systemd desabilitadas, certifique-se de ajustar (ou remover) os filtros LLD que as proíbem para {#UNIT.ACTIVESTATE} e {#UNIT.UNITFILESTATE}.
Macros suportadas
As seguintes macros são suportadas para uso no filtro da regra de descoberta e nos protótipos de items, triggers e gráficos:
| Macro | Descrição |
|---|---|
{#UNIT.NAME} |
Nome da unidade principal. |
{#UNIT.DESCRIPTION} |
Descrição legível para 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 que está sendo seguida em seu estado 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 na fila para a unidade do job; 0 caso contrário. |
{#UNIT.JOBTYPE} |
Tipo do job. |
{#UNIT.JOBPATH} |
Caminho do objeto do job. |
{#UNIT.UNITFILESTATE} |
O estado de instalação do arquivo da unidade. |
{#UNIT.SERVICETYPE} |
Tipo da unidade de serviço (por exemplo, simple, forking, oneshot, idle, etc.). Esta macro é retornada somente se a unidade for um serviço. |
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]