Nội dung bài viết
Video học lập trình mỗi ngày
Đảm bảo những ai đang và đã tìm hiểu về elasticsearch
chắc chắn đã từng nghe về kibana
. Nhưng nghe rồi, có tìm hiểu không hay nghe rồi cho qua thì đó làm một vấn đề. Hôm nay, chúng ta đi qua một chút về khái niệm này, ngoài ra làm sáng tỏ vì sao hai thằng elasticsearch
và kibana
lại đi song song với nhau.
Xem thêm: Hướng dẫn install elasticsearch và kibana sử dụng docker compose
ELK Stack là gì?
Chúng ta nói nhanh thôi, ELK Stack chính là viết tắt của 3 thằng sau:
- E = Elasticsearch
- L = Logstash
- K = Kibana
Chúng là những components/application mã nguồn mở được tập hợp lại thành một hệ sinh thái, và hệ sinh thái đó được gọi là ELK Stack. OK, đến đây chúng ta sẽ có những câu hỏi sau:
- Vì sao hệ sinh thái ELK Stack đó quan trọng đối với bất kỳ lập trình hay thiết kế hệ thống
- ELK Stack lại trở nên nổi tiếng trong ngành công nghiệp phần mềm ngày nay.
Nhiệm vụ chúng ta đi trả lời hai câu hỏi đó, nếu tìm hiểu rõ thì, chúng ta sẽ biết được mình đang cần gì, và có nên sử dụng chúng vào đúng mục đích của mình hay không? Giờ chúng ta đi tìm hiểu từng thằng nó như thế nào.
Elasticsearch là gì?
Đi thứ tự từ E
đến L
đến K
...
Đầu tiên là tìm hiểu Elasticsearch , xem nó là gì mà mấy ông quảng cáo thấy ớn. Nói vậy thôi, dân anh chị giang hồ làm sao mà không biết đến elasticsearch
này.
Elasticsearch là quan trọng nhất hay nói cách khác là trái tim trong hệ sinh thái ELK Stack. Elasticsearch có thể dùng để lưu trữ một dữ liệu lớn và một công cụ mạnh mẽ giúp truy vấn dữ liệu đó nhanh hơn nhiều lần so với các công cụ tương tự.
Điều này đã được tôi tìm hiểu kỹ và ghi lại về mô hình, đặc điểm, và cách cài đặt elasticsearch ở đó các bạn sẽ nắm được nhiều thông tin cụ thể hơn.
Nhiệm vụ chính của elasticsearch
:
- Chính là bạn có thể sử dụng nó để lưu trữ dữ liệu và truy vấn dữ liệu một cách mạnh mẽ.
elasticsearch
có thể làm tốt cho việc lưu trữ một dữ liệu lớn cũng ok và rất tốt. - Bạn có thể viết các truy vấn tìm kiếm trên dữ liệu này bằng REST Api, một cách nhanh chóng...
Thực tế tôi đã sử dụng redis
làm cache, và elasticsearch
dùng để làm service lưu logs bên hạ tầng bên tôi. Nó thật tuyệt vời hơn bất cứ những gì bạn đi tìm kiếm. Cá luôn.. Vậy thôi, nói nhè nhẹ, muốn tìm hiểu kỹ để vượt qua phỏng vấn về back-end thì phải biết về mô hình, đặc điểm, và cách cài đặt elasticsearch đấy. Tiếp nào!
Logstash là gì?
Nếu như ví elasticsearch
như một trái tim thì nói đến logstash
thì tôi sẽ giám khẳng định đó là những ống dẫn máu. Từ từ tôi sẽ nói kỹ, yên tâm vì chưa có bài nào nói về khái niệm Logstash.
Logstash là một component hay application đóng một vai trò quan trọng trong quá trình di chuyển dữ liệu trong hệ sinh thái ELK Stack.
Logstash có 3 nhiệm vụ chính sau đây:
- Ghi dữ liệu: Dùng Logstash đọc dữ liệu từ nhiều nguồn. Nó có thể là file, message queue, database , v.v.
- Chuyển đổi dữ liệu: Logstash cũng có thể giúp chuyển đổi dữ liệu, có thể biến một dữ liệu phi câu trúc thành có cấu trúc để có thể đọc một cách thống nhất và Logstash có nhiều plugin tích hợp giúp chuyển đổi dữ liệu. Plugin quan trọng nhất là
Grok
. Grok là gì? Đọc trên google or có thời gian minh viết tiếp. - Sink logstash: Cuối cùng khi đã nhập và chuyển đổi dữ liệu thống nhất thì nó sẽ được kết xuất hoặc gửi đến một nơi nào đó. Trong hệ sinh thái ELK, logstash đẩy dữ liệu đến Elasticsearch.
OK, quá rõ rồi phải không? Nếu như trong nền tảng của tôi thì dùng elasticsearch
để lưu logs thì ở đây tôi dùng Logstash
để đẩy dữ liệu về cho bên elasticsearch lưu trữ. Tiếp theo là Kibana...
Kibana là gì?
Bạn có thấy ở đây một sự liên quan trong hệ sinh thái ELK Stack. Elasticsearch thì lưu trữ dữ liệu và tìm kiếm, Logstash thì có nhiệm vụ đẩy dữ liệu logs đó về. Vậy tôi đoán phải có một thằng nào đó hiển thị lên, đúng như vậy Kibana làm nhiệm vụ đó.
Kibana là một công cụ cho phép bạn trực quan hóa dữ liệu được lưu trữ trong Elasticsearch. Nó hoạt động như một giao diện cung cấp đồ hoạ, thống kê, lịch sử dữ liệu chuyên nghiệp.
Để hình dung bạn có thể xem qua hình ảnh mà tôi mượn từ google này:
Vì sao ELK stack lại quan trọng?
Cuối cùng, tôi có thể nói rằng ELK Stack
rất quan trọng đối hệ thống lớn có thể được chốt lại dưới hình ảnh mà tôi lượm lặt trên internet javasolutions sau đây:
Đó cũng chính là gói gọn nội dung của bài viết này, một hình ảnh nói lên tất cả.
Xin chào! Và nhớ tìm hiểu về:
Hướng dẫn install elasticsearch và kibana sử dụng docker compose
mô hình, đặc điểm, và cách cài đặt elasticsearch