2022 Zabbix中国峰会
2022 Zabbix中国峰会

7 自动发现systemd服务

概述

zabbix可以通过 自动发现 发现systemd服务(默认情况下是系统服务)

监控项 键

可以在 自动发现规则 使用的监控项包含以下:

systemd.unit.discovery

监控项 这些键只支持 Zabbix agent 2.

该项返回一个带有systemd单元信息的JSON,例如:

[{

    "{#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"
       }]

支持的宏

在自动发现规则 过滤、监控项、触发器、图形的原型中支持使用以下宏:

{#UNIT.NAME} 单元名称.
{#UNIT.DESCRIPTION} 单元描述.
{#UNIT.LOADSTATE} 加载状态 (单元文件是否已成功加载)
{#UNIT.ACTIVESTATE} 活动状态(单元文件当前是否启动)
{#UNIT.SUBSTATE} 子状态 (活动状态的更细粒度版本,它特定于单元类型,而活动状态不是)
{#UNIT.FOLLOWED} 在其状态下被该单元(如果有的话)跟随的单元;否则为空字符串.
{#UNIT.PATH} 单元文件路径.
{#UNIT.JOBID} 如果作业单元有作业排队,则作业ID为数字;0,否则.
{#UNIT.JOBTYPE} 工作单元状态.
{#UNIT.JOBPATH} 工作单元路径.
{#UNIT.UNITFILESTATE} 单元文件的安装状态(从5.0.6开始支持).

监控项原型

可以基于systemd服务发现创建的监控项原型,列如:

  • 监控项名称: {#UNIT.DESCRIPTION}; 监控项键值: systemd.unit.info["{#UNIT.NAME}"]
  • 监控项名称: {#UNIT.DESCRIPTION}; 监控项键值: systemd.unit.info["{#UNIT.NAME}",LoadState]

systemd.unit.info agent 监控项 Zabbix 4.4以上的支持.