строка 41: поле enabled не найдено в типе aggregation.Config при запуске loki

Вопрос или проблема

Когда я использую эту команду для запуска loki:

loki --config.file=./config.yml

появляется ошибка, такая как:

ошибка парсинга конфигурации: ./config.yml: yaml: ошибки unmarshaling:
  строка 41: поле enabled не найдено в типе aggregation.Config. Используйте флаг `-config.expand-env=true`, если хотите расширить переменные окружения в вашем файле конфигурации

тогда я попробовал так:

root@iZhp33cq6mvrjo8mzatgrmZ:/etc/loki# loki --config.file=./config.yml --config.expand-env=true
ошибка парсинга конфигурации: ./config.yml: yaml: ошибки unmarshaling:
  строка 41: поле enabled не найдено в типе aggregation.Config

это config.yml:

root@iZhp33cq6mvrjo8mzatgrmZ:/etc/loki# cat config.yml 
auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096
  log_level: debug
  grpc_server_max_concurrent_streams: 1000

common:
  instance_addr: 127.0.0.1
  path_prefix: /tmp/loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks
      rules_directory: /tmp/loki/rules
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory

query_range:
  results_cache:
    cache:
      embedded_cache:
        enabled: true
        max_size_mb: 100

schema_config:
  configs:
    - from: 2020-10-24
      store: tsdb
      object_store: filesystem
      schema: v13
      index:
        prefix: index_
        period: 24h

pattern_ingester:
  enabled: true
  metric_aggregation:
    enabled: true
    loki_address: localhost:3100

ruler:
  alertmanager_url: http://localhost:9093

frontend:
  encoding: protobuf

# По умолчанию Loki будет отправлять анонимные, но уникально идентифицируемые данные об использовании и конфигурации
# в Grafana Labs. Эта статистика отправляется на https://stats.grafana.org/
#
# Статистика помогает нам лучше понять, как используется Loki, и показывает нам уровни производительности
# для большинства пользователей. Это помогает нам расставить приоритеты для функций и документации.
# Для получения дополнительной информации о том, что отправляется, смотрите на
# https://github.com/grafana/loki/blob/main/pkg/analytics/stats.go
# Обратитесь к методу buildReport, чтобы увидеть, что входит в отчет.
#
# Если вы хотите отключить отчетность, раскомментируйте следующие строки:
#analytics:
#  reporting_enabled: false

Кто-нибудь сталкивался с такой же проблемой? Это версия loki:

root@iZhp33cq6mvrjo8mzatgrmZ:/etc/loki# loki --version
loki, версия 3.3.0 (ветка: k227, ревизия: 19bbc448)
  пользователь сборки:       root@bbfd3492a6b4
  дата сборки:       2024-11-19T11:25:17Z
  версия go:       go1.23.1
  платформа:         linux/amd64
  теги:             netgo

└─$ awk 'NR>40 && NR < 43' config.yml | od -c
0000000                   e   n   a   b   l   e   d   :       t   r   u
0000020   e  \n                   l   o   k   i   _   a   d   d   r   e
0000040   s   s   :       l   o   c   a   l   h   o   s   t   :   3   1
0000060   0   0  \n
0000063

Ответ или решение

Проблема, с которой вы столкнулись, связана с неправильной конфигурацией файла config.yml для сервера Loki. Ошибка указывает на то, что поле enabled не найдено в типе aggregation.Config, что указывает на несоответствие между вашей конфигурацией и теми значениями, которые ожидает используемая вами версия Loki.

Анализ ошибки

Согласно предоставленным вами данным, строка 41 вашего файла конфигурации:

metric_aggregation:
  enabled: true
  loki_address: localhost:3100

должна быть проверена на соответствие с документацией для версии Loki, которую вы используете (3.3.0). Если поле enabled не распознается, это может означать, что оно было удалено или переименовано в более новых версиях Loki, или что вы используете неверный уровень вложенности в файле конфигурации.

Решения проблемы

  1. Проверьте документацию: Убедитесь, что структура вашего файла конфигурации соответствует актуальной документации для версии Loki, которую вы используете. В документации, доступной на GitHub Loki, найдите раздел, касающийся конфигурации aggregation.Config. Возможно, там указаны изменения в структуре конфигурации.

  2. Удаление конфигурации: Если поле enabled действительно не существует в версии вашего Loki, вы можете временно удалить раздел metric_aggregation из вашего файла config.yml и перезапустить Loki:

    pattern_ingester:
      enabled: true
      # Удалить следующий раздел, если он вызывает ошибку
      # metric_aggregation:
      #   enabled: true
      #   loki_address: localhost:3100
  3. Изучите изменения в версиях: Возможно, изменились и другие параметры конфигурации в новой версии Loki. Рекомендуется просмотреть CHANGELOG проекта, чтобы увидеть, какие параметры были изменены, добавлены или удалены.

  4. Проверка на окружение: Если вы используете переменные окружения в конфигурации, убедитесь, что --config.expand-env=true действительно требуется и настроен правильно. Вы можете проверить детали конфигурации, запустив команду с флагом и посмотреть, улучшается ли обработка.

Пример измененного файла config.yml

После удаления проблемного поля ваш файл может выглядеть следующим образом:

auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096
  log_level: debug
  grpc_server_max_concurrent_streams: 1000

common:
  instance_addr: 127.0.0.1
  path_prefix: /tmp/loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks
      rules_directory: /tmp/loki/rules
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory

query_range:
  results_cache:
    cache:
      embedded_cache:
        enabled: true
        max_size_mb: 100

schema_config:
  configs:
    - from: 2020-10-24
      store: tsdb
      object_store: filesystem
      schema: v13
      index:
        prefix: index_
        period: 24h

pattern_ingester:
  enabled: true
  # metric_aggregation:
  #   enabled: true
  #   loki_address: localhost:3100

ruler:
  alertmanager_url: http://localhost:9093

frontend:
  encoding: protobuf

Заключение

После внесения изменений перезапустите сервис Loki и проверьте, устранена ли ошибка. Если проблема останется, возможно, стоит рассмотреть возможность использования более старой версии Loki, которая поддерживает ваши текущие настройки, или переосмыслить конфигурационные параметры согласно новому стандарту.

Оцените материал
Добавить комментарий

Капча загружается...