I. Giới thiệu chung
1. Tổng quan
Logging
Logging là một phần không thể thiếu trong bất kì hệ thống nào, nó giúp người dùng 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,....
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ì người dùng có rất nhiều servers tương ứng với rất nhiều file logs.
Đó là lý do mà ELK stack ra đời.
Lịch sử hình thành
Lịch sử hình thành của ELK Log bắt đầu vào năm 2010 khi Florian Leibert, Florian Dörfler và Simon Eisenmann, những nhà phát triển tại Elasticsearch, bắt đầu phát triển dự án mã nguồn mở "Logstash" để thu thập và phân tích nhật ký hệ thống. Dự án này nhanh chóng trở nên phổ biến trong cộng đồng phát triển phần mềm. Năm 2012, Elasticsearch, Inc. được thành lập để hỗ trợ sự phát triển của Logstash và các dự án mã nguồn mở khác của Elasticsearch. Công ty phát hành phiên bản mới của Logstash vào năm 2013, bổ sung nhiều tính năng mới như khả năng thu thập nhật ký từ các nguồn khác nhau và phân tích nhật ký theo thời gian thực.
Năm 2015, Elasticsearch, Inc. phát hành Elasticsearch, công cụ tìm kiếm phân tán thiết kế để lưu trữ và phân tích dữ liệu nhật ký từ Logstash và các nguồn khác như ứng dụng web và cơ sở dữ liệu.
Năm 2016, Elasticsearch, Inc. phát hành Kibana, công cụ giao diện người dùng cho phép trực quan hóa và phân tích dữ liệu nhật ký. Kibana tạo biểu đồ, bảng và bản đồ từ dữ liệu nhật ký.
Vào đầu năm 2021, Elastic tuyên bố ELK Stack sẽ không còn là mã nguồn mở từ phiên bản 7.11. Công ty áp dụng hai giấy phép độc quyền SSPL và Elastic license cho các dự án liên quan đến ELK.
Kể từ đó, ELK Stack trở thành giải pháp phổ biến để thu thập, phân tích và trực quan hóa dữ liệu nhật ký, được sử dụng rộng rãi để giám sát hiệu suất hệ thống, phát hiện sự cố và cải thiện bảo mật.
2. ELK Stack là gì?
Rất đơn giản thôi là viết tắt của 3 từ Elasticsearch, Logstash, Kibana và gộp lại thành một bộ công cụ dùng để thu thập, xử lý, hiển thị dữ liệu trực quan.
ELK Stack, hay còn gọi là Elastic Stack, là một bộ sản phẩm mã nguồn mở bao gồm bốn thành phần chính: Elasticsearch, Logstash, Kibana và Beats, được phát triển và duy trì bởi Elastic.
Elasticsearch: Hệ thống tìm kiếm và phân tích văn bản đầy đủ, dựa trên công cụ tìm kiếm mã nguồn mở Apache Lucene.
Logstash: Trình thu thập log tổng hợp dữ liệu từ nhiều nguồn đầu vào khác nhau, thực hiện các biến đổi và chuyển dữ liệu đến các điểm đích đầu ra được hỗ trợ. Mặc dù nhiều triển khai hiện đại của ELK không sử dụng Logstash, thay vào đó chuyển sang các giải pháp như Fluentd.
Kibana: Lớp trình diện hóa làm việc trực tiếp trên Elasticsearch, cung cấp khả năng phân tích và hiển thị dữ liệu cho người dùng.
Beats: Các ứng dụng nhỏ và hiệu quả được cài đặt trực tiếp trên máy chủ hoặc thiết bị để thu thập và chuyển tiếp các loại dữ liệu khác nhau vào ELK Stack.
Những thành phần này thường được sử dụng để theo dõi, khắc phục sự cố và bảo mật môi trường IT. Beats và Logstash đảm nhận việc thu thập và xử lý dữ liệu, Elasticsearch lập chỉ mục và lưu trữ dữ liệu, và Kibana cung cấp giao diện người dùng để truy vấn và hiển thị dữ liệu.
Trong phần tiếp theo, ta sẽ tìm hiểu từng chức năng của ELK stack.
Chúc mừng năm mới đến toàn thể dân IT! Mong rằng năm mới sẽ đem lại cơ hội mới, thành công và niềm vui trong công việc. Hãy tiếp tục nỗ lực và sáng tạo để đạt được những mục tiêu mới. Chúc mọi người một năm mới tràn đầy hạnh phúc và thành công!``