📌 Шпаргалка для работы с Grafana + Loki! 🔥
🚀 Grafana + Loki — мощный стек для централизованного логирования и визуализации логов. Loki собирает логи, а Grafana отображает их в удобном интерфейсе.
🔥 1. Установка и настройка
🛠 Установка Loki
📌 На сервере (Linux)
# Создаем директории
mkdir -p /etc/loki /var/lib/loki
# Загружаем последнюю версию Loki
curl -O -L "https://github.com/grafana/loki"
# Даем права на исполнение
chmod +x loki-linux-amd64
mv loki-linux-amd64 /usr/local/bin/loki
📌 Пример конфига /etc/loki/config.yaml
auth_enabled: false
server:
http_listen_port: 3100
ingester:
lifecycler:
ring:
kvstore:
store: inmemory
replication_factor: 1
chunk_idle_period: 5m
chunk_retain_period: 30s
schema_config:
configs:
- from: 2023-01-01
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
storage_config:
boltdb_shipper:
active_index_directory: /var/lib/loki/index
cache_location: /var/lib/loki/cache
shared_store: filesystem
limits_config:
enforce_metric_name: false
reject_old_samples: true
reject_old_samples_max_age: 168h
chunk_store_config:
max_look_back_period: 0s
table_manager:
retention_deletes_enabled: false
retention_period: 0s
📌 Запуск Loki
loki -config.file=/etc/loki/config.yaml
🛠 Установка Promtail (для сбора логов)
curl -O -L "https://github.com/grafana/loki"
chmod +x promtail-linux-amd64
mv promtail-linux-amd64 /usr/local/bin/promtail
📌 Пример конфига /etc/promtail/config.yaml
server:
http_listen_port: 9080
positions:
filename: /var/lib/promtail/positions.yaml
clients:
- url: http://localhost:3100/loki/api/v1/push
scrape_configs:
- job_name: system_logs
static_configs:
- targets:
- localhost
labels:
job: "varlogs"
host: "server-1"
__path__: /var/log/*.log
📌 Запуск Promtail
promtail -config.file=/etc/promtail/config.yaml
🎨 2. Настройка Grafana
📌 Установка (Debian/Ubuntu)
sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt-get update
sudo apt-get install grafana
📌 Запуск и включение в автозагрузку
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
📌 Настройка Grafana для Loki
1. Зайти в веб-интерфейс Grafana (http://<server>:3000)
2. Перейти в Configuration → Data Sources
3. Добавить источник Loki
- URL: http://localhost:3100
- Access: Server
- Save & Test
🔍 3. Запросы в Loki (LogQL)
📝 Базовый синтаксис
{job="varlogs"} | json
🔹 Фильтр по метке (job="varlogs")
🔹 Парсинг JSON
🔍 Фильтрация логов
{job="varlogs"} |= "error"
🔹 Ищет строки, содержащие "error"
{job="varlogs"} != "debug"
🔹 Исключает строки с "debug"
📊 Агрегация логов
rate({job="varlogs"}[5m])
🔹 Подсчет количества записей за последние 5 минут
count_over_time({job="varlogs"}[10m])
🔹 Количество логов за 10 минут
sum by (level) (count_over_time({job="varlogs"}[10m]))
🔹 Подсчет логов по уровням (например, error, info)
🛠 4. Управление и отладка
🚀 Перезапуск сервисов
systemctl restart loki
systemctl restart promtail
systemctl restart grafana-server
📂 Просмотр логов
journalctl -u loki -f
journalctl -u promtail -f
journalctl -u grafana-server -f
🔄 Очистка старых логов
rm -rf /var/lib/loki/*
rm -rf /var/lib/promtail/*
📡 Проверка работы Loki API
curl -s "http://localhost:3100/ready"
Ответ: ready ✅
@sysadmin1