Установка Loki на свой сервер: коротко и с данными
Конспект страницы: 6 разделов коротко, данные на 14 октября 2026 и ответы на 4 вопроса. Полный разбор с примерами: Установка Loki на свой сервер.
Коротко
Установка Loki в Docker сводится к одному контейнеру grafana/loki с файлом конфигурации и портом 3100. Loki индексирует только метки логов, а не весь текст, поэтому индекс остаётся маленьким, но по умолчанию логи хранятся бесконечно, пока вы не задали срок. Для небольшого проекта хватит 1 ядра и 2 ГБ памяти с Loki и Grafana на одном сервере.
Конспект по разделам
Как устроен Loki и чем он отличается от Elasticsearch
Loki складывает текст логов в сжатые блоки, а в индекс записывает только метки: имя сервера, контейнера, задания. Запрос сначала отбирает потоки по меткам, затем фильтрует строки внутри них на языке LogQL. Для типичного вопроса «что писал контейнер app вчера вечером» этого достаточно.
Установка Loki и Grafana через Docker Compose
- Создайте каталог loki и положите в него два файла: loki-config.yaml и compose.yml.
- Запустите docker compose up -d и проверьте адрес http://127.0.0.1:3100/ready.
- Откройте Grafana через SSH-туннель, добавьте источник данных Loki с адресом http://loki:3100: контейнеры видят друг друга по имени сервиса.
Как отправлять логи в Loki: агент или драйвер Docker
Сам Loki логи не забирает, их ему присылает отправитель. Раньше для этого ставили Promtail, но он объявлен устаревшим, и его заменяет Grafana Alloy: один агент читает файлы и журнал systemd и пересылает строки на адрес /loki/api/v1/push. Для контейнеров есть быстрый вариант, драйвер журналирования Docker: Драйвер удобен для старта, но привязывает запись логов контейнера к доступности Loki.
Срок хранения логов в Loki и как посчитать диск
За срок отвечают три ключа конфигурации: compactor.retention_enabled: true, limits_config.retention_period и compactor.delete_request_store. Значение по умолчанию равно 0s, то есть логи не удаляются никогда. В примере выше стоит 744 часа, около месяца.
Безопасность Loki и хранение блоков в S3
Параметр auth_enabled: false означает один пользователь без проверки: любой, кто дотянулся до порта 3100, читает и пишет логи. Держите порт на 127.0.0.1, а агентам с других серверов дайте адрес за прокси с паролем, как в разборе установки Caddy. Блоки Loki умеет хранить и в S3-совместимом хранилище, тогда диск сервера не ограничивает срок хранения.
Запустите свой сервер за пару минут
Почасовая оплата: тестовый стенд на сутки стоит десятки рублей, а не месячный тариф.
- NVMe-диски и гарантированная доля процессора
- Root-доступ и любой софт, от Docker до игровых серверов
- Маркетплейс: 91 приложение в один клик
- Бесплатный перенос проекта силами специалистов
Вопросы и ответы
Чем Loki отличается от Elasticsearch при хранении логов?
Loki индексирует только метки и хранит текст сжатыми блоками, поэтому легче по диску. Elasticsearch индексирует весь текст и быстрее ищет произвольные фразы, но требует больше памяти.
Как задать срок хранения логов в Loki?
Включите retention_enabled в блоке compactor, задайте delete_request_store и укажите retention_period, например 744h. Без этого логи не удаляются.
Нужен ли Promtail для установки Loki?
Нет. Promtail объявлен устаревшим, логи присылает Grafana Alloy или драйвер журналирования Docker.
Можно ли подключить Loki к Grafana на другом сервере?
Да, в источнике данных указывают адрес Loki. Порт 3100 при этом нельзя открывать всем: ставьте прокси с паролем или закрытую сеть между серверами.