8 systemdサービスの検出

概要

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

アイテムキー

ディスカバリ ルールで使用するアイテムは、次のとおりです。

systemd.unit.discovery

この アイテムキーは、 Zabbix エージェント 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 フィルターを 調整する(または削除する)ようにしてください。

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

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

Macro Description
{#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]