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é!
Mục lục
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.
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:
- 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ó
- 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.
- 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ý.
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ả.
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é!