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.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
February 09, 2021
Share this post to:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
CS Foundation 101 (P2): Nguồn tài liệu tham khảo CS Foundation hay nhất

CS Foundation 101 (P2): Nguồn tài liệu tham khảo CS Foundation hay nhất

Thống kê cho thấy, tuy kiến thức nền tảng ngành Computer Science (CS Foundation) thường được dạy trong các tín chỉ tại các trường Đại học, Cao đẳng, nhưng có đến hơn 90% ứng viên đã từng “fail” Got It vì chưa nắm chắc CS Foundation. Nguyên nhân lớn nhất được các Engineer của Got […]
Hướng dẫn cách sử dụng Visual Studio Code căn bản

Hướng dẫn cách sử dụng Visual Studio Code căn bản

Nhanh, gọn nhẹ, đa năng và hoạt động mạnh mẽ trên đa nền tảng là những ưu điểm nổi trội của trình soạn thảo VS Code. Cách sử dụng Visual Studio Code cơ bản sẽ được hướng dẫn cụ thể trong bài viết dưới đây. Mục lụcVisual Studio Code là gì và dành cho ai?Phiên […]
Visual Studio Code là gì? Lợi thế từ việc sử dụng Visual Studio Code

Visual Studio Code là gì? Lợi thế từ việc sử dụng Visual Studio Code

Visual Studio Code là gì mà khiến cộng đồng IT Việt yêu thích đến vậy? Trình soạn thảo code này sẽ giúp bạn xây dựng ứng dụng web và cloud như thế nào? Hãy cùng Got It tìm hiểu Visual Studio Code ngay hôm nay nhé! Mục lục1. Visual Studio Code là gì?2. Phân biệt […]
Hướng dẫn cách format code Visual Studio Code với Prettier

Hướng dẫn cách format code Visual Studio Code với Prettier

Việc định dạng mã sao cho thống nhất là một thử thách khó khăn đối với đa phần lập trình viên. Prettier chính là công cụ format code của Visual Studio Code giúp bạn duy trì sự nhất quán trong toàn bộ cơ sở mã của nhóm. Cùng tìm hiểu cách dùng Prettier để format […]
Cách sử dụng phím tắt sắp xếp code trong Visual Studio Code

Cách sử dụng phím tắt sắp xếp code trong Visual Studio Code

Chỉ với một vài thao tác đơn giản với phím tắt sắp xếp code trong Visual Studio Code, bạn đã có thể tạo ra một đoạn mã đẹp mắt, ngay ngắn và dễ đọc. Cùng tìm hiểu về cách sử dụng phím tắt này và khám phá thêm một vài phím tắt hữu ích khách […]
IDE là gì? Bạn đã biết 6 loại IDE này?

IDE là gì? Bạn đã biết 6 loại IDE này?

IDE là gì hẳn là một câu hỏi mà bất cứ ai từng theo đuổi lập trình cũng từng thắc mắc. Hôm nay, hãy cùng Got It tìm hiểu ngay định nghĩa IDE và 6 loại IDE phổ biến nhất mà bạn nên biết trong bài viết sau nhé! Mục lục1. IDE là gì?2. Các […]