0

[Elasticsearch] Elastic Stack

Nếu bạn từng nghe đến thuật ngữ ELK Stack và tự hỏi nó là gì, thì phần này sẽ giúp bạn tìm ra câu trả lời. ELK thực chất là một bộ sản phẩm bao gồm:

  • Elasticsearch – Search & Analytics Engine
  • Logstash – Data Processing Pipeline
  • Kibana – Data Visualization

Gần đây, với sự bổ sung của Beats, một thành viên mới trong hệ sinh thái này, ELK thường được gọi là Elastic Stack.


Các Thành Phần Chính Trong Elastic Stack

Elasticsearch – Trái tim của hệ sinh thái, chịu trách nhiệm lưu trữ, tìm kiếm và phân tích dữ liệu.

Kibana – Công cụ trực quan hóa giúp bạn tạo biểu đồ, dashboard và truy vấn dữ liệu trong Elasticsearch. Nó giúp bạn trả lời các câu hỏi quan trọng như:

  • Vì sao hệ thống bị lỗi lúc 2 giờ sáng?
  • Biến động thời tiết có ảnh hưởng đến doanh thu quý này không?

Logstash – Một pipeline xử lý dữ liệu server-side, giúp thu thập, chuyển đổi và gửi dữ liệu đến Elasticsearch hoặc các hệ thống khác.

Beats – Một bộ sưu tập các lightweight agents thu thập dữ liệu từ các nguồn khác nhau và gửi đến Logstash hoặc trực tiếp đến Elasticsearch.


Tại Sao Elastic Stack Quan Trọng?

Một trong những ứng dụng quan trọng nhất của Elastic Stack là thu thập và phân tích log data.

Giả sử bạn có hàng trăm hoặc hàng nghìn microservices đang chạy. Việc giám sát log từ từng service riêng lẻ là cực kỳ khó khăn. Nhưng với Elastic Stack, bạn có thể:
Tập trung hóa tất cả logs vào Elasticsearch.
Truy vấn logs bằng Elasticsearch Query DSL.
Tạo dashboard trực quan với Kibana để theo dõi hệ thống.
Phân tích dữ liệu log theo thời gian thực.


Cấu Hình Logstash Để Nhận Log Từ Ứng Dụng Spring Boot

Trước tiên, chúng ta cần thiết lập Logstash để nhận log từ ứng dụng của mình.

Tạo một tệp cấu hình logstash.conf:

input {
  tcp {
    port => 7760
  }
}

output {
  elasticsearch {
    hosts => [ "localhost:9200" ]
  }
}

Cấu hình trên thiết lập một TCP socket listener để nhận log và chuyển tiếp trực tiếp vào Elasticsearch.


Gửi Log Từ Spring Boot Đến Logstash

Để gửi log từ ứng dụng Spring Boot, chúng ta có thể sử dụng Logback encoder.

Thêm dependency vào pom.xml:

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>4.9</version>
</dependency>

Sau đó, chỉnh sửa logback.xml để sử dụng Logstash appender:

<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>localhost:7760</destination>
    <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>

Truy Cập Kibana Để Xem Log

Sau khi cài đặt Kibana, bạn có thể mở giao diện web tại http://localhost:5601 để xem logs, tạo dashboard, và phân tích dữ liệu từ Elasticsearch.


Kết Luận

  • Elastic Stack là một bộ công cụ mạnh mẽ để thu thập, phân tích và trực quan hóa dữ liệu.
  • Elasticsearch cung cấp khả năng tìm kiếm mạnh mẽ.
  • Logstash giúp xử lý và nhập dữ liệu từ nhiều nguồn khác nhau.
  • Kibana giúp trực quan hóa dữ liệu một cách dễ dàng.

Nếu bạn đã sử dụng Elasticsearch, thì Elastic Stack mở ra một loạt cơ hội mới để tận dụng tối đa dữ liệu của bạn! 🚀


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí