0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

Hướng Dẫn Tập Trung Và Trực Quan Hóa Nhật Ký Docker Trong Grafana Sử Dụng Loki

Đăng vào 2 tháng trước

• 4 phút đọc

Chủ đề:

KubernetesDocker

Giới Thiệu

Bài viết này sẽ hướng dẫn bạn cách tập trung và trực quan hóa nhật ký Docker trong Grafana bằng cách sử dụng Loki. Phương pháp này không chỉ hỗ trợ bạn mở rộng quy mô theo chiều ngang mà còn giúp quá trình quản lý nhật ký trở nên dễ dàng và hiệu quả hơn.

Tại Sao Chọn Grafana, Loki Và Promtail?

Sử dụng Grafana, Loki và Promtail giúp bạn xây dựng một hệ thống giám sát phân tán, nơi mỗi thành phần có thể hoạt động độc lập. Điều này mang lại hiệu quả cao hơn so với việc triển khai tất cả trên một máy chủ duy nhất, nên đây là cách tiếp cận lý tưởng cho các môi trường sản xuất.

Ví dụ, bạn có thể có Promtail trên một máy chủ chạy các container Docker cho một ứng dụng web, gửi nhật ký đến Loki đang chạy trên một máy chủ khác và sau đó trực quan hóa tất cả trong Grafana trên một máy chủ thứ ba.

Cách Thức Hoạt Động Của Hệ Thống

Trong thiết lập này, trình nền Docker gửi nhật ký trực tiếp đến Loki mà không cần thực hiện cấu hình Promtail. Lợi ích của phương pháp này bao gồm:

  • Không cần phải loay hoay với các tệp nhật ký và vị trí của chúng.
  • Docker sẽ tự động gửi nhật ký đến Loki.
  • Việc truy vấn nhật ký trong Grafana trở nên dễ dàng hơn, cho phép bạn tìm kiếm theo tên container, image, hoặc dự án compose.

Thiết Lập Loki

Nếu bạn đã có phiên bản Loki, bạn có thể bỏ qua phần này. Sau đây là hướng dẫn thiết lập Loki trên một máy chủ Ubuntu:

1. Tạo Thư Mục Cho Các Tệp Cấu Hình

bash Copy
cd && mkdir loki && cd loki

2. Tạo Tệp Cấu Hình cho Loki

bash Copy
nano loki-config.yaml

Dán nội dung sau vào tệp:

yaml Copy
# Bật xác thực để ngăn chặn truy cập trái phép
auth_enabled: false
server:
  http_listen_port: 3100
  grpc_listen_port: 9096
common:
  instance_addr: 127.0.0.1
  path_prefix: /tmp/loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks
      rules_directory: /tmp/loki/rules
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory
query_range:
  results_cache:
    cache:
      embedded_cache:
        enabled: true
        max_size_mb: 100
schema_config:
  configs:
    - from: 2020-10-24
      store: tsdb
      object_store: filesystem
      schema: v13
      index:
        prefix: index_
        period: 24h
ruler:
  alertmanager_url: http://localhost:9093

3. Tạo Tệp docker-compose.yaml

bash Copy
nano docker-compose.yaml

Dán nội dung sau:

yaml Copy
services:
  loki:
    image: grafana/loki:latest
    volumes:
      - ./loki-config.yml:/etc/loki/loki-config.yml
    ports:
      - "3100:3100"
    restart: unless-stopped
    command: -config.file=/etc/loki/loki-config.yml

4. Khởi Động Loki

bash Copy
docker compose up -d

Nếu mọi thứ suôn sẻ, bạn có thể truy cập Loki tại http://your-server-ip:3100.

Thiết Lập Plugin Docker Loki

1. Tạo Các Tệp Cần Thiết

Tạo thư mục cho Promtail:

bash Copy
cd && mkdir promtail && cd promtail

2. Tạo Tệp promtail-config.yaml

Tệp này sẽ chỉ định vị trí nhật ký và nơi gửi chúng:

yaml Copy
server:
  http_listen_port: 9080
  grpc_listen_port: 0
positions:
  filename: /tmp/positions.yaml
clients:
  - url: http://localhost:3100/loki/api/v1/push
scrape_configs:
  - job_name: docker
    pipeline_stages:
      - docker: {}
    static_configs:
      - labels:
          job: docker
          __path__: /var/lib/docker/containers/*/*-json.log

3. Tạo Tệp docker-compose.yaml Cho Promtail

yaml Copy
services:
  promtail:
    image: grafana/promtail:latest
    restart: unless-stopped
    volumes:
      - /var/log:/var/log
      - ./promtail-config.yml:/etc/promtail/promtail-config.yml
    command: -config.file=/etc/promtail/promtail-config.yml

4. Cài Đặt Plugin Docker Loki

Chạy lệnh sau để cài đặt plugin:

bash Copy
docker plugin install grafana/loki-docker-driver:2.9.2 --alias loki --grant-all-permissions

5. Cấu Hình Trình Nền Docker

Tạo tệp daemon.json:

json Copy
{
  "log-driver": "loki",
  "log-opts": {
    "loki-url": "http://localhost:3100/loki/api/v1/push",
    "loki-batch-size": "400"
  }
}

6. Khởi Động Lại Docker

bash Copy
sudo systemctl restart docker

7. Khởi Động Promtail

bash Copy
cd ~/promtail && docker compose up -d

Thiết Lập Grafana

1. Cài Đặt Grafana

Cài đặt Grafana đơn giản chỉ cần chạy:

bash Copy
docker run -d --name=grafana -p 3000:3000 grafana/grafana

2. Kết Nối Grafana Với Loki

Trong Grafana, đi đến "Data Sources", thêm nguồn dữ liệu với URL của Loki và kiểm tra kết nối.

3. Truy Vấn Nhật Ký

Tại đây, bạn có thể dễ dàng truy vấn nhật ký theo tên container và các thông tin khác một cách hiệu quả.

Kết Luận

Hệ thống này giúp bạn dễ dàng quản lý và giám sát nhật ký của các container Docker. Hy vọng rằng bạn sẽ tìm thấy bài viết này hữu ích cho quá trình triển khai các ứng dụng Docker của mình.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào