Это перевод страницы документации с английского языка. Помогите нам сделать его лучше.

Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

17 Проверки Prometheus

Обзор

Zabbix может запрашивать метрики, представленные в формате строки Prometheus.

Чтобы начать сбор данных Prometheus, необходимо настроить два элемента данных:

  • основной элемент данных HTTP, указывающий на соответствующую конечную точку данных, например, https://<prometheus host>/metrics
  • зависимые элементы данных, использующие опцию предварительной обработки Prometheus для запроса необходимых данных из метрик, собранных основным элементом данных

Существует два варианта предварительной обработки данных Prometheus:

  • Шаблон Prometheus - используется в обычных элементах данных для запроса метрик Prometheus
  • Prometheus в JSON - используется в обычных элементах данных и для низкоуровневого обнаружения. В этом случае запрашиваемые данные Prometheus возвращаются в формате JSON.
Bulk processing

Bulk processing is supported for dependent items. To enable caching and indexing, the Prometheus pattern preprocessing must be the first preprocessing step. When Prometheus pattern is first preprocessing step then the parsed Prometheus data is cached and indexed by the first <label>==<value> condition in the Prometheus pattern preprocessing step. This cache is reused when processing other dependent items in this batch. For optimal performance, the first label should be the one with most different values.

If there is other preprocessing to be done before the first step, it should be moved either to the master item or to a new dependent item which would be used as the master item for the dependent items.

Настройка

Если у вас настроен основной элемент данных HTTP, вам нужно создать зависимый элемент данных, который использует шаг предобработки Prometheus:

  • введите общие параметры зависимого элемента данных в форме конфигурации
  • перейдите на вкладку Предобработка
  • выберите шаг предобработки Prometheus (Шаблон Prometheus или Prometheus в JSON)

Параметр Описание Пример
Шаблон Для определения необходимого шаблона данных вы можете использовать язык запросов, который похож на язык запросов Prometheus (см. таблицу сравнения), например:
<metric name> - выбрать по названию метрики
{__name__="<metric name>"} - выбрать по названию метрики
{__name__=~"<regex>"} - выбрать по названию метрики, совпадающему с регулярным выражением
{<label name>="<label value>",...} - выбрать по названию метки
{<label name>=~"<regex>",...} - выбрать по имени метки, совпадающему с регулярным выражением
{__name__=~".*"}==<value> - выбрать по значению метрики
Или сочетание вышеперечисленного:
<metric name>{<label1 name>="<label1 value>",<label2 name>=~"<regex>",...}==<value>

Значением метки может быть любая последовательность символов UTF-8, но символы обратной косой черты, двойных кавычек и перевода строки должны быть экранированы как \\, \" и \n соответственно; другие символы не должны быть экранированы.
wmi_os_physical_memory_free_bytes
cpu_usage_system{cpu="cpu-total"}
cpu_usage_system{cpu=~".*"}
cpu_usage_system{cpu="cpu-total",host=~".*"}
wmi_service_state{name="dhcp"}==1
wmi_os_timezone{timezone=~".*"}==1
Вывод Определите название метки (необязательно). В этом случае возвращается значение, соответствующее названию метки.
Это поле доступно только для шага //Шаблон Prometheus //.

Prometheus в JSON

Данные из Prometheus могут быть использованы для низкоуровневого обнаружения. В этом случае необходимы данные в формате JSON, и опция предобработки Prometheus в JSON отформатирует их именно таким образом.

См. также: Обнаружение с использованием данных Prometheus.

Сравнение языка запросов

В следующей таблице перечислены различия и сходства между PromQL и языком запросов предобработки Prometheus в Zabbix.

Мгновенный векторный селектор PromQL Предобработка Prometheus в Zabbix
Различия
Цель запроса сервер Prometheus Простой текст в формате экспозиции Prometheus
Возвращает Мгновенный вектор Значение метрики или метки (шаблон Prometheus)
Массив метрик для отдельного значения в JSON (Prometheus в JSON)
Операторы соответствия меток =, !=, =~, !~ =, =~
Регулярное выражение, используемое в сопоставлении названия метки или метрики RE2 PCRE
Операторы сравнения См. список Только == (равно) поддерживается для фильтрации значений
Сходства
Выбор по названию метрики, равному строке <metric name> или {__name__="<metric name>"} <metric name> или {__name__="<metric name>"}
Выбор по имени метрики, которое соответствует регулярному выражению {__name__=~"<regex>"} {__name__=~"<regex>"}
Выбор по значению <label name>, равному строке {<label name>="<label value>",...} {<label name>="<label value>",...}
Выбор по значению <label name>, которое соответствует регулярному выражению {<label name>=~"<regex>",...} {<label name>=~"<regex>",...}
Выбор по значению, равному строке {__name__=~".*"} == <value> {__name__=~".*"} == <value>