Zabbix может запрашивать метрики, представленные в формате строки Prometheus.
Чтобы начать сбор данных Prometheus, необходимо настроить два элемента данных:
https://<prometheus host>/metrics
Существует два варианта предварительной обработки данных Prometheus:
Если у вас настроен основной элемент данных HTTP, вам нужно создать зависимый элемент данных, который использует шаг предобработки Prometheus:
Параметр | Описание | Пример |
---|---|---|
Шаблон | Для определения необходимого шаблона данных вы можете использовать язык запросов, который похож на язык запросов 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.
В следующей таблице перечислены различия и сходства между 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> |