Loki — это открытая платформа для сбора, индексации и хранения логов. Позволяет проводить отладку и выявлять проблемы в системе на основе анализа и мониторинга данных логов.
Предварительно установите средства мониторинга.
Установка Loki состоит из пяти этапов:
- Загрузить helm-чарт и конфигурационный файл.
- Создать бакеты в minio.
- Заполнить конфигурационный файл.
- Установить чарт Loki с помощью helm в Kubernetes-кластер.
- Настроить подключение Loki в источниках данных Grafana.
Начало внимание
При установке Loki + Tempo начните с аддона Loki. Это позволит сохранить настройки кросслинков, так как изначально прописываются настройки Datasource.
Конец внимание
Шаг 1: Загрузить helm-чарт и конфигурационный файл
Для установки через интернет получите конфигурационный файла values-loki.yaml
, выполнив команду:
helm repo add elma365 https://charts.elma365.tech
helm repo update
helm show values elma365/loki > values-loki.yaml
Получение конфигурационного файла для установки в закрытом контуре без доступа в интернет
- На компьютере с доступом в интернет загрузите архив актуальной версии (latest) чарта Loki из репозитория ELMA365, выполнив команду:
helm repo add elma365 https://charts.elma365.tech
helm repo update
helm pull elma365/loki
- Полученный архив чарта loki-X.Y.Z.tgz скопируйте на сервер, где будет производиться установка.
- Распакуйте чарт и скопируйте конфигурационный файл по умолчанию
values.yaml в values-loki.yaml .
tar -xf loki-X.Y.Z.tgz
cp loki/values.yaml values-loki.yaml
|
Шаг 2: Создать бакеты в MinIO
1. Создайте alias
для MinIO:
mc alias set my_alias http://minio.local accessKey secretKey
2. Создайте бакеты с наименованиями admins, chunks и rules, выполнив команду:
mc mb -p my_alias/admin --region=ru-central-1
mc mb -p my_alias/chunks --region=ru-central-1
mc mb -p my_alias/rules --region=ru-central-1
Шаг 3: Заполнить конфигурационный файл
Заполнение конфигурационного файла values-loki.yaml для установки Loki
loki:
# -- Режим развёртывания позволяет указать способ развёртывания Loki
deploymentMode: SimpleScalable
# -- Конфигурация для запуска Enterprise Loki
enterprise:
enabled: false
# -- Использовать шлюз GEL, если false, будет использоваться шлюз nginx по умолчанию
gelGateway: false
# -- Включение кеширование фрагментов на основе memcached
chunksCache:
enabled: false
loki:
# -- Включение аутентификации
auth_enabled: false
# -- Конфигурация хранилища
storage:
bucketNames:
chunks: chunks
ruler: ruler
admin: admin
type: s3
s3:
s3: null
endpoint: minio.local:9000
region: ru-central-1
secretAccessKey: secretAccessKey
accessKeyId: accessKeyId
signatureVersion: null
s3ForcePathStyle: true
insecure: true
http_config: {}
# -- Дополнительная конфигурация уплотнителя
compactor:
delete_request_store: s3
compaction_interval: 10m
retention_enabled: true
retention_delete_delay: 2h
retention_delete_worker_count: 150
working_directory: /var/loki/chunks
# -- Настройка схемы
schemaConfig:
configs:
- from: "2024-04-01"
index:
period: 24h
prefix: index_
object_store: s3
schema: v13
store: tsdb
useTestSchema: false
# -- Конфигурация лимитов
limits_config:
retention_period: 744h #default 744h
per_stream_rate_limit: 512M
per_stream_rate_limit_burst: 1024M
commonConfig:
replication_factor: 1
# -- Конфигурация модулей записи
write:
replicas: 1
autoscaling:
enabled: false
minReplicas: 2
maxReplicas: 6
# -- Конфигурация модулей чтения
read:
replicas: 1
autoscaling:
enabled: false
minReplicas: 2
maxReplicas: 6
# -- Конфигурация модулей бэкенда
backend:
replicas: 1
autoscaling:
enabled: false
minReplicas: 2
maxReplicas: 6
# -- Конфигурация модулей шлюза
gateway:
enabled: true
replicas: 1
verboseLogging: true
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 3
# -- Раздел для настройки дополнительного теста Helm
test:
enabled: false
# Канарейка Loki
lokiCanary:
enabled: false
# -- Настройка promtail
promtail:
daemonset:
# -- Развёртывает Promtail как DaemonSet
enabled: true
autoscaling:
enabled: false
deployment:
# -- Развёртывает Promtail как Deployment
enabled: false
replicaCount: 1
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 10
# -- Конфигурация Promtail
config:
enabled: true
serverPort: 3101
clients:
- url: http://loki-gateway/loki/api/v1/push
|
Заполнение параметров подключения к приватному registry для установки в закрытом контуре без доступа в интернет
Для подключения к приватному registry нужно:
- Скачать образы ELMA365 и загрузить их в локальный реестр образов. Подробнее об этом читайте в статье «Загрузка образов ELMA365».
- Задать адрес и путь для параметра
image.registry .
- Указать наименование секрета с правами доступа к приватному registry в параметре
imagePullSecrets . Секрет должен быть создан вручную и зашифрован в Base64.
loki:
## параметры подключения к приватному registry
global:
image:
registry: null
imagePullSecrets: []
promtail:
## параметры подключения к приватному registry
global:
imageRegistry: ""
imagePullSecrets: []
|
Шаг 4: Установить чарт Loki с помощью helm в Kubernetes-кластер
Выполните установку чарта Loki в namespace monitoring
.
Для установки через интернет:
helm upgrade --install -n monitoring loki elma365/loki -f values-loki.yaml
Для офлайн-установки без доступа в интернет перейдите в каталог с загруженным чартом и выполните команду:
helm upgrade --install loki ./loki -f values-loki.yaml -n monitoring
Шаг 5: Настроить подключение Loki в источниках данных Grafana
Добавьте источник Loki при установке. Проверить его можно, используя путь: Home > Administration > Data source > Loki.
В поле URL укажите значение http://loki-gateway.
Пример просмотра лога приложения mongodb ({app="mongodb"} |= "error" != "timeout")
: