Zabbix может запрашивать метрики, которые представлены в формате строк Prometheus.
Чтобы начать сбор данных Prometheus, необходимо выполнить два шага:
https://<хост_prometheus>/метрики
Имеется две опции предобработки Prometheus данных:
При условии, что у вас уже есть настроенный основной элемент данных HTTP, вам необходимо создать зависимый элемент данных, который будет использовать шаг Prometheus предобработки:
Параметр | Описание | Примеры |
---|---|---|
Шаблон | Чтобы задать требуемый шаблон данных вы можете использовать язык запросов, походий на Prometheus язык запросов (смотрите таблицу сравнения), e.g.: <имя метрики> - выбор по имени метрики {__имя__="<имя метрики>"} - выбор по имени метрики {__имя__=~"<рег. выражение>"} - выбор по имени метрики соответствующей регулярному выражению {<имя метки>="<значение метки>",...} - выбор по имени метки {<имя метки>=~"<рег. выражение>",...} - выбор по имени метки соответствующей регулярному выражению {__имя__=~".*"}==<значение> - выбор по значению метрики Или комбинация всего выше обозначенного: <имя метрики>{<имя метки1>="<значение метки1>",<имя метки2>=~"<рег. выражение>",...}==<значение> Значением метки может быть любая последовательность 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 и Zabbix Prometheus предобработкой.
PromQL instant vector selector | Zabbix Prometheus предобработка | |
---|---|---|
Различия | ||
Цель запроса | Prometheus сервер | Простой текст в формате толкования Prometheus |
Возвращает | Instant vector | Метрика или значение метки (Prometheus шаблон) Массив метрик для одного значения в JSON (Prometheus в JSON) |
Операторы соответствия меткам | =, !=, =~, !~ | =, =~ |
Регулярные выражения используемые поиске соответствия в метках или именах метрик | RE2 | PCRE |
Операторы сравнения | Смотрите список | Для фильтрации значений поддерживается только == (равно) |
Сходства | ||
Выбор по имени метрики, которое равно строке | <имя метрики> или {__имя__="<имя метрики>"} | <имя метрики> или {__имя__="<имя метрики>"} |
Выбор по имени метрики, которое соответствует регулярному выражению | {__имя__=~"<рег. выражение>"} | {__имя__=~"<рег. выражение>"} |
Выбор значения по <имени метки>, которое равно строке | {<имя метки>="<значение метки>",...} | {<имя метки>="<значение метки>",...} |
Выбор значения по <имени метки>, которое соответствует регулярному выражению | {<имя метки>=~"<рег. выражение>",...} | {<имя метки>=~"<рег. выражение>",...} |
Выбор по значению, которое равно строке | {__имя__=~".*"} == <значение> | {__имя__=~".*"} == <значение> |