ELK Stack là gì?

  • Monday 23/08/2021

Logging là một phần không thể thiếu trong bất kì hệ thống nào, nó giúp chúng ta lưu lại dấu vết, hoạt động của ứng dụng, giúp phân tích, điều tra bugs, bla bla…

Việc quản lý log sao cho hiệu quả luôn là một bài toán cần phải giải khi mà trong một hệ thống lớn thì file log có thể lên tới vài chục GB, hay là trong mô hình microservices thì chúng ta có rất nhiều servers tương ứng với rất nhiều file logs.

Hôm nay tôi xin giới thiệu về ELK stack một công cụ mạnh mẽ dùng để quản lý và phân tích log tập chung.

ELK stack là gì

“ELK” là từ viết tắt của ba dự án nguồn mở: Elaticsearch, Logstash và Kibana. Trong đó:

  • Elaticsearch: là một search engine được rất nhiều anh em sử dụng, trong bộ ba này thì nó đóng vai trò là một store để chứa logs kiêm vai trò tìm kiếm và phân tích mạnh mẽ vốn có.
  • Logstash: đây là một công cụ sử dụng để thu thập, xử lý log được viết bằng Java. Nhiệm vụ chính của logstash là thu thập log sau đó chuyển vào Elastichsearch. Mỗi dòng log của logstash được lưu trữ đưới dạng json.
  • Kibana: là công cụ cho phép trực quan hoá dữ liệu từ Elasticsearch, ở đây chính là đống logs của chúng ta.

ELK Stack

Luồng hoạt động

  1. Đầu tiên, log sẽ được đưa đến Logstash. (Thông qua nhiều con đường, ví dụ như server gửi UDP request chứa log tới URL của Logstash, hoặc Beat đọc file log và gửi lên Logstash)
  2. Logstash sẽ đọc những log này, thêm những thông tin như thời gian, IP, parse dữ liệu từ log (server nào, độ nghiêm trọng, nội dung log) ra, sau đó ghi xuống database là Elasticsearch.
  3. Khi muốn xem log, người dùng vào URL của Kibana. Kibana sẽ đọc thông tin log trong Elasticsearch, hiển thị lên giao diện cho người dùng query và xử lý.

ELK stack hoat dong

Vì sao nên sử dụng ELK stack

Với các hệ thống hoặc ứng dụng nhỏ, ta không cần ELK Stack làm gì, cứ ghi log ra file hoặc stdout của hệ thống là được

Tuy nhiên với hệ thống lớn, gồm nhiều services lại là câu chuyện khác.

  • Quản lý log tập trung: Thay vì phải lọ mọ vào từng servers xem log thì chúng ta chỉ cần mở kibana trên trình duyệt web là có thể xem được log của tất cả các servers rồi
  • Dễ dàng tích hợp: dù bạn có dùng Nginx hay Apache, dùng MSSQL, MongoDB hay Redis, Logstash đều có thể đọc hiểu và xử lý log của bạn nên việc tích hợp rất dễ dàng.
  • Search và filter mạnh mẽ: Elasticsearch cho phép lưu trữ thông tin kiểu NoSQL, hỗ trợ luôn Full-Text Search nên việc query log rất dễ dàng và mạnh mẽ, ngay cả với dữ liệu log cực kì lớn.
  • Scale dễ dàng: Khi muốn xử lý nhiều log hơn, chúng ta chỉ việc tăng số nodes của Elasticsearch hoặc Logstash lên là xong
  • Dễ dàng triển khai và hoàn toàn miễn phí: Chúng ta có thể chạy bộ 3 này trên 1 server duy nhất, và không tốn tiền bản quyền vì các phần mềm này đều là mã nguồn mở + free.
  • Cộng đồng mạnh, tutorial nhiều.

Hi vọng qua bài viết này các bạn có thể hiểu tổng quan ELK Stack là gì và tại sao chúng ta cần nó

Nếu cần hỗ trợ, bạn vui lòng liên hệ kythuat@pavietnam.vn, website: https://support.pavietnam.vn

Tham khảo các bài viết khác tại đây

Các khuyến mãi tại đây

5/5 - (1 bình chọn)