12 Prometheusデータを使用した検出

概要

Prometheusラインフォーマットで提供されるデータは、ローレベルディスカバリに使用できます。

ZabbixでのPrometheusデータクエリの実装方法の詳細についてはPrometheusチェックを参照してください。

設定

ローレベルディスカバリルールは、Prometheusデータを収集するHTTPマスターアイテムへの依存アイテムとして作成する必要があります。

プロメテウスからJSON

ディスカバリルールで[保存前処理]タブに移動し、PrometheusからJSONオプションを選択します。 ディスカバリにはJSON形式のデータが必要であり、PrometheusからJSONオプションは、次の属性を使用してそれを返します。

  • metric name
  • metric value
  • help (if present)
  • type (if present)
  • labels (if present)
  • raw line

例:wmi_logical_disk_free_bytesをクエリします。

これらのプロメテウスラインから:

# HELP wmi_logical_disk_free_bytes Free space in bytes (LogicalDisk.PercentFreeSpace)
       # TYPE wmi_logical_disk_free_bytes gauge
       wmi_logical_disk_free_bytes{volume="C:"} 3.5180249088e+11
       wmi_logical_disk_free_bytes{volume="D:"} 2.627731456e+09
       wmi_logical_disk_free_bytes{volume="HarddiskVolume4"} 4.59276288e+08

以下のように返します

[
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
               "type": "gauge",
               "labels": {
                   "volume": "C:"
                },
               "value": "3.5180249088e+11",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"C:\"} 3.5180249088e+11"
           },
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
               "type": "gauge",
               "labels": {
                   "volume": "D:"
                },
               "value": "2.627731456e+09",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"D:\"} 2.627731456e+09"
           },
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
               "type": "gauge",
               "labels": {
                   "volume": "HarddiskVolume4"
                },
               "value": "4.59276288e+08",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"HarddiskVolume4\"} 4.59276288e+08"
           }
       ]
LLDマクロマッピング

次にLLDマクロ タブに移動して次のマッピングを行います。

{#VOLUME}=$.labels['volume']
       {#METRIC}=$['name']
       {#HELP}=$['help']
アイテムのプロトタイプ

次のようなアイテムのプロトタイプを作成することをお勧めします。

前処理オプション: