Перейти к основному содержимому

Настройка Grafana Loki

·339 слов·2 минут
DevOps • Networks • Security • Infrastructure
Автор
DevOps • Networks • Security • Infrastructure
DevOps/Network/Infra Engineer, CyberSecurity Expert

Grafana Loki представляет собой решение для агрегации, анализа и долгосрочного хранения логов. Непосредственно за обработку и хранение отвечает компонент Loki, тогда как Grafana — это компания-вендор, чьё название совпадает с её основным продуктом — панелью визуализации метрик. Таким образом, связка состоит из двух частей: сервиса хранения логов (Loki) и интерфейса визуализации (Grafana).

Настройка Docker
#

curl https://get.docker.com | bash -

Настройка Loki
#

mkdir /opt/docker/loki && mkdir /opt/docker/loki/data && cd /opt/docker/loki 
chown -R 10001:10001 /opt/docker/loki/data
chmod 755 /opt/docker/loki/data

nano docker-compose.yaml

services:
  loki:
    container_name: loki
    image: docker.io/grafana/loki:3.6
    command: "-config.file=/etc/loki/config.yaml"
    ports:
      - "3100:3100"
    volumes:
      - ./config/config.yaml:/etc/loki/config.yaml:ro
      - /opt/docker/loki/data:/loki:rw
    restart: unless-stopped

Конфигурация Loki:

mkdir /opt/docker/loki/config && cd /opt/docker/loki/config 

nano config.yaml

---
auth_enabled: false

server:
  http_listen_port: 3100

common:
  instance_addr: 127.0.0.1
  path_prefix: /loki
  storage:
    filesystem:
      chunks_directory: /loki/chunks
      rules_directory: /loki/rules
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory

schema_config:
  configs:
    - from: 2020-10-24
      store: tsdb
      object_store: filesystem
      schema: v13
      index:
        prefix: index_
        period: 24h

compactor:
  working_directory: /loki/compactor
  retention_enabled: true
  delete_request_store: filesystem
  compaction_interval: 10m
  retention_delete_delay: 2h
  retention_delete_worker_count: 150

limits_config:
  retention_period: 720h
  ingestion_rate_mb: 4
  ingestion_burst_size_mb: 6
  max_streams_per_user: 10000
  max_line_size: 256000

ruler:
  alertmanager_url: http://localhost:9093

Запуск Loki:

docker compose up -d
docker compose ps
docker compose logs

Проверка Loki:
curl http://192.168.20.74:3100
404 page not found

Настройка Grafana
#

mkdir /opt/docker/grafana && cd /opt/docker/grafana 

nano docker-compose.yaml

services:
  loki:
    container_name: loki
    image: docker.io/grafana/loki:3.6
    command: "-config.file=/etc/loki/config.yaml"
    ports:
      - "3100:3100"
    volumes:
      - ./config/config.yaml:/etc/loki/config.yaml:ro
      - data_loki:/loki:rw
    restart: unless-stopped

volumes:
  data_loki:
    driver: local

Запуск Grafana:

docker compose up -d
docker compose ps
docker compose logs

Проверить статус Docker-контейнеров:

root@loki:~# docker ps
CONTAINER ID   IMAGE                        COMMAND                  CREATED       STATUS       PORTS                                         NAMES
d6b527411441   grafana/grafana-oss:12.3.2   "/run.sh"                5 hours ago   Up 4 hours   0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp   grafana
b9d571097b36   grafana/loki:3.6             "/usr/bin/loki -conf…"   5 hours ago   Up 4 hours   0.0.0.0:3100->3100/tcp, [::]:3100->3100/tcp   loki

Проверка Grafana (admin\admin):
http://192.168.20.74:3000

Для начала работы необходимо настроить источник данных Loki. Для этого в интерфейсе следует перейти в раздел Connections ⇨ Data sources, нажать Add data source и выбрать Loki. В поле URL указывается адрес сервера (например, http://192.168.20.74:3100). Прочие настройки остаются без изменений. После заполнения необходимо нажать кнопку Save & Test в нижней части страницы. При корректной конфигурации ошибки отображаться не будут.

Related

Как изменить образ Docker
·561 слово·3 минут
Основные команды Docker
·1030 слов·5 минут
Установка OpenVPN на Ubuntu
·560 слов·3 минут