0
0
Lập trình
Hưng Nguyễn Xuân 1
Hưng Nguyễn Xuân 1xuanhungptithcm

Hướng Dẫn Chi Tiết Về Grafana Loki Trên Kubernetes - Phần 1: Tổng Quan và Kiến Trúc

Đăng vào 4 ngày trước

• 3 phút đọc

Hướng Dẫn Chi Tiết Về Grafana Loki Trên Kubernetes

Phần 1: Tổng Quan và Kiến Trúc

Giới thiệu về Grafana Loki

Grafana Loki là một hệ thống quản lý và lưu trữ log mạnh mẽ dành cho các hệ thống phân tán. Nó được phát triển nhằm làm việc cùng với Grafana, một công cụ giám sát mã nguồn mở nổi tiếng, mang đến giải pháp toàn diện cho việc giám sát hệ thống.

Nói một cách đơn giản, Loki tự động thu thập log từ các pod và container trong Kubernetes, rồi hiển thị chúng trên bảng điều khiển Grafana. Điều này có nghĩa là khi bạn triển khai một pod hoặc container mới, không cần phải thực hiện bất kỳ cấu hình nào; Loki sẽ tự động nhận và hiển thị log của chúng.

Với Grafana Loki, việc xem log trở nên dễ dàng và thuận tiện như việc lướt Facebook. Đối với những người lập trình viên, log đóng vai trò rất quan trọng trong việc phát hiện lỗi và khắc phục sự cố trong quá trình phát triển phần mềm.

Kiến trúc của Grafana Loki

Loki được xây dựng trên cơ sở nhiều thành phần (hoặc module) khác nhau, trong đó có bốn thành phần chính: Distributor, Ingester, Querier và Query Frontend.

📬 Distributor

Module Distributor có nhiệm vụ xử lý và xác nhận dữ liệu từ các client. Sau khi xác thực, dữ liệu hợp lệ sẽ được phân chia và gửi đến nhiều ingester để tiến hành xử lý song song, đảm bảo tốc độ xử lý tốt nhất.

📥 Ingester

Module Ingester chịu trách nhiệm ghi lại dữ liệu vào kho lưu trữ dài hạn. Loki sử dụng một phương pháp lưu trữ hiệu quả bằng cách chỉ lưu lại siêu dữ liệu (metadata) thay vì toàn bộ nội dung log. Các loại kho lưu trữ bạn có thể sử dụng bao gồm AWS S3, Apache Cassandra, hoặc hệ thống tệp cục bộ.

🕵️‍♂️ Querier

Module Querier là thành phần thực hiện các truy vấn từ người dùng đến các ingester và kho lưu trữ. Các truy vấn này sẽ ưu tiên thực hiện trên lưu trữ cục bộ trước, sau đó mới đến lưu trữ dài hạn.

🔍 Query Frontend

Module Query Frontend tạo ra các điểm cuối API cho các truy vấn, giúp chia nhỏ các truy vấn lớn thành nhiều truy vấn nhỏ hơn và thực hiện đọc log một cách song song. Điều này rất hữu ích cho những ai mới bắt đầu với Loki mà không muốn phải cấu hình một querier phức tạp ngay từ đầu.

Cách Grafana Loki hoạt động

📡 Lấy Log với Promtail

Promtail là một công cụ thu thập log được phát triển dành riêng cho Loki. Nó sử dụng cơ chế khám phá dịch vụ tương tự như Prometheus, cho phép gán thẻ, biến đổi và lọc log trước khi gửi đến Loki.

🗄️ Lưu trữ log trong Loki

Loki không chỉ mục hóa nội dung log, thay vào đó, nó phân loại log thành các luồng và gán nhãn cho chúng. Điều này không chỉ tiết kiệm chi phí mà còn cho phép các log được truy vấn chỉ trong vài mili giây sau khi được nhận.

🔍 Khám Phá với LogQL

Sử dụng ngôn ngữ truy vấn LogQL của Loki để khám phá log của bạn. Bạn có thể chạy các truy vấn LogQL từ Grafana và xem log của mình bên cạnh các nguồn dữ liệu khác, hoặc sử dụng LogCLI nếu bạn ưa thích dòng lệnh.

🚨 Cảnh báo từ logs

Bạn có thể thiết lập quy tắc cảnh báo cho Loki để đánh giá dữ liệu Syslog. Việc cấu hình Loki để chuyển các cảnh báo đến Prometheus Alertmanager là cần thiết, nơi những cảnh báo này sẽ được định tuyến đến nhóm phù hợp.

Tóm lại, Grafana Loki là một công cụ cực kỳ hiệu quả cho việc lưu trữ và giám sát log trong môi trường phân tán. Với khả năng tự động hóa và tính thân thiện với người dùng, Loki là một giải pháp mà mọi lập trình viên không nên bỏ qua.
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