Перейти к содержанию

VictoriaMetrics и VictoriaLogs

Сами база временных рядов и база логов: принимают ли они то, что им отправляют, сколько места на диске осталось до того, как они перестанут принимать что-либо, и что они отклоняют.

На этой странице описаны два типа мониторов, потому что у обоих продуктов общая основа: victoriametrics для одиночного узла VictoriaMetrics и victorialogs для одиночного узла VictoriaLogs. Оба публикуют своё состояние на /health и /metrics, на порту своего API; DumbMonit читает только эти два адреса и ничего больше. Он никогда не выполняет запросов к вашим данным и ничего не записывает.

Эти серверы редко падают целиком. Они падают наполовину: продолжают отвечать на запросы, дашборды по-прежнему открываются, а каждый новый сэмпл или строка лога отклоняется, потому что диск пересёк порог режима «только чтение» или данные пришли с меткой времени вне периода хранения. Всё, что пишет в них (vmagent, remote write Prometheus, Vector, Fluent Bit, Promtail), повторяет попытки, а затем отбрасывает данные. Эта страница о том, как заметить это заранее.

Что отслеживается

Метрики имеют префикс dumbmonit_victoriametrics_ или dumbmonit_victorialogs_. Итоговые значения являются счётчиками: графики и правила превращают их в скорости.

Метрика Что Метки
healthy 1, когда /health отвечает OK, 0, когда отвечает чем-либо иным
version_info значение 1 version
rows_ingested_total принятые сэмплы (VictoriaMetrics) или строки лога (VictoriaLogs)
bytes_ingested_total принятый объём логов (только VictoriaLogs)
rows_rejected_total всё отклонённое, присутствует всегда, даже при нуле
rows_rejected_reason_total то же самое, по причинам: big_timestamp, small_timestamp, too_long_label_value, too_many_labels, invalid, hourly_series_limit… (VictoriaMetrics); too_big_timestamp, too_small_timestamp, too_many_fields, too_long_line (VictoriaLogs) reason
disk_free_bytes, disk_total_bytes свободное и общее место тома хранилища path
disk_free_limit_bytes -storage.minFreeDiskSpaceBytes: ниже него хранилище переходит в режим «только чтение» path
disk_headroom_percent свободное место сверх этого порога, как доля диска path
read_only 1, когда хранилище переключилось в режим «только чтение»
data_size_bytes данные на диске
slow_inserts_total, rows_added_total новые сэмплы, пошедшие по медленному пути, и все добавленные сэмплы (только VictoriaMetrics)
active_series ряды, получившие сэмпл за последний час (только VictoriaMetrics)
http_errors_total запросы, на которые дан ответ с ошибкой
log_errors_total сообщения об ошибках, записанные сервером в лог
uptime_seconds, memory_resident_bytes

Отклонённый сэмпл потерян. VictoriaMetrics отклоняет сэмпл старше периода хранения или более чем на два дня в будущем, значение метки длиннее -maxLabelValueLen, ряд с числом меток больше -maxLabelsPerTimeseries и каждый сэмпл нового ряда после достижения -storage.maxHourlySeries или -storage.maxDailySeries. VictoriaLogs отклоняет строки вне периода хранения и строки со слишком большим числом полей. Клиент обычно не получает при этом никакой ошибки: об этом знает только этот счётчик.

Медленные вставки — это сэмплы, ряд которых VictoriaMetrics пришлось искать на диске, а не в кэше. Каждый совершенно новый ряд — такой случай, поэтому развёртывание вызывает всплеск; доля, остающаяся выше 5%, означает, что серверу не хватает памяти для активных рядов. Это порог, который приводит документация VictoriaMetrics. После перезапуска кэши сервера холодные, поэтому доля может какое-то время оставаться высокой: правило ждёт полчаса, прежде чем сработать. Счётчики обнуляются вместе с сервером; правила используют приращения с учётом сбросов, поэтому перезапуск не засчитывается как отклонённые данные.

Применимые встроенные правила: Metrics or log storage read-only, Metrics or log storage almost read-only, Metrics or log server unhealthy, Metrics or log data refused, VictoriaMetrics slow inserts, а также Monitor unreachable.

Страница монитора

Панель над графиками читает то, что сохранил опрос; открытие страницы никогда не обращается к серверу. Она сообщает в таком порядке:

  1. Что не так, одним предложением: состояние, хранилище (Read-only или сколько места на диске осталось сверх порога), данные, отклонённые за последние 24 часа, медленные вставки, записанные ошибки. В каждой строке есть слово, а не только цвет.
  2. Что делает сервер: сэмплов или строк принимается в секунду, активные ряды или принятый объём, данные на диске, время работы.
  3. Что было отклонено за последние 24 часа, по причинам, и свободное место каждого пути хранилища относительно его порога «только чтение».

Пусть DumbMonit читает собственное состояние VictoriaMetrics

  1. Ничего устанавливать не нужно: VictoriaMetrics публикует своё состояние на /health и /metrics, на порту своего API (по умолчанию 8428). Проверьте с хоста DumbMonit, что оба адреса отвечают.

    curl http://victoriametrics.lan:8428/health
    curl -s http://victoriametrics.lan:8428/metrics | grep vm_app_version
    
  2. Если VictoriaMetrics запущена с -httpAuth.username и -httpAuth.password, выберите ниже Username / password и введите их. За vmauth или обратным прокси, который ожидает bearer-токен, выберите Bearer token. Если задан -metricsAuthKey, /metrics отвечает только при наличии этого ключа в URL, а DumbMonit его не отправляет: защитите /metrics вместо этого описанной выше базовой аутентификацией.

  3. В DumbMonit введите адрес сервера, например «victoriametrics.lan» или «http://10.0.0.5:8428». За обратным прокси введите полный URL с префиксом пути. Это относится к одиночному серверу; компоненты кластера VictoriaMetrics отдают другие метрики и не поддерживаются.

  4. DumbMonit читает только /health и /metrics. Он никогда не выполняет запросов к вашим данным и ничего не записывает.

Warning

Следить нужно за свободным местом на диске: ниже -storage.minFreeDiskSpaceBytes (по умолчанию 100 МБ) VictoriaMetrics переходит в режим «только чтение» и отклоняет каждый новый сэмпл, продолжая при этом отвечать на запросы, как будто ничего не случилось. DumbMonit показывает запас сверх этого порога и предупреждает при значении ниже 10%.

Пусть DumbMonit читает собственное состояние VictoriaLogs

  1. Ничего устанавливать не нужно: VictoriaLogs публикует своё состояние на /health и /metrics, на порту своего API (по умолчанию 9428). Проверьте с хоста DumbMonit, что оба адреса отвечают.

    curl http://victorialogs.lan:9428/health
    curl -s http://victorialogs.lan:9428/metrics | grep vl_free_disk_space_bytes
    
  2. Если VictoriaLogs запущена с -httpAuth.username и -httpAuth.password, выберите ниже Username / password и введите их. За vmauth или обратным прокси, который ожидает bearer-токен, выберите Bearer token. Если задан -metricsAuthKey, /metrics отвечает только при наличии этого ключа в URL, а DumbMonit его не отправляет: защитите /metrics вместо этого описанной выше базовой аутентификацией.

  3. В DumbMonit введите адрес сервера, например «victorialogs.lan» или «http://10.0.0.6:9428». За обратным прокси введите полный URL с префиксом пути.

  4. DumbMonit читает только /health и /metrics. Он никогда не выполняет запросов LogsQL и никогда не читает строки лога.

Warning

Следить нужно за свободным местом на диске: ниже -storage.minFreeDiskSpaceBytes (по умолчанию 10 МБ) VictoriaLogs переходит в режим «только чтение» и отклоняет каждую новую строку лога. DumbMonit показывает запас сверх этого порога и предупреждает при значении ниже 10%.

Учётные данные

Учётные данные Поля
No authentication По умолчанию: /health и /metrics открыты, если вы их не защитили.
Username / password -httpAuth.username и -httpAuth.password сервера или обратного прокси перед ним.
Bearer token Токен, который vmauth или ваш обратный прокси ожидает в Authorization: Bearer.

Адрес: имя хоста или IP (victoriametrics.lan, 10.0.0.5), host:port или полный URL с префиксом пути за обратным прокси (https://metrics.lan/vm). Параметры: протокол (по умолчанию HTTP), порт (8428 или 9428), проверка сертификата и тайм-аут запроса (10 с).