Управление логами в распределенных системах часто утомляет: подключение к каждому серверу, поиск через grep, попытка связать события... Это отнимает время и усложняет анализ. Традиционный стек ELK эффективен, но не когда результат нужно получить быстро. Альтернатива — Grafana Lok с простым и масштабируемым подходом к сбору логов.
Ключевые преимущества Loki:
В отличие от ELK, Loki не индексирует полный текст логов, а использует метки, которые вы задаёте самостоятельно. Строки логов сжимаются и хранятся как есть, что снижает нагрузку на хранение и поиск. Представьте, что Loki пробегается по оглавлению вместо чтения всей книги.
Конфиг ниже развернёт стек: Loki для хранения, Promtail для сбора и Grafana для визуализации.
version: "3"
networks:
loki:
services:
loki:
image: grafana/loki:latest
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
volumes:
- ./loki-config.yaml:/etc/loki/local-config.yaml # Добавьте файл конфигурации Loki
networks:
- loki
promtail:
image: grafana/promtail:latest
volumes:
- /var/log:/var/log # Логи с хоста
- ./promtail-config.yml:/etc/promtail/config.yml # Конфиг Promtail
command: -config.file=/etc/promtail/config.yml
networks:
- loki
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin # Установите пароль
networks:
- loki
Шаги по запуску:
1. Сохраните YAML в
docker-compose.yml.2. Создайте
promtail-config.yml и loki-config.yaml (стандартный конфиг из docs.grafana.com).Пример
promtail-config.yml:server:
http_listen_port: 9080
clients:
- url: http://loki:3100/loki/api/v1/push
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
path: /var/log/*log
3. Запустите: docker-compose up -d.
4. Откройте Grafana (
http://localhost:3000, логин/пароль: admin/admin), добавьте Loki как источник данных и перейдите в Explore.Ваши логи с хоста уже доступны. Фильтруйте по меткам и ищите события в реальном времени.
Как видите, Loki — хороший инструмент для централизованного сбора логов, который упрощает анализ и масштабирование без лишних ресурсов.
@DevOpsKaz 😛
