Настройка источника данных Loki
В этом документе объясняется, как настроить источник данных Loki, и описываются доступные параметры конфигурации. Общую информацию о добавлении источников данных и управлении ими см. в разделе Управление источниками данных.
Grafana включает встроенную поддержку Loki, поэтому устанавливать плагин не требуется.
Перед началом работы
Перед настройкой источника данных убедитесь, что у вас есть:
- Разрешения Grafana: роль
Organization administratorдля добавления и настройки источников данных. Администраторы также могут настраивать источник данных с помощью провижининга YAML. - URL сервера Loki: адрес вашего сервера Loki, включая порт. По умолчанию Loki слушает порт
3100. - Данные аутентификации: любые учётные данные или сертификаты, которые требует ваш сервер Loki, например имя пользователя и пароль для basic auth или сертификаты TLS.
Note
Используйте TLS (Transport Layer Security) для дополнительного уровня безопасности при работе с Loki. Информацию о настройке шифрования TLS с Loki см. в разделе Параметры конфигурации Grafana Loki.
Добавление источника данных Loki
Чтобы добавить источник данных Loki:
- В меню слева нажмите Connections.
- Нажмите Add new connection.
- Введите
Lokiв строке поиска. - Выберите источник данных Loki.
- В правом верхнем углу нажмите Add new data source.
Grafana откроет вкладку Settings, где вы настроите конфигурацию Loki.
Настройка источника данных в интерфейсе
В следующих разделах описаны параметры конфигурации, доступные для источника данных Loki.
Первые параметры задают имя вашего подключения:
Подключение
Настройте, как Grafana подключается к вашему серверу Loki.
Note
Указывайте только базовый URL. Не добавляйте пути API, такие как
/loki/api/v1/push. Эта конечная точка отправляет журналы в Loki с помощью агента вроде Grafana Alloy; она не используется для запросов к Loki из источника данных.Если ваш экземпляр Grafana работает в Grafana Cloud, адрес
localhostили адрес в приватной сети указывает на серверы Grafana, а не на вашу сеть, поэтому он не сможет достичь самостоятельно размещённого Loki. Используйте Private data source connect (PDC), чтобы запрашивать Loki в приватной сети.
Аутентификация
Настройте, как Grafana аутентифицируется на вашем сервере Loki. Выберите метод аутентификации и укажите необходимые учётные данные.
Note
Для Loki, размещённого в Grafana Cloud, используйте Basic authentication, указав в качестве имени пользователя ваш идентификатор пользователя Grafana Cloud, а в качестве пароля — токен Cloud Access Policy. Политика доступа токена должна включать область
logs:read. Создавайте токены в Grafana Cloud Portal. Значение токена показывается только один раз, поэтому скопируйте его при создании.
Пользовательские заголовки HTTP
Добавьте пользовательские заголовки HTTP, чтобы передавать значения, которые требует ваш экземпляр Loki.
Для многопользовательского Loki, настроенного с auth_enabled: true, добавьте заголовок X-Scope-OrgID со своим идентификатором пользователя (tenant ID), чтобы Loki знал, какого пользователя запрашивать. Без него запросы к многопользовательскому Loki завершатся ошибкой аутентификации или вернут пустой результат.
Дополнительные настройки
Раздел Additional settings сворачиваемый и содержит необязательные настройки, дающие вам больше контроля над источником данных. Он открыт по умолчанию и включает расширенные настройки HTTP, оповещения, параметры запросов и производных полей.
Расширенные настройки HTTP
Настройте дополнительное поведение HTTP для запросов к Loki.
Secure Socks Proxy
Настройки Secure Socks Proxy отображаются только тогда, когда в файле конфигурации Grafana включён защищённый SOCKS-прокси для источников данных. Когда он включён, вы можете направлять запросы источника данных через защищённый SOCKS-прокси. Дополнительную информацию см. в разделе Настройка прокси для подключения источника данных.
Оповещения
Настройте, как источник данных работает с Grafana Alerting.
Чтобы управлять другими ресурсами оповещений, например оповещениями, которые создают эти правила, добавьте источник данных Alertmanager. Дополнительную информацию об оповещениях с Loki см. в разделе Оповещения Loki.
Запросы
Настройте поведение запросов для источника данных.
Производные поля
Используйте производные поля, чтобы извлекать новые поля из ваших журналов и создавать ссылку из значения поля.
Например, вы можете ссылаться на свой бэкенд трассировки напрямую из журналов или ссылаться на страницу профиля пользователя, когда строка журнала содержит соответствующий userId. Эти ссылки отображаются в
деталях журнала.
Вы можете добавлять несколько производных полей.
Note
Если вы используете Grafana Cloud, вы можете запросить изменения этой функции, открыв обращение в службу поддержки из Grafana Cloud Portal.
Каждое производное поле имеет следующие параметры:
Caution
Использование сложных регулярных выражений в любом из типов может повлиять на производительность браузера при обработке больших объёмов журналов. По возможности используйте более простые шаблоны.
Note
Производное поле создаёт одно значение на строку журнала, поэтому вы не можете объединить несколько меток или групп захвата в одно поле или ссылку.
Для внутренней ссылки производное поле лишь строит ссылку на целевой источник данных, используя извлечённое значение. Чтобы ссылка сработала, трассировка должна быть уже загружена в целевой источник данных, например Tempo. Если соответствующей трассировки не существует, ссылка открывает целевой источник данных, но не возвращает трассировку.
Устранение неполадок с подстановкой
Используйте раздел отладки, чтобы увидеть, что извлекают ваши поля и как подставляется URL. Нажмите Show example log message, чтобы отобразить текстовую область, в которую можно ввести сообщение журнала.
Новое поле со ссылкой появится в деталях журнала:
Проверка подключения
Нажмите Save & test в нижней части настроек. Grafana попытается подключиться к вашему серверу Loki и запросить его метки. Когда проверка успешна, Grafana показывает сообщение об успехе, подтверждающее, что источник данных работает. Если проверка не удалась, изучите сообщение об ошибке и обратитесь к разделу Устранение неполадок Loki.
Note
Для устранения неполадок с конфигурацией и другими проблемами проверьте файл журнала, расположенный в
/var/log/grafana/grafana.logв системах Unix или в<grafana_install_dir>/data/logна других платформах и при ручной установке.
Провижининг источника данных
Вы можете определить и настроить источник данных в файлах YAML в рамках системы провижининга Grafana. Дополнительную информацию о провижининге и доступных параметрах конфигурации см. в разделе Провижининг Grafana.
Примеры провижининга
Следующий пример выполняет провижининг базового источника данных Loki:
apiVersion: 1
datasources:
- name: Loki
type: loki
access: proxy
url: http://localhost:3100
jsonData:
timeout: 60
maxLines: 1000
Использование базовой авторизации и производного поля:
Вы должны экранировать символ доллара ($) в значениях YAML, поскольку он может использоваться для подстановки переменных окружения:
apiVersion: 1
datasources:
- name: Loki
type: loki
access: proxy
url: http://localhost:3100
basicAuth: true
basicAuthUser: my_user
jsonData:
maxLines: 1000
derivedFields:
# Field with internal link pointing to data source in Grafana.
# datasourceUid value can be anything, but it should be unique across all defined data source uids.
- datasourceUid: my_jaeger_uid
matcherRegex: "traceID=(\\w+)"
name: TraceID
# url will be interpreted as query for the datasource
url: '$${__value.raw}'
# optional for URL Label to set a custom display label for the link.
urlDisplayLabel: 'View Trace'
# Field with external link.
- matcherRegex: "traceID=(\\w+)"
name: TraceID
url: 'http://localhost:16686/trace/$${__value.raw}'
secureJsonData:
basicAuthPassword: test_password
Использование источника данных Jaeger:
В этом примере значение uid источника данных Jaeger должно совпадать со значением datasourceUid источника данных Loki.
datasources:
- name: Jaeger
type: jaeger
url: http://jaeger-tracing-query:16686/
access: proxy
# UID should match the datasourceUid in derivedFields.
uid: my_jaeger_uid
Настройка с помощью Terraform
Вы можете настроить источник данных Loki с помощью Terraform и провайдера Grafana для Terraform.
Дополнительную информацию о провижининге ресурсов с помощью Terraform см. в разделе Grafana как код с использованием Terraform.
Следующий пример выполняет провижининг источника данных Loki с максимальным лимитом строк:
resource "grafana_data_source" "loki" {
name = "Loki"
type = "loki"
url = "http://localhost:3100"
json_data_encoded = jsonencode({
maxLines = 1000
})
}
Следующий пример использует базовую аутентификацию и определяет производное поле, которое ссылается на источник данных Jaeger:
resource "grafana_data_source" "loki" {
name = "Loki"
type = "loki"
url = "http://localhost:3100"
basic_auth_enabled = true
basic_auth_username = "my_user"
json_data_encoded = jsonencode({
maxLines = 1000
derivedFields = [
{
datasourceUid = "my_jaeger_uid"
matcherRegex = "traceID=(\\w+)"
name = "TraceID"
url = "$${__value.raw}"
urlDisplayLabel = "View Trace"
}
]
})
secure_json_data_encoded = jsonencode({
basicAuthPassword = "<LOKI_PASSWORD>"
})
}
Замените заполнители своими значениями:
<LOKI_PASSWORD>: пароль для пользователя базовой аутентификации.
Для всех доступных параметров конфигурации обратитесь к документации ресурса источника данных провайдера Grafana.