ELK Elasticsearch Ecosystem
Nền tảng

Nền tảng

Lộ trình nhập môn giúp bạn hiểu Elasticsearch, Elastic Stack, kiến trúc và mô hình dữ liệu trước khi thực hành.

Nhóm Nền tảng là điểm bắt đầu để xây dựng một mô hình tư duy đúng về Elasticsearch và hệ sinh thái Elastic. Bạn sẽ đi từ câu hỏi “Elasticsearch là gì?” đến cách một cluster xử lý dữ liệu, rồi biết khi nào nên chọn Elasticsearch cho bài toán của mình.

Bạn sẽ học gì trong nhóm này?

Đây là learning path gồm 5 bài. Mỗi bài giải thích một lớp khái niệm và chuẩn bị cho bài kế tiếp. Nhóm tập trung vào cách hiểu và ra quyết định, không thay thế các bài hướng dẫn cài đặt hay truy vấn thực hành.

Mục lục

Nhóm Nền tảng dành cho ai?

Nhóm này phù hợp với:

  • Người mới làm quen với Elasticsearch hoặc chuyển từ cơ sở dữ liệu quan hệ sang hệ thống tìm kiếm.
  • Developer, data engineer và DevOps muốn hiểu các thành phần của ELK trước khi triển khai.
  • Người cần đánh giá Elasticsearch cho tìm kiếm ứng dụng, phân tích log hoặc observability (quan sát hệ thống).
  • Thành viên trong đội đã dùng Kibana nhưng muốn nối các thao tác hằng ngày với mô hình hệ thống phía sau.

Bạn không cần biết toàn bộ Elastic Stack trước khi bắt đầu. Điều quan trọng là có một bài toán cụ thể để liên hệ với các khái niệm, chẳng hạn như tìm kiếm sản phẩm theo từ khóa hoặc tra cứu log lỗi trong 24 giờ gần nhất.

Sau nhóm này, bạn có thể

  • Giải thích vai trò của Elasticsearch trong Elastic Stack và phân biệt tên gọi Elastic Stack với ELK.
  • Đọc sơ đồ ở mức khái niệm: cluster gồm các node, request đi vào đâu và dữ liệu được phân phối như thế nào.
  • Phân biệt index, document, field và mapping khi thiết kế dữ liệu.
  • Nhận diện workload phù hợp với Elasticsearch, đồng thời biết những trường hợp nên cân nhắc giải pháp khác.
  • Chọn bài tiếp theo dựa trên mục tiêu: cài đặt local, nạp dữ liệu, viết truy vấn hoặc tìm hiểu triển khai.

Kiến thức tiên quyết

Bạn có thể đọc nhóm này ngay cả khi mới học Elasticsearch. Để theo kịp các ví dụ, nên có những nền tảng sau:

  • HTTP và JSON: biết một request có method, URL, header và body; biết đọc object và array trong JSON. Ví dụ, GET /products/_search là một request tìm kiếm, còn body JSON mô tả điều kiện tìm.
  • Dòng lệnh cơ bản: biết mở terminal, chạy lệnh và đọc log. Kỹ năng này sẽ hữu ích khi chuyển sang các bài cài đặt.
  • Khái niệm dữ liệu: hiểu bản ghi, trường dữ liệu và kiểu dữ liệu ở mức cơ bản. Không cần biết trước thuật ngữ shard hay inverted index.
  • Một bài toán muốn giải: ví dụ tìm sản phẩm, phân tích log web hoặc theo dõi lỗi ứng dụng. Bài toán này giúp bạn đánh giá trade-off (đánh đổi) thay vì học thuật ngữ rời rạc.

Nếu bạn chưa có đủ kiến thức tiên quyết

Hãy bắt đầu bằng ví dụ tìm kiếm sản phẩm. Một document có thể chứa name, category, pricedescription; từ đó bạn sẽ dễ liên hệ với index, field và mapping trong các bài sau.

Lộ trình 5 bài

Hãy đọc theo thứ tự nếu bạn chưa từng làm việc với Elasticsearch. Mỗi bài có thể đứng độc lập khi bạn cần tra cứu nhanh một khái niệm.

1. Elasticsearch là gì?

Bài đầu tiên xây dựng bức tranh tổng quan: Elasticsearch dùng để làm gì, khác với việc lưu trữ dữ liệu thuần túy ra sao và vì sao lập chỉ mục giúp tìm kiếm nhanh hơn. Bạn sẽ có vocabulary (từ vựng) chung trước khi đọc về cluster và dữ liệu.

Đọc Elasticsearch là gì? trước khi đi sâu vào các thành phần của Stack.

2. Elastic Stack và ELK

Bài này đặt Elasticsearch vào đúng hệ sinh thái. Bạn sẽ phân biệt Elastic Stack — tên gọi rộng cho tập hợp sản phẩm — với ELK — cách gọi quen thuộc cho Elasticsearch, Logstash và Kibana — và hiểu vai trò của Beats trong các pipeline thu thập dữ liệu.

Đọc Elastic Stack và ELK để biết dữ liệu thường đi từ nguồn vào hệ thống như thế nào.

3. Kiến trúc Elasticsearch

Sau khi biết các thành phần, bạn cần hiểu cách Elasticsearch vận hành như một hệ thống phân tán. Bài này giới thiệu cluster, node, vai trò xử lý request và đường đi khái niệm của dữ liệu. Mục tiêu là giúp bạn đọc được một sơ đồ kiến trúc trước khi học deployment.

Đọc Kiến trúc Elasticsearch để nối request, node và dữ liệu thành một luồng duy nhất.

4. Mô hình dữ liệu

Bài này chuyển từ “hệ thống chạy thế nào” sang “dữ liệu được tổ chức ra sao”. Bạn sẽ gặp index, document, field và mapping, cùng mối liên hệ giữa kiểu dữ liệu và khả năng tìm kiếm. Đây là nền tảng trực tiếp cho việc index document và viết query.

Đọc Mô hình dữ liệu trước khi tạo dữ liệu thực tế.

5. Use case và lựa chọn giải pháp

Bài cuối cùng giúp bạn kiểm tra mức độ phù hợp. Tìm kiếm toàn văn, log analytics và observability có yêu cầu khác nhau về độ trễ, dung lượng và cách truy vấn. Bài viết đặt Elasticsearch cạnh các lựa chọn khác để bạn bắt đầu bằng yêu cầu, không phải bằng công cụ.

Đọc Use case và lựa chọn giải pháp khi bạn cần xác định Elasticsearch có phải lựa chọn hợp lý cho workload của mình hay không.

Cách dùng nhóm tài liệu

Không nhất thiết phải đọc mọi bài theo cùng một cách. Chọn một trong hai cách dưới đây để giữ mạch học gắn với mục tiêu của bạn.

Đọc theo thứ tự

Dành khoảng một buổi cho cả nhóm và ghi lại một câu trả lời sau mỗi bài:

  1. Elasticsearch giải quyết vấn đề gì?
  2. Những thành phần nào tạo thành luồng dữ liệu?
  3. Một request và dữ liệu đi qua cluster ra sao?
  4. Dữ liệu của mình sẽ được mô hình hóa như thế nào?
  5. Vì sao Elasticsearch phù hợp hoặc chưa phù hợp với use case?

Nếu chưa trả lời được một câu, hãy quay lại bài tương ứng thay vì chuyển ngay sang phần nâng cao. Các bài sau nhóm Bắt đầu sẽ dễ hiểu hơn khi bạn đã trả lời được cả năm câu hỏi.

Học bằng một use case

Chọn một tập dữ liệu nhỏ và giữ nó xuyên suốt learning path. Chẳng hạn, với log ứng dụng, hãy xác định:

  • Nguồn phát sinh log và thành phần có thể thu thập chúng.
  • Trường cần tìm như service.name, log.levelmessage.
  • Người dùng cần xem nhanh lỗi mới nhất hay phân tích xu hướng theo thời gian.
  • Yêu cầu về thời gian phản hồi, thời gian lưu giữ và chi phí vận hành.

Sau mỗi bài, quay lại cùng use case để kiểm tra hiểu biết. Cách này biến một thuật ngữ thành một quyết định cụ thể, ví dụ chọn field nào cần tìm kiếm hoặc xác định có cần pipeline thu thập hay không.

Thuật ngữ nền tảng cần nắm

Bảng dưới đây là bản đồ từ vựng tối thiểu. Các bài con sẽ giải thích chi tiết hơn trong đúng ngữ cảnh, vì vậy bạn không cần ghi nhớ mọi chi tiết ngay từ lần đọc đầu tiên.

Hệ thống và tìm kiếm

Thuật ngữHiểu ngắn gọnCâu hỏi nên tự hỏi
ClusterNhóm một hoặc nhiều node cùng làm việc như một hệ thống Elasticsearch.Nếu một node gặp sự cố, dữ liệu và request còn được phục vụ thế nào?
NodeMột tiến trình Elasticsearch tham gia vào cluster và đảm nhiệm các vai trò nhất định.Node này lưu dữ liệu, xử lý request hay điều phối?
ShardPhân vùng dữ liệu giúp index có thể được phân phối và xử lý song song.Số lượng shard có phù hợp với kích thước và tốc độ tăng dữ liệu không?
Inverted indexCấu trúc lập chỉ mục ánh xạ từ term (từ hoặc token) tới các document chứa term đó.Trường này cần full-text search hay chỉ cần lọc chính xác?
QueryĐiều kiện mô tả dữ liệu cần tìm hoặc cách tính điểm phù hợp.Tôi đang muốn tìm gần đúng, lọc chính xác hay tổng hợp?
AggregationPhép tính tóm tắt dữ liệu, chẳng hạn đếm theo status_code hoặc tính trung bình theo thời gian.Kết quả cần trả về từng document hay một xu hướng tổng hợp?

Dữ liệu và lập chỉ mục

Thuật ngữHiểu ngắn gọnVí dụ
IndexKhông gian logic chứa các document có mục đích hoặc cấu trúc gần nhau.products chứa các document sản phẩm.
DocumentMột đơn vị dữ liệu dạng JSON được Elasticsearch lập chỉ mục.Một sản phẩm với name, pricecategory.
FieldMột thuộc tính bên trong document.price là field số; description là field văn bản.
MappingQuy tắc mô tả cách Elasticsearch hiểu và lập chỉ mục từng field.Khai báo pricedoublecreated_atdate.
AnalyzerChuỗi xử lý văn bản khi index hoặc tìm kiếm, thường gồm tách token và chuẩn hóa.Tách câu “giày chạy bộ” thành các term để tìm kiếm toàn văn.
Document IDĐịnh danh của một document trong index.products/_doc/p-1001 xác định một sản phẩm cụ thể.

Đừng đồng nhất index với bảng SQL

Index và bảng đều là nơi tổ chức dữ liệu, nhưng cách thiết kế và cách truy vấn khác nhau. Hãy đọc về mapping, shard và analyzer trước khi bê nguyên mô hình quan hệ sang Elasticsearch.

Next steps

Sau khi hoàn tất nhóm Nền tảng, hãy chọn hướng đi theo mục tiêu:

  • Muốn tự tay chạy hệ thống: chuyển sang nhóm Bắt đầu, bắt đầu với cài đặt Docker Compose hoặc native.
  • Muốn gửi request và xem kết quả: học Kibana Dev Tools, sau đó làm index document đầu tiên.
  • Muốn luyện truy vấn: tiếp tục với truy vấn đầu tiên và dùng sample data để có dữ liệu nhất quán.
  • Muốn triển khai thật: đọc nhóm Deployment, bắt đầu từ topology và các yêu cầu về high availability.
  • Muốn làm việc với log hoặc observability: chuyển sang nhóm Observability và Security sau khi đã nắm pipeline và mô hình dữ liệu.

Mốc hoàn thành

Bạn đã sẵn sàng đi tiếp khi có thể vẽ bằng vài ô đơn giản luồng nguồn dữ liệu → thành phần thu thập → Elasticsearch → Kibana, mô tả document mẫu của mình và giải thích vì sao workload đó cần tìm kiếm, lọc hay aggregation.

On this page