You are viewing documentation for the development version, it may be incomplete.
Join our translation project and help translate Zabbix documentation into your native language.

8 systemdサービスの検出

概要

Zabbixを使用してsystemdユニット(デフォルトではサービス)を検出することができます。

アイテムキー

ディスカバリールールで使用するアイテムは

systemd.unit.discovery

このitemキーは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.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"
       }]
無効な systemd ユニットのディスカバリ

無効な systemd ユニットをディスカバリすることも可能です。この場合、結果の JSON には 3 つのマクロが返されます:

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

無効な systemd ユニットのプロトタイプからアイテムやトリガーを作成するには、{#UNIT.ACTIVESTATE} および {#UNIT.UNITFILESTATE} に対する LLD フィルタの禁止条件を調整(または削除)してください。

サポートされているマクロ

以下のマクロは、ディスカバリールールの フィルター およびアイテム、トリガー、グラフのプロトタイプで使用できます。

マクロ 説明
{#UNIT.NAME} プライマリユニット名
{#UNIT.DESCRIPTION} 人間が読める説明
{#UNIT.LOADSTATE} ロード状態(ユニットファイルが正常にロードされたかどうか)
{#UNIT.ACTIVESTATE} アクティブ状態(現在ユニットが開始されているかどうか)
{#UNIT.SUBSTATE} サブ状態(アクティブ状態のより細かいバージョンで、ユニットタイプに固有。アクティブ状態はそうではない)
{#UNIT.FOLLOWED} このユニットが状態を追従しているユニットがあればそのユニット名。なければ空文字列
{#UNIT.PATH} ユニットオブジェクトパス
{#UNIT.JOBID} ジョブユニットにキューイングされているジョブがあれば数値のジョブID。なければ0
{#UNIT.JOBTYPE} ジョブタイプ
{#UNIT.JOBPATH} ジョブオブジェクトパス
{#UNIT.UNITFILESTATE} ユニットファイルのインストール状態
{#UNIT.SERVICETYPE} サービスユニットのタイプ(例:simpleforkingoneshotidleなど)。このマクロはユニットがサービスの場合のみ返されます。

アイテムプロトタイプ

systemdサービスディスカバリに基づいて作成できるアイテムプロトタイプには、例えば以下のものがあります。

  • アイテム名: {#UNIT.DESCRIPTION} active state info; アイテムキー: systemd.unit.info["{#UNIT.NAME}"]
  • アイテム名: {#UNIT.DESCRIPTION} load state info; アイテムキー: systemd.unit.info["{#UNIT.NAME}",LoadState]