Những điều chưa biết về ELK Stack

Khi lang thang trên các diễn đàn, nhiều kỹ sư công nghệ sẽ không khỏi tò mò khi gặp phải cụm từ ELK hoặc ELK Stack. Vậy những khái niệm này có nghĩa là gì? Hãy cùng Got It Vietnam tìm hiểu thêm qua bài viết này nhé!

1. Logging và Stack là gì?

Trước khi tìm hiểu về ELK, chúng ta cần tìm hiểu về khái niệm logging. Nói một cách dễ hiểu, logging là quá trình ghi lại những dữ liệu và hoạt động trên hệ thống, để quá trình kiểm tra sau này được dễ dàng và thuận tiện hơn. Nhờ logging, việc kiểm tra lại trạng thái của hệ thống, cũng như việc tìm lỗi và sửa lỗi trở nên đơn giản hơn rất nhiều.

Tuy nhiên, nhiều file log có thể có dung lượng lên đến hàng chục GB, hoặc quá trình tìm kiếm và truy xuất file log đó rất phức tạp. Do đó, những công cụ quản lý file log tập trung (stack) được sinh ra để hoàn thiện quá trình truy xuất log. Một trong những công cụ stack phổ biến hiện nay nhất là ELK Stack.

ELK Stack là một phương pháp centralized logging
ELK Stack và logging là gì? Nguồn: Unsplash

2. ELK Stack bao gồm những phần nào?

ELK Stack bao gồm 3 phần mềm đi cùng với nhau để phục vụ quá trình log, bao gồm: Elasticsearch, Logstash, Kibana. Vai trò của mỗi phần mềm này như sau:

  1. Elasticsearch: Đây là cơ sở dữ liệu để lưu trữ log. Log sẽ được đưa tới đây bằng nhiều con đường, ví dụ như server gửi UDP request chứa log tới URL của Logstash. Elasticsearch cũng là một search engine được nhiều anh em IT sử dụng bởi sức mạnh tìm kiếm và phân tích của nó
  2. Logstash: Đây sẽ là một công cụ được sử dụng để thu thập, xử lý các log được viết bằng Java. Logstash sẽ thêm một vài thông tin về thời gian, IP, v.v.. và ghi ở database là Elasticsearch.
  3. Kibana: Phần mềm Kibana sẽ trực quan hoá các dữ liệu từ Elasticsearch, hay ở đây chính là log của chúng ta. Khi muốn xem log, chúng ta sẽ click vào URL trên Kibana và hệ thống sẽ đọc các log trong elasticsearch và đưa lên để người dùng query và xử lý.
ELK Stack có ba phần mềm đi cùng nhau phục vụ quá trình logging dễ dàng và thuận tiện hơn
ELK Stack bao gồm những phần mềm nào?

3. Tại sao ELK Stack lại phổ biến đến vậy?

ELK Stack là một trong những công cụ stash phổ biến và mạnh mẽ nhất trên thế giới và được sử dụng bởi nhiều công ty lớn trên thế giới như: Netflix, Medium, LinkedIn, Accenture, v.v…

Sở dĩ ELK Stack phổ biến như vậy vì một vài ưu điểm như sau:

  • Quản lý log tập trung và thuận tiện hơn: Thay vì phải tìm kiếm và truy cập từng server để tìm log, các kỹ sư IT chỉ cần click vào URL của Kibana và tất cả các log của các servers sẽ hiện lên để bạn phân tích
  • Dễ dàng để tích hợp: Dù bạn có sử dụng các nền tảng khác nhau như Apache, NMSSQL, MongoDB hay Redis thì Logstash đều có thể đọc và xử lý log của bạn, do đó quá trình tích hợp rất dễ dàng.
  • Miễn phí: Công ty chủ quản của ELK Stack có lợi nhuận lớn đến từ các dịch vụ cloud hoặc các ứng dụng premium, do đó các phần mềm ELK Stack đều có mã nguồn mở và hoàn toàn miễn phí, chỉ cần tải xuống là có thể sử dụng được.
  • Scale dễ dàng: Do Elasticsearch và Logstash đều là hai hệ thống sử dụng nodes, muốn thêm server hay scale lên chúng ta chỉ cần thêm nodes là xong.
  • Search và filter mạnh mẽ: Elasticsearch lưu trữ thông tin theo dạng NoSQL, hỗ trợ luôn Full-Text Search nên việc tra cứu rất dễ dàng và mạnh mẽ.
  • Có nhiều chia sẻ, hướng dẫn sử dụng: ELK Stack được rất nhiều công ty lớn và các kỹ sư trong nghề sử dụng, do đó, những tài nguyên và hướng dẫn sử dụng của phần mềm này ở trên Internet rất đa dạng và phong phú. Nếu có bất cứ khó khăn nào, bạn chỉ cần google thắc mắc và ngay lập tức sẽ có hàng ngàn kết quả.
Nhiều công ty lớn lựa chọn sử dụng ELK Stack để log dữ liệu
ELK Stack được nhiều công ty lớn lựa chọn vì sao? Nguồn: Unsplash

4. Nên sử dụng ELK Stack trong những trường hợp nào?

Đầu tiên, nếu hệ thống của bạn là một hệ thống nhỏ và không phức tạp, việc sử dụng ELK Stack là không cần thiết. Bạn hoàn toàn có thể ghi và tra cứu, trích xuất log theo cách thủ công: Dùng thư viện ghi log theo ngôn ngữ, rồi sau đấy ghi log ra file để đọc.

Các bạn nên sử dụng ELK Stack trong trường hợp hệ thống của bạn có nhiều server và các server này chạy cùng một lúc, hoặc các server này rất phân tán (microserver). Lúc này, bạn sẽ gặp khó khăn lớn nếu phải mở từng server ra để tìm log server đó, do đó chúng ta nên sử dụng cách ghi log tập trung – như ELK Stack để tra cứu và trích xuất log nhanh chóng hơn.

5. Cách cài đặt ELK Stack

Quá trình cài đặt ELK Stack thủ công đã được hướng dẫn bởi nhiều nguồn online, các bạn có thể tham khảo tại đây.

Tuy nhiên, các bạn cũng có thể dùng service của các bên thứ ba có host sẵn ELK Stack trên cloud như logic.io, để tiết kiệm thời gian tìm kiếm server và cài đặt ELK Stack. Sau đó, các bạn chỉ cần config lại một vài yếu tố như cho phép Logstash đọc log qua UDP, hoặc check lại các service back-end xem có tương thích không. Các bạn có thể tìm hiểu quá trình chuyển đổi sang ELK Stack chỉ hết 1 ngày của blogger Phạm Huy Hoàng nhé.

Hy vọng qua bài viết vừa rồi, Got It Vietnam đã cung cấp đủ cho các bạn những thông tin cơ bản nhất về ELK Stash. Do kiến thức chuyên ngành về ELK Stash khá nặng và dày đặc, các bạn cần tích cực trau dồi để hiểu rõ hơn nữa nhé!

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

Nhan Tung
Nhan Tung
February 09, 2021
0
Share this post to:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
Gợi ý 6 câu hỏi phỏng vấn tester thông dụng nhất năm 2021

Gợi ý 6 câu hỏi phỏng vấn tester thông dụng nhất năm 2021

Chuẩn bị kỹ những câu hỏi phỏng vấn tester sẽ giúp bạn dễ dàng lọt vào mắt xanh của nhà tuyển dụng. Từ đó cơ hội có được việc làm ưng ý sẽ rộng mở hơn bao giờ hết. Ngay sau đây chúng mình sẽ gợi ý 6 câu hỏi phỏng vấn tester được sử […]
TOP 4 các ngôn ngữ lập trình phổ biến nhất mà coders nên thành thạo

TOP 4 các ngôn ngữ lập trình phổ biến nhất mà coders nên thành thạo

Trên thế giới hiện nay có hàng chục ngôn ngữ lập trình, mỗi ngôn ngữ lại có ứng dụng riêng trong từng lĩnh vực. Các ngôn ngữ lập trình phổ biến hiện nay là gì, ứng dụng vào đâu cũng như triển vọng nghề nghiệp của chúng? Mục lục#1 trong các ngôn ngữ lập trình […]

Mức lương lập trình web trung bình trên thế giới hiện nay là bao nhiêu?

Càng ngày các cá nhân và tổ chức càng dành nhiều thời gian trên mạng internet hơn. Nhu cầu cho các nhà lập trình web phát triển ngày càng nhiều. Họ giúp tùy chỉnh, xây dựng những sân chơi trực tuyến để mọi người có thể kết nối với nhau. Vậy mức lương lập trình […]
Trí tuệ nhân tạo được ứng dụng trong lĩnh vực nào?

Trí tuệ nhân tạo được ứng dụng trong lĩnh vực nào?

Trí tuệ nhân tạo được viết tắt là AI (Artificial Intelligence). Đây là một ngành thuộc lĩnh vực khoa học máy tính, do con người lập trình tạo nên với mục tiêu giúp cho máy tính có thể tự động hóa những hành vi thông minh như con người. Vậy trí tuệ nhân tạo có […]
4 quyển sách Python tiếng Việt cho người mới bắt đầu

4 quyển sách Python tiếng Việt cho người mới bắt đầu

Bạn muốn tìm hiểu về Python nhưng tìm đâu cũng chỉ thấy sách tiếng Anh? Đừng lo, Got It sẽ dành tặng bạn 4 quyển sách Python tiếng Việt cực kỳ hữu ích ngay trong bài viết này! Cùng khám phá nhé! Mục lụcPython cơ bản… Rất là cơ bản – Võ Tuấn DuyTớ Học […]
4 khóa học lập trình hướng đối tượng miễn phí cho người mới

4 khóa học lập trình hướng đối tượng miễn phí cho người mới

Nếu bạn muốn theo nghề IT thì sớm muộn cũng phải học lập trình hướng đối tượng. Đây là một kiến thức cơ bản, bắt buộc phải biết. Bài viết sẽ chia sẻ với bạn 4 khóa học miễn phí, phù hợp với người mới bắt đầu. Mục lục1. Học lập trình hướng đối tượng […]