Zabbixを使用してsystemdユニット(デフォルトではサービス)を検出することができます。
ディスカバリルールで使用するアイテムは
このアイテムキーは、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.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"
}]Zabbix 6.0.1以降、無効になっているsystemdユニットを検出することもできます。 この場合、結果のJSONで3つのマクロが返されます。
無効になっている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} | ユニットファイルのインストール状態 |
systemdサービスディスカバリに基づいて作成できるアイテムのプロトタイプには、たとえば次のものがあります。
{#UNIT.DESCRIPTION}; アイテムキー: systemd.unit.info["{#UNIT.NAME}"]{#UNIT.DESCRIPTION}; アイテムキー: systemd.unit.info["{#UNIT.NAME}",LoadState]systemd.unit.info エージェントアイテムは、Zabbix4.4以降でサポートされています。