Giới thiệu các thành phần
Hệ thống thu thập và hiển thị log phân tán có thể được xây dựng dễ dàng nhờ bộ ba công cụ mã nguồn mở: Grafana, Loki và Promtail. Mỗi thành phần đảm nhận một vai trò riêng:
- Loki: Là dịch vụ lưu trữ và xử lý truy vấn log theo thời gian thực. Được phát triển bởi Grafana Labs, Loki chuyên tối ưu cho dữ liệu nhật ký với chi phí lưu trữ thấp và hiệu suất cao.
- Promtail: Đóng vai trò là agent chạy trên máy chủ nguồn, nhiệm vụ chính là đọc file log từ ổ đĩa và gửi đến Loki để lưu trữ.
- Grafana: Giao diện trực quan hóa dữ liệu, cho phép truy vấn, lọc và biểu diễn log dưới dạng bảng hoặc biểu đồ thời gian.
Cài đặt trên môi trường Windows
Dưới đây là hướng dẫn thiết lập nhanh trên máy cục bộ sử dụng hệ điều hành Windows.
1. Cài đặt Grafana
Tải bản cài đặt phù hợp tại trang chủ:
https://grafana.com/grafana/download?platform=windowsSau khi giải nén và hoàn tất cài đặt, dịch vụ sẽ tự động khởi động. Truy cập giao diện quản trị qua trình duyệt:
http://localhost:3000
Tài khoản mặc định: admin/admin.
2. Cấu hình Loki (dịch vụ lưu trữ log)
Tải bản phát hành mới nhất từ GitHub:
https://github.com/grafana/loki/releasesGiải nén và tạo file cấu hình loki-local-config.yaml trong cùng thư mục với file thực thi loki-windows-amd64.exe.
auth_enabled: false
server:
http_listen_port: 3100
ingester:
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 5m
chunk_retain_period: 30s
max_transfer_retries: 0
schema_config:
configs:
- from: 2020-06-22
store: boltdb
object_store: filesystem
schema: v11
index:
prefix: index_
period: 168h
storage_config:
boltdb:
directory: ./data/index
filesystem:
directory: ./data/chunks
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
Tạo thư mục data để Loki lưu dữ liệu. Khởi động dịch vụ bằng lệnh:
loki-windows-amd64.exe --config.file=loki-local-config.yaml
3. Cài đặt Promtail (agent thu thập log)
Tải và giải nén Promtail từ trang release tương tự như Loki. Tạo file promtail-config.yaml bên cạnh file thực thi.
server:
http_listen_port: 9080
positions:
filename: ./positions.yaml
clients:
- url: http://localhost:3100/loki/api/v1/push
scrape_configs:
- job_name: application-logs
static_configs:
- targets:
- localhost
labels:
job: app_logs
env: development
__path__: D:\Logs\*.log
- job_name: service-logs
static_configs:
- targets:
- localhost
labels:
job: service_logs
__path__: C:\Services\*.txt
Trong cấu hình này, Promtail sẽ theo dõi các file log có đuôi .log trong thư mục D:\Logs và file .txt trong C:\Services. Các nhãn (labels) giúp phân loại log khi truy vấn.
Khởi động Promtail:
promtail-windows-amd64.exe --config.file=promtail-config.yaml
Kết nối và xem log trong Grafana
Đăng nhập vào Grafana, vào Configuration > Data Sources và thêm nguồn mới. Chọn Loki, điền URL:
http://localhost:3100
Lưu cấu hình. Sau đó, chuyển sang tab Explore để bắt đầu truy vấn log. Sử dụng biểu thức như:
{job="app_logs"}
để lọc các bản ghi theo nhãn đã định nghĩa.