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 và logging là gì?

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 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ả.
ELK Stack được nhiều công ty lớn lựa chọn vì sao?

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
Tổng quan về Prompt Engineering

Tổng quan về Prompt Engineering

Tác giả: Công Anh (Software Engineer | Got It AI) Trong tech blog số này, Got It sẽ cùng bạn tìm hiểu về Prompt Engineering cũng như một số kỹ thuật cơ bản giúp đầu ra của Large Language Models (LLMs) tối ưu nhất có thể! Mục lụcChatGPT là gì? Hoạt động như thế nào?Prompt […]
Top 3 bộ phim về trí tuệ nhân tạo hay  nhất bạn không nên bỏ lỡ (Phần 2)

Top 3 bộ phim về trí tuệ nhân tạo hay nhất bạn không nên bỏ lỡ (Phần 2)

Trí tuệ nhân tạo đã trở thành một chủ đề hấp dẫn trong ngành điện ảnh, mang đến cho khán giả những câu chuyện đầy cảm xúc và suy ngẫm về tương lai của con người và công nghệ. Dưới đây là danh sách Top 3 phim về trí tuệ nhân tạo không nên bỏ […]
Các bước tạo một thư viện Python

Các bước tạo một thư viện Python

Tác giả: Minh (Software Engineer | CAI) Trong Tech Blog số này, Got It sẽ cùng bạn tìm hiểu về 6 bước để tạo và phân phối một thư viện Python. Cụ thể, chúng ta sẽ viết một CLI command tương tự cowsay cùng với một function để các package khác có thể import và […]
GPT là gì? Các ứng dụng của GPT trong thực tế

GPT là gì? Các ứng dụng của GPT trong thực tế

Trong lĩnh vực Trí tuệ Nhân tạo, GPT (Generative Pre-trained Transformer) đã nhanh chóng trở thành một khái niệm quan trọng và đột phá. Trong bài viết này, chúng ta sẽ khám phá GPT là gì, cách nó hoạt động, và những ứng dụng tuyệt vời mà nó mang lại trong lĩnh vực công nghệ. […]
Phân biệt trí tuệ nhân tạo và học máy

Phân biệt trí tuệ nhân tạo và học máy

Trong thời đại số hóa hiện nay, trí tuệ nhân tạo (AI) và học máy (Machine Learning) đang trở thành hai thuật ngữ phổ biến trong lĩnh vực công nghệ. Mặc dù có sự tương đồng, nhưng chúng không phải là hai khái niệm hoàn toàn tương đương. Bài viết này sẽ giúp bạn hiểu […]
Sử dụng pre-commit để thực thi PEP8 chỉ trong 3 bước

Sử dụng pre-commit để thực thi PEP8 chỉ trong 3 bước

Tác giả: Kiên (Software Engineer | CAI) Đảm bảo code tuân thủ đầy đủ các quy tắc được đề xuất trong PEP8 là một điều vô cùng quan trọng, đặc biệt là trong làm việc nhóm, khi mà yếu tố dễ đọc, dễ hiểu, và dễ bảo trì code được đặt lên hàng đầu. Dẫu […]