Вопрос или проблема
Когда я использую эту команду для запуска 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, или что вы используете неверный уровень вложенности в файле конфигурации.
Решения проблемы
-
Проверьте документацию: Убедитесь, что структура вашего файла конфигурации соответствует актуальной документации для версии Loki, которую вы используете. В документации, доступной на GitHub Loki, найдите раздел, касающийся конфигурации
aggregation.Config
. Возможно, там указаны изменения в структуре конфигурации. -
Удаление конфигурации: Если поле
enabled
действительно не существует в версии вашего Loki, вы можете временно удалить разделmetric_aggregation
из вашего файлаconfig.yml
и перезапустить Loki:pattern_ingester: enabled: true # Удалить следующий раздел, если он вызывает ошибку # metric_aggregation: # enabled: true # loki_address: localhost:3100
-
Изучите изменения в версиях: Возможно, изменились и другие параметры конфигурации в новой версии Loki. Рекомендуется просмотреть CHANGELOG проекта, чтобы увидеть, какие параметры были изменены, добавлены или удалены.
-
Проверка на окружение: Если вы используете переменные окружения в конфигурации, убедитесь, что
--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, которая поддерживает ваши текущие настройки, или переосмыслить конфигурационные параметры согласно новому стандарту.