Tải bản đầy đủ (.docx) (59 trang)

XÂY DỰNG HỆ THỐNG PHÁT HIỆN VÀ DỰ ĐOÁN TẤN CÔNG SỬ DỤNG PHƯƠNG PHÁP HỌC MÁY

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.73 MB, 59 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TPHCM
KHOA CƠNG NGHỆ THƠNG TIN

KHĨA LUẬN TỐT NGHIỆP
ĐỀ TÀI: XÂY DỰNG HỆ THỐNG PHÁT HIỆN
VÀ DỰ ĐỐN TẤN CƠNG SỬ DỤNG
PHƯƠNG PHÁP HỌC MÁY
Giảng viên hướng dẫn: Ts Vũ Đức Thịnh
Sinh viên thực hiện:
1. 2001181325 – Trần Thị Ngọc Thảo
2. 2033181011 – Trần Thị Hoàng Dung
3. 2033181017 – Đỗ Thị Duyên

TP. Hồ Chí Minh, tháng 12 năm 2021


BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TPHCM
KHOA CƠNG NGHỆ THƠNG TIN

KHĨA LUẬN TỐT NGHIỆP
ĐỀ TÀI: XÂY DỰNG HỆ THỐNG PHÁT HIỆN
VÀ DỰ ĐỐN TẤN CƠNG SỬ DỤNG
PHƯƠNG PHÁP HỌC MÁY
Giảng viên hướng dẫn: Ts Vũ Đức Thịnh
Sinh viên thực hiện:
1. 2001181325 – Trần Thị Ngọc Thảo
2. 2033181011 – Trần Thị Hoàng Dung
3. 2033181017 – Đỗ Thị Duyên


TP. Hồ Chí Minh, tháng 12 năm 2021


LỜI CAM ĐOAN
Chúng em xin cam đoan toàn bộ quá trình nghiên cứu khóa luận là của riêng
chúng em. Các số liệu, kết quả trong luận văn của chúng em tự tìm hiểu có được khơng
sao chép từ các nguồn đảm bảo trung thực.
Chúng em xin cam đoan mọi sự trợ giúp trong q trình hồn thành luận văn này
đã được chúng em gửi lời cảm ơn và các thông tin trích dẫn trong bài Luận văn đã được
ghi gõ nguồn gốc.

Sinh viên 1

Sinh viên 2

Sinh viên 3

Trần Thị Ngọc Thảo

Trần Thị Hoàng Dung

Đỗ Thị Duyên


LỜI CẢM ƠN
Trong q trình thực hiện và hồn thành khóa luận, chúng em nhận được nhiều sự
giúp đỡ, đóng góp ý kiến và sự chỉ bảo nhiệt tình của thầy cơ, gia đình cũng như bạn bè.
Chúng em xin gửi lời cảm ơn chân thành nhất đến giảng viên hướng dẫn thầy Vũ Đức
Thịnh, giảng viên Bộ môn Mạng máy tính người đã hướng dẫn tận tình và chỉ bảo em
trong suốt q trình làm khóa luận.

Chúng em cũng xin chân thành gửi lời cảm ơn các thầy cô trong Khoa Công nghệ
thông tin dạy cho chúng em kiến thức các mơn chun ngành, giúp đỡ chúng em có được
cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ chúng em trong suốt quá trình học
tập.
Mặc dù chúng em đã cố gắng hoàn thành đề tài trong phạm vi và khả năng có thể của bản
thân. Nhưng trong q trình thực hiện đề tài sẽ khơng tránh khỏi những thiếu sót. Chúng
em rất mong nhận được sự cảm thông từ các quý thầy cô.
Cuối cùng, chúng em xin chân thành gửi lời cảm ơn đến gia đình và bạn bè đã
luôn tạo điều kiện, quan tâm, giúp đỡ, động viên em trong quá trình học tập cũng như
hồn thành khóa luận này.


LỜI MỞ ĐẦU
Phát hiện bất thường là một bước trong khai thác dữ liệu nhằm xác định các điểm
dữ liệu, sự kiện hoặc quan sát khác với hành vi bình thường của tập dữ liệu. Dữ liệu bất
thường có thể chỉ ra các sự cố nghiêm trọng, chẳng hạn như trục trặc kỹ thuật, như sự
thay đổi hành vi trong quá trình sử dụng của người tiêu dùng. Máy học đang dần được sử
dụng để tự động hoá việc phát hiện bất thường.
Phát hiện bất thường (Anomaly Dection) đã được chứng minh là phương pháp có
giá trị trong nhiều lĩnh vực khác nhau như kinh tế, y tế, xâm nhập mạng…. Trong luận
văn này, xây dựng một giải pháp phát hiện, dự đốn tấn cơng các phần mềm ứng dụng
dùng chung tại Trung tâm Tích hợp dữ liệu bằng theo phương pháp học không giám sát
(sử dụng đường cơ sở hành vi bình thường – Baselines Normal Behavior), phát hiện bất
thường (Detection Abnormal). Dựa trên bộ công cụ Elastic Stack (Beat, Logstash, Elastic
Search, Kibana) để thu thập và xử lý dữ liệu từ log ứng dụng, tạo các véc tơ đặc trưng và
sau đó áp dụng thuật tốn PCA để phát hiện những điểm bất thường trong dữ liệu log.


MỤC LỤC



DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Tiếng anh

Từ viết tắt

DR

Dimensionality Reduction

PCA

Principal component analysis

PC
IP
I/O
JSON

Principal component
Internet Protocol
Input/Output
JavaScript Object Notation

SMTP

Simple Mail Transfer Protocol

MTA


Mail Transport Agent

qmgr

Postfix queue manager

ELK

Elasticsearch,

Logstash,

Kibana

ETL

extract, transform and load

AI
URL

Artificial intelligence
Uniform Resource Locator

MPP

Massive Parallel Processing

Tiếng Việt
Giảm kích thước

Phân tích thành phần
chính
Thành phần chính
giao thức Internet
Đầu vào/đầu ra
JSON
Giao thức chuyển thư
đơn giản
Đại lý vận chuyển thư
Trình quản lý hàng
đợi Postfix
and Elasticsearch,
Logstash và Kibana
giải nén, biến đổi và
tải
Trí tuệ nhân tạo
URL
Xử lý song song hàng
loạt

DANH MỤC CÁC HÌNH VẼ


8

CHƯƠNG 1

GIỚI THIỆU TỔNG QUAN ĐỀ TÀI VÀ CÔNG NGHỆ
LỰA CHỌN
1.1.


Một số khái niệm

Sau đây là một số khái niệm liên quan đến hệ thống phần mềm:
a. Sự kiện (Event)
Có thể hiểu nó là sự thay đổi trong q trình hệ thống hoạt động. Sự kiện đó có thể
là những hoạt động thơng thường hằng ngày hoặc bất bình thường trong quá trình vận
hành hệ thống.
b. Data log event
Event log là một file “clear text” ghi lại những sự việc xảy ra trong hệ điều hành,
các dịch vụ triển khai trên hệ thống hoặc chứa những thơng tin về thói quen sử dụng, …
Data log lưu lại những hoạt động của ta ở hiện tại và kể cả ở quá khứ của hệ thống phần
mềm, giúp chúng ta nắm rõ trạng thái hoạt động, các lỗi xảy ra và vấn đề về bảo mật và
an ninh khi chúng ta sử dụng hệ thống.
c. Sự cố (Incident)
Đây là một sự kiện bất ngờ xảy ra trong quá trình hoạt động của hệ thống phần
mềm, gây gián đoán hoạt động của các services được gọi là sự cố.
1.2.

Mục tiêu, yêu cầu và mô tả nội dung đề tài

1.2.1. Mục tiêu, yêu cầu của đề tài
Tìm hiểu tổng quan về hệ thống phát hiện, dự đốn tấn cơng và xâm nhập bất hợp
pháp vào hệ thống.
Tìm hiểu về các kỹ thuật phát hiện bất thường thông qua một số phương pháp như
thu thập và các kỹ thuật phân tích log, phương pháp học máy (học có giám sát, khơng
giám sát và nửa giám sát).
Tìm hiểu bộ cơng cụ ELK Stack, tìm cách thu thập log từ services và xử lý log sau
đó chúng ta sẽ dùng thuật toán PCA để phát hiện ra các điểm bất thường trong data log.
1.2.2. Mô tả nội dung nghiên cứu

Trong quá trình thực hiện đề tài này, chúng tôi đã triển khai bộ công cụ ELK Stack
để thu thập và phân tích data log của các services. Tìm hiểu về học máy; phát hiện dấu


9
hiệu bất thường bằng cách sử dụng kỹ thuật DR; theo dõi, dự đoán, phát hiện và cảnh báo
các hành vi, điểm, dấu hiệu bất thường trong các file log, traffic vào ra hệ thống, các
hành động xâm nhập trái phép hay các hành động truy cập bình trong quá trình hoạt động
của hệ thống bằng thuật tốn PCA.
1.2.3. Phạm vi đề tài
Đối với phạm vi của đề tài, luận văn tập trung vào giai đoạn phân tích và phát hiện
bất thường trên hệ thống mail postfix, không đi sâu vào các nội dung như: xác định
nguyên nhân, nguồn gốc của bất thường, nhận dạng tấn công cũng như biện pháp ngăn
chặn. Cụ thể, trọng tâm của luận văn là nghiên cứu phương pháp phân tích và phát hiện
bất thường trên hệ thống mail postfix, nghĩa là trên cơ sở các file nhật ký thu thập được
cần có phương pháp xác định nhanh xem những thông số trên file nhật ký đó có phải là
bất thường hay khơng để đưa ra cảnh báo. Đối với quản trị viên hệ thống, đây là nhiệm
vụ quan trọng để sớm nhận biết được có hiện tượng bất thường trong hệ thống hay
khơng, để đưa ra các giải pháp và cảnh báo nhằm hạn chế rủi ro xuống mức thấp nhất có
thể. Ví dụ, quản trị viên hệ thống cần sớm biết có hiện tượng lưu lượng quá tải (dấu hiệu
của tắc nghẽn, tấn công từ chối dịch vụ, tấn công spam …) để kịp thời kiểm soát các
tuyến kết nối bị quá tải lưu lượng.
Việc trước hết là phát hiện kịp thời có hay không là bước quan trọng nhằm giảm
thiểu thiệt hại có thể xảy ra, mang lại ý nghĩa tích cực trong công tác điều tra, khắc phục
sự cố, thực hiện các biện pháp ngăn chặn một cách hệ thống. Luận văn khơng đi sâu vào
phân tích mức độ quan trọng của các thuộc tính dữ liệu mà áp dụng những thuộc tính
chung cho luồng tin đã được đề xuất và nghiên cứu trước đó. Qua phân tích tính ưu việt
của PCA, luận án tập trung vào nghiên cứu, phân tích ưu nhược điểm của các phương
pháp sử dụng PCA điển hình đã được đề xuất tới nay và so sánh kết quả bài toán với học
máy Elastic (Elastic Machine Learning) được cung cấp trong ELK.

1.3.

Công nghệ sử dụng ELK Stack
Hiện nay việc quản lý dữ liệu log tập trung và cảnh báo lỗi tự động được sử dụng

rất phổ biến nên có rất nhiều giải pháp cơng nghệ quản lý log có tính phí và khơng tính
phí, trong số vơ vàn công nghệ ta phải kể đến các giải pháp: Splunk, Graylog và ELK.
Các giải pháp quản lý log tập trung nêu trên được biết đến với các mặt nỗi trội về query,
monitoring, truy vết, phân tích dữ liệu, cảnh báo ngưỡng, …


10
Mỗi giải pháp cơng nghệ điều có tính năng nỗi bật riêng của bản thân mình. Sau
đây là bảng so sánh một số ưu và nhược điểm của ba giải pháp: Splunk, Graylog và ELK.
Tính năng
Bản quyền
Ngơn ngữ
Định dạng
data

ELK Stack

Splunk

Graylog

- Mã nguồn mở.
- Tính phí đắt đỏ
- Tính năng có tính
phí một số cái như:

Watcher,..
Java, Jruby, NodeJS
C++, Python

- Mã nguồn mở.
- Tính năng có một
số cái tính phí.

JSON

GLEF

JSON, CSV, Text

Java

Chỉ cần cài đặt 1 - Graylog
thành phần Splunk - ElasticSearch
Server, dễ cài đặt - MongoDB
và cấu hình.
Nền tảng hỗ Unix, Window, Linux, Linux,Window,
Window, Linux,
trợ
Ubuntu, Solaris
Unix, Solaris
Ubuntu
Định dạng tệp Các loại tệp dữ liệu Hầu như định dạng Các loại tệp dữ liệu
log hỗ trợ.
log như ngnix, http, các tệp như text, log như nginx, http,
database, …

CSV, tệp log, …
database, tomcat, …
Công cụ vận - Apache Kafka.
Kiến trúc pipeline - Apache Kafka.
chuyển dữ
- RabbitMQ.
trong splunk.
- RabbitMQ.
liệu.
- Redis.
Tổng hợp dữ Real-time.
Real-time.
Real-time.
liệu.
Tìm kiếm, phân tích Sử dụng ngơn ngữ Khả năng tìm kiếm cơ
Khả năng tìm mạnh mẽ được tích tìm kiếm tích trong bản.
kiếm.
trong ElasticSearch.
Splunk và áp dụng
Map-Reduce.
Khả năng
Kibana giúp cho ELK Các tính năng được Đơn giản
report,
có khả năng report, tích hợp sẵn trong
monitoring, monitoring mạnh mẽ, Splunk.

trực quan.
Qua quá trình so sánh 3 giải pháp quản lý log tập trung, có thể thấy Splunk khá
Các thành
phần chủ yếu

khi cài đặt

- ElasticSearch.
- Logstash.
- Kibana.

bao quát có thể thấy khá đủ các tính năng 2 giải pháp cịn lại nhưng là phần mềm có phí
rất cao nên chúng em đã khơng sử dụng giải pháp này. Để lựa chọn được công nghệ mã
phù hợp trong 2 giải pháp còn lại là ELK Stack và Graylog, chúng em đã triển khai so
sánh tính năng, ưu và nhược điểm của 2 giải pháp mã nguồn mở này một lần nữa. Trong
-

đó:
Graylog là cơng nghệ mã nguồn mở phát triển dựa trên nhu cầu lưu trữ, quản lý, cảnh báo
và tìm kiếm dữ liệu log đơn thuần. Q trình trích dẫn và tổng hợp dữ liệu log kém hơn


11
so với ELK khơng thể trích dẫn dữ liệu log quá phức tạp, trong ELK có Logstash hỗ trợ
kỹ thuật ETL (Extract, transform, load) khá linh hoạt tùy biến trong từng trường hợp.
Dashboard được thực hiện dễ dàng nhưng khá cục bộ với người sử dụng chỉ sử dụng ở
mức cơ bản, chưa linh hoạt trong việc phân tích dữ liệu, ELK lại làm tốt hơn với giao
-

diện Kibana.
ELK cũng như Graylog là công nghệ mã nguồn mở dùng để quản lý dữ liệu log tập trung.
ELK là giải pháp cơng nghệ khơng chỉ dùng để quản lý log, có thể nói là ELK mở rộng
và sâu hơn so với Graylog ở các phần như thu thập, phân tích, monitoring, … so với

Graylog. ELK được biết đến với 3 thành phần chính:

o ElasticSearch: Truy vấn, lưu trữ và đánh index cho dữ liệu log.
o Logstash: Đồng bộ dữ liệu bằng kỹ thuật ETL, thu thập dữ liệu log.
o Kibana: Dùng để xây dựng biểu đồ, monitoring và phân tích dữ liệu...
ELK lúc đầu sẽ khó tiếp cận và triển hơn Graylog, nhưng linh hoạt nhiều mặt hơn
so với Graylog như về mặt trích dẫn và tổng hợp dữ liệu đặt thù của Logstash linh hoạt
hay khi dựng chart, trừu tượng hóa dữ liệu để phân tích thì Kibana linh hoạt hơn.
Nhưng ở mỗi giải pháp đều có ưu và nhược điểm riêng của nó. Phụ thuộc vào nhu
cầu và định hướng xây dựng quản lý dữ liệu log của doanh nghiệp để đưa ra sự lựa chọn
phù hợp. Sau đây là một vài ưu, nhược điểm của 2 giải pháp ELK và Graylog:
ELK
Mã nguồn mở, rẻ
Hỗ trợ hiều hệ điều hành, loại dữ
liệu khác nhau
Cảnh báo khi có lỗi trong dữ liệu.
Ưu điểm

Nhược điểm

Graylog

Mã nguồn mở, rẻ
Hỗ trợ hiều hệ điều hành, loại dữ
liệu khác nhau
Cảnh báo khi có lỗi trong dữ
liệu.
Logstash hổ trợ kỹ năng ELT thu Thu thập, giám sát data log
thập trích dẫn thơng tin log linh thông dụng với giao diện đồ họa
hoạt, mạnh mẽ.
thân thiện.
Kiểm sốt việc đánh chỉ mục trên

ElasticSearch
Data log khơng chỉ để tìm kiếm,
cảnh báo, truy vết mà có thể phân
tích trừu tượng hóa dữ liệu phức
tạp để tìm được các thơng tin hữu
ích.
Cộng đồng chia sẻ rộng rãi
Triển khai phức tạp u cầu cao Trích dẫn dữ liệu cịn sơ sài,
về kiến thức cầu hình hệ thống.
khơng linh hoạt
Chức năng dựng biểu đồ hạn chế
Data log chỉ phục vụ tìm kiếm,


12
cảnh báo, truy vết. Khơng hợp
phân tích các trường hợp phức
tạp
Cộng đồng chia sẻ cịn hạn chế
Qua q trình tìm hiểu các tính năng, ưu/ nhược điểm, chi phí đối với từng giải
pháp và định hướng ban đầu khi triển khai hệ thống, chúng em quyết định chọn ELK
Stack làm giải pháp cơng nghệ trong q trình triển khai đề tài này.

CHƯƠNG 2

CƠ SỞ LÝ THUYẾT
2.1.

Kỹ thuật phát hiện bất thường


2.1.1. Khái niệm về phát hiện bất thường
Phát hiện sự bất thường (Anomaly Detection) là xác định các sự kiện, mẫu khác
biệt đáng kể so với các hành vi hoặc khn mẫu tiêu chuẩn. Các dị thường trong dữ liệu
cịn được gọi là độ lệch chuẩn, giá trị ngoại lệ, nhiễu, vật lạ, … Trong bối cảnh phát hiện
bất thường mạng/ xâm nhập mạng và phát hiện lạm dụng thì 2 thuật ngữ được sử dụng
phổ biến là bất thường và ngoại lệ. Ví dụ: các hoạt động làm tăng lưu lượng mạng đột
biến thường đáng chú ý, mặc dù một hoạt động tăng đột biến như vậy có thể nằm ngoài
nhiều kỹ thuật phát hiện bất thường truyền thống; một mẫu lưu lượng bất thường trong
một hệ thống mạng máy tính có nghĩa rằng một tin tặc đang tấn công và gửi dữ liệu nhạy
cảm đến một điểm mà không được phép.
2.1.2. Các loại phát hiện bất thường
2.1.2.1. Phương pháp dựa trên dấu hiệu
Dấu hiệu là những đặc trưng khi hệ thống bị viruss, tấn công, xâm nhập trái
phép, … đã được thống kê được trong quá trình hệ thống vận hành và được lưu lại. Hệ
thống sẽ triển khai so sánh giữa các dữ liệu đã thu thập với các dấu hiệu khi phát hiện
xâm nhập được lưu trữ trong database của hệ thống xét xem hành động đang được diễn ra
đó là an tồn hay khơng an tồn. Ví dụ phát hiện xâm nhập dựa vào dấu hiệu: check log
thấy 1 user đang cố gắng telnet vào hệ thống bằng user “root”, nhập sai quá nhiều lần vi
phạm rule đã setup trong hệ thống; cẩn thận với các thư điện tử khơng rõ nguồn mà có
đính kèm các file .exe, .pif, .application, .gadget, … có thể chứa mã độc.


13
Kỹ thuật này đơn giản hiệu quả trong các trường hợp đã từng gặp các mối đe
dọa và được lưu trữ trong database nhưng không hiệu trong những trường hợp chưa gặp
phải bao giờ. Đây cũng là mặt hạn chế của phương pháp này, nên rất ít dùng trong mơ
hình mạng lớn hay giao thức ứng dụng vì khơng thể theo dõi bao quát hết các thành phần
có trong hệ thống có độ tin cậy thấp.
2.1.2.2. Phát hiện dựa vào sự bất thường
Kỹ thuật phát hiện dựa vào bất thường là q trình tổng hợp các hành động

thơng thường trong một khoảng thời gian từ nhiều đối tượng như users, server, kết nối
mạng hay services tạo thành hồ sơ thông tin để miêu tả hành động bình thường sau đó so
sánh với các sự kiện diễn ra trên hệ thống rồi mới phát hiện ra bình thường hay bất
thường. Phương pháp này có độ chính xác cao khi một hệ thống phát hiện bất thường
được setup trong hệ thống mạng có thời gian vận hành dài để triển khai phân tích hoặc
học tất cả các hành động bình thường của hệ thống.
2.1.2.3. Phương pháp phát hiện dựa trên mơ hình
Phương pháp phát hiện dựa trên mơ hình áp dụng các kĩ thuật, phương pháp
học máy; trí tuệ nhận tạo; mơ hình sử dụng các thuật tốn để phát hiện ra các thời điểm
bình thường hay bất bình thường, triển khai rules phát hiện tấn công một cách tự động từ
database mô phỏng. Phương pháp này được sử dụng rộng rãi trong các hệ thống dự đoán,
phát hiện các cuộc tấn công hay xâm nhập trái phép kể cả cũ hay mới tuy nhiên nhiều lúc
nó có thể đưa ra các cảnh báo nhầm so với hai phương pháp trên.
2.1.2.4. Kỹ thuật phát hiện dựa vào phân tích trạng thái giao thức
Hiện nay, các Attacker thông qua các giao thức mạng để tấn công hay xâm
nhập bất hợp pháp vào hệ thống. Mỗi giao thức điều có cấu trúc, cách hoạt động riêng
biệt của mình, kỹ thuật phát hiện dựa vào phân tích trạng thái giao thức là q trình hoạt
động của các giao thức, sử dụng các dữ liệu hoạt động hợp lệ của giao thức có sẵn trong
hệ thống để xem xét có hành vi tấn cơng đang xảy ra hay không. Hạn chế của phương
pháp này tập trung dữ liệu, bởi vì phải phân tích và thực hiện giám sát trạng thái hoạt
động cho nhiều phiên làm việc cùng lúc; còn một vấn đề nữa là phương pháp này khơng
thể phát hiện các cuộc tấn cơng có dấu hiệu đặt trưng như các phương pháp trên bởi vì
giao thức thừa nhận đậy là các hành vi thông thường, ví dụ: thực hiện lập đi lập lại hành
động bình thường nhiều lần trong một khoảng thời gian ngắn như tấn công từ chối dịch


14
vụ. Mặc khác có thể xảy ra xung đột giữa giao thức hệ thống và giao thức hiện có trong
mạng.
2.2.


Log và kỹ thuật phân tích log

2.2.1. Khái niệm Log
Log (nhật ký) ghi lại những sự kiện xảy ra trên một thiết bị phần cứng, các hệ
điều hành, các dịch vụ triển khai trên hệ thống hoặc chứa thơng tin thói quen sử dụng của
người dùng, … Ví dụ: log của các thiết bị firewall, router, hệ điều hành linux, hệ điều
hành window, web mail, database, …
Log lưu dưới dạng tệp văn bản rõ ràng ta có thể dễ dàng đọc được. Các log nói
cho ta bất cứ điều gì ta cần biết, dễ dàng tìm ra nguyên nhân gốc rễ của vấn đề. Giúp cho
q trình dự đốn, phát hiện và khắc phục sự cố trở nên nhanh hơn trong hệ thống.
Cấu trúc của log thường có định dạng chung là thời gian và dữ liệu. Dữ liệu
chứa các thông tin cơ bản gồm: địa chỉ IP (Internet Protocol) của nguồn và đích, cổng
(port), giao thức, … Ví dụ một người dùng đăng nhập vào hệ thống là một hành động ghi
lại nhật ký try cập, Virus (mã độc) hoặc spam mail có hành động phát tán gói tin bất
thường trong hệ thống là hành động được ghi lại nhật ký kết nối, hiệu suất hoạt động của
máy chủ, … tiến trình của cả hệ thống hoặc của dịch vụ được triển khai trên hệ thống.
2.2.2. Thu thập dữ liệu log
Thu thập dữ liệu log là quá trình lấy các thơng tin liên quan đến tình trạng hoạt
động của hệ thống, thiết bị mạng, … đây là bước đầu tiên trong q trình xử lý và phân
tích dữ liệu. Bình thường các hệ thống hoạt động trên những nền tảng khác nhau nên log
thu được cũng ở những dạng khác nhau. Mơ hình quản lý log tập trung là phương pháp
giải quyết cho vấn đề này, log sẽ được đưa về một trung tâm để phân tích và xử lý (ELK).
2.2.3. Phân tích hiệu suất (Performance Analysis)
Q trình phân tích logs hiệu suất và cảnh báo logs hiệu suất được coi là bản
ghi logs đối với System Monitor. Bằng cách sử dụng logs hiệu suất, ta có thể ghi lại
thơng tin hiệu suất trong thời gian thực và lưu trữ trong nhật ký để có thể phân tích sau
này. Cảnh báo hiệu suất có thể được sử dụng để thơng báo cho người dùng khi các sự
kiện nhất định xảy ra hoặc khi đạt đến ngưỡng hiệu suất nhất định. Ví dụ: bạn có thể định
cấu hình cảnh báo hiệu suất cho bạn biết khi nào ổ C sắp hết dung lượng trống hoặc đơn

vị xử lý trung tâm (CPU) đang hoạt động với 95% dung lượng trở lên. Người quản trị có
thể thơng qua các thơng tin logs này để tối ưu hóa hành vi hệ thống.


15
2.2.4. Phân tích bảo mật (Security Analysis)
Thói quen sử dụng của người dùng hệ thống và ứng dụng điều sẽ được ghi
dưới dạng log event. Hữu ích trong việc theo dõi hành vi của người dùng từ những hành
động bất ngờ, tấn công độc hài hoặc lạm dụng ứng dụng nào có thể phát hiện sớm.
Nhưng nếu ta ghi lại log event cho tất cả các hệ thống và ứng dụng này có thể tạo ra một
lượng lớn dữ liệu và tài nguyên đáng kể cần thiết để xử lý nhật ký một cách hiệu quả.
Chúng ta nên xác định log quan trọng nhất để giám sát và tận dụng các phương pháp
phân tích nhật ký tự động hoặc dựa trên phần mềm để tiết kiệm thời gian và tài nguyên.
2.2.5. Phân tích lưu lượng (Traffic Analysis)
Lượng traffic tăng đột biến làm cho hệ thống hoặc dịch vụ chậm đi hoặc bị
down. Đây là vấn đề quan trọng trong các hệ thống mang, ta nên quan sát và tìm cách hạn
chế lượng traffic gửi về hệ thống quá nhiều gây tràn băng thông làm tê liệt hệ thống.
Thông qua việc giám sát lượng traffic ta có thể biết hệ thống bình thương hay bất bình
thường. Ví dụ: Trong 1 khoảng thời gian ngắn ta thấy 1 lượng yêu cầu lớn gửi về cho hệ
thống đó là hình thức tấn cơng Dos.
2.2.6. Phân tích dự đốn (Predictive Analysis)
Phân tích dự đốn đang là xu hướng trong các ứng dụng học máy rất thích hợp
áp dụng cho các hệ thống hoạt động lâu dài. Một lượng lớn dữ liệu log được thu thập sau
đó ta tiến hành lọc ra các mẫu có đặc điểm giống nhau trong database, hệ thống phân tích
có thể dự đốn dữ liệu trong tương lai cũng có những đặc điểm của mẫu này. Ví dụ: Các
cơng ty bán dịch vụ thơng qua việc phân tích nhu cầu, q trình giao dịch với khách hàng
dự đốn được xu hướng khách hàng tương lai và đưa ra các dòng dản phẩm đáp ứng nhu
cầu cho khách hàng.
2.3.


Giới thiệu tổng quan về phương pháp máy học

2.3.1. Khái niệm máy học
Máy học là một mảng trong ngành trí tuệ nhân tạo (AI) và khoa học máy tính,
tập trung cho việc sử dụng dữ liệu và thuật tốn để mơ phỏng theo cách con người học,
dần dần cải thiện độ chính xác. Ngồi ra, máy học cịn được biết đến là một thành phần
quan trọng của lĩnh vực khoa học dữ liệu đang phát triển. Thông qua việc sử dụng các
phương pháp thống kê, các thuật toán được đào tạo để đưa ra phân loại hoặc dự đoán,
khám phá những hiểu biết quan trọng trong các dự án khai thác dữ liệu. Các thông tin chi


16
tiết giúp thúc đẩy việc đưa ra quyết định trong các ứng dụng và doanh nghiệp, tác động lý
tưởng đến các chỉ số tăng trưởng trong kinh doanh.
2.3.2. Một số khái niệm cơ bản trong máy học
2.3.2.1. Không gian biểu diễn của dữ liệu
Dữ liệu ở dạng nén trong học máy, thoạt nhìn các dữ liệu nén này khơng tạo ra
bất kỳ “khơng gian” nào nhưng đó là sự song song. Ví dụ: Ban đầu dữ liệu hình ảnh có
kích thước 5x5x1, ta setup lại kích thước của khơng gian dữ liệu trong máy học 3 x 1, có
thể hiểu rằng những điểm dữ liệu nén là một vecto có 3 chiều.

Hình 2. 1: Hình ảnh ví dụ dữ liệu ở dạng 5x5x1

Hình 2. 2: Hình ảnh ví dụ 3x1 được nén trong không gian

Các điểm dữ liệu nén sẽ được xác định bằng 3 số như trên, ta có thể biểu
diễn những điểm này trên mặt phẳng 3D.

Hình 2. 3: Hình ảnh điểm (0,4, 0,3, 0,8) được vẽ biểu đồ trong không gian 3D



17
Qua trên ta có thể hình dung được đây là "không gian dữ liệu" đang đề cập
đến. Khi nào vẽ biểu đồ các điểm hoặc nghĩ về các điểm trong khơng gian, ta có thể suy
nghĩ chúng là các điểm tọa độ trong không gian, trong biểu đồ các điểm có dạng gần
giống nhau ở gần nhau trên biểu đồ.
2.3.2.2. Bản chất của dữ liệu
Dữ liệu chính là các chuỗi các ký hiệu, hiểu đơn giản hệ thống lưu lại hành
động cụ thể đã xảy ra. Dataset (Bộ dữ liệu) là tập dữ liệu được dựng thành hai phần
chính: các mẫu dữ liệu, các đặc trưng của dữ liệu. Trong đó mỗi giá trị được liên kết với
một biến hoặc là thuộc tính.

Hình 2. 4: Hình ảnh ví dụ về dataset

-

Một mẫu dữ liệu (hay một điểm dữ liệu) chính là thành phần giúp mô tả dữ liệu theo các
đặc điểm định lượng được thể hiện bằng các hàng trong bộ dữ liệu. Ví dụ: Nếu ta xây
dựng một bộ dữ liệu về hình dáng con người, mỗi một mẫu dữ liệu sẽ là các số liệu chi
tiết về một người. Khi chúng ta cần nhiều dữ liệu để xây dựng mơ hình, cũng có nghĩa là

-

chúng ta cần tích hợp nhiều mẫu dữ liệu.
Đặc trưng là những đặc điểm định lượng để mơ tả các mẫu data, có thể là số/chữ. Ví dụ:
Fullname là một trong những đặc trưng dạng chữ, trong khi Height là một đặc trưng dạng
số.
2.3.2.3. Tiền xử lý dữ liệu
Tiền xử lý dữ liệu là một trong những bước quan trọng trong bất kỳ quá trình
khai thác dữ liệu, trực quan hóa dữ liệu, phân tích dữ liệu, dự đốn trong khoa học dữ

liệu,... Dữ liệu có thể ở nhiều dạng khác nhau, chẳng hạn, nó có thể là văn bản, hình ảnh,
số, định dạng ngày tháng, video,... Vì vậy, việc chuyển đổi dữ liệu sang bất kỳ định dạng
tương thích nào để đạt được kết quả cuối cùng là bắt buộc.
Đôi khi dữ liệu mà chúng ta thu thập được khơng thể hồn chỉnh hoặc hoàn
toàn đáng tin cậy. Các vấn đề phổ biến nhất mà chúng ta thường gặp phải khi xem xét tập


18
dữ liệu là nó có thể có các giá trị bị thiếu (thiếu một số mục nhập), các giá trị cực đoan
(các mục nhập không liên quan đến trường hoặc miền cụ thể), lỗi đánh máy cũng là tiền
tố dẫn đến các ký tự đặc biệt như !, @, $,… Do đó, nhữn loại mâu thuẫn này cũng có thể
được sửa chữa trong bước tiền xử lý dữ liệu.
2.3.2.4. Quá trình rời rạc hóa dữ liệu
Q trình rời rạc hóa dữ liệu là một thao tác trong quá trình tiền xử lý dữ liệu
thường gặp, giúp chúng ta giảm bớt dữ liệu. Quá trình này thường được áp dụng đối với
các dữ liệu có thuộc tính kiểu số. Rời rạc hóa các thuộc tính có chứa dữ liệu liên tục trong
các tập dữ liệu được lưu trữ là một phần chính trong q trình khai phá dữ liệu. Các ứng
dụng khai phá dữ liệu trong thực tế cho thấy các dữ liệu chứa giá trị rời rạc đóng vai trị
cực kì quan trọng trong việc biểu diễn tri thức vì chúng dễ dàng được xử lý hay thể hiện
tri thức trực quan nhất. Trong lĩnh vực khai phá dữ liệu, một số kỹ thuật như luật kết hợp
chỉ có thể được thực hiện trên các dữ liệu phân loại (categorical/ nominal data). Q trình
rời rạc hóa dữ liệu cần phải thực hiện dựa trên việc rời rạc hóa các thuộc tính đó có phải
là kiểu dữ liệu liên tục hay khơng.
2.3.3. Học có giám sát (Supervised Learning)
2.3.3.1. Khái niệm
Học có giám sát là một thuật toán dự đoán đầu ra (outcome) của một dữ liệu
mới (input new) được dựa trên các cặp (input, outcome) đã biết từ trước. Cặp dữ liệu này
còn được gọi là data, lable, tức là (dữ liệu, nhãn). Học có giám sát là nhóm phổ biến
trong các thuật tốn Machine Learning.
Từ góc nhìn của tốn học, học có giám sát là khi chúng ra có một tập hợp biến

đầu vào X= {x1, x2, …, xN} và một tập hợp nhãn tương ứng Y= {y1, y2, …, yN} trong đó xi,
yi là các vector. Các cặp dữ liệu biết trước (xi, yi) ԑ X x Y ược gọi là tập training data (dữ
liệu huấn luyện). Từ tập training data, chúng ta cần tạo ra một hàm số ánh xạ mỗi phần tử
từ tập X sang một phần tử xấp xỉ của tập Y:

Mục đích là xấp xỉ hàm số f một cách thật tốt để khi có một dữ liệu x mới,
chúng ta có thể tính được nhãn tương ứng của nó y=f(x).


19
2.3.3.2. Phân loại (Classification)
Bài toán gọi là classification nếu các label (nhãn) của input data được chia
thành một số hữu hạn nhóm. Ví dụ: Các hãng tín dụng xác định xem một khách hàng có
khả năng thanh tốn nợ hay khơng; gmail xác định xem một email có phải là spam hay
khơng. Các ví dụ trên được chia vào loại này.
2.3.3.3. Hồi quy (Regression)
Nếu lable không được chia thành các nhóm thay vào đó là một giá trị thực cụ
thể. Ví dụ: có một căn nhà rộng x m 2, có y phịng ngủ, căn nhà cách trung tâm thành phố
z km thì sẽ có giá là bao nhiêu?
Thời gian gần đây có một ứng dụng của hãng Microsoft dùng để dự đốn giới
tính và tuổi dựa trên khn mặt. Trong đó, cịn phần dự đốn tuổi cũng được coi là thuật
tốn Regression (quy hồi), phần dự đốn giới tính có thể coi là một thuật tốn
Classification. Ngồi ra, phần dự đốn tuổi cịn có thể được coi là Classification nếu ta
coi tuổi là một số nguyên dương không lớn hơn 150, chúng ta sẽ có 150 class (lớp) khác
nhau.
2.3.4. Học khơng giám sát (Unsupervised learning)
2.3.4.1. Khái niệm
Trong thuật tốn Unsupervised learning chúng ta sẽ không thể nào biết được
outcome hay lable (nhãn) mà chỉ có dữ liệu đầu vào. Học khơng giám sát là thuật tốn
dựa vào cấu trúc của dữ liệu để thực hiện một công việc như là phân nhóm (clustering)

hay làm giảm số chiều của dữ liệu (dimension reduction) sẽ thuận tiện hơn trong việc lưu
trữ và tính tốn.
Cách nhìn từ tốn học, học khơng giám sát là khi chúng ta chỉ có dữ liệu vào
X mà khơng biết nhãn Y tương ứng.
Loại thuật tốn này, khơng giống như học có giám sát, được gọi là học khơng
giám sát vì nó khơng biết câu trả lời chính xác cho tất cả dữ liệu đầu vào. Tương tự như
vậy, khi học, sẽ khơng có giáo viên nào nói cho bạn biết đó là A hay B. Theo nghĩa đó,
đó là một cụm khơng giám sát
2.3.4.2. Clustering (phân nhóm)
Một bài tốn phân nhóm tất cả các dữ liệu X ra thành các nhóm nhỏ dựa trên
sự liên quan giữa các dữ liệu trong mỗi nhóm nhỏ. Ví dụ như: chúng ta có thể phân nhóm
khách hàng dựa trên hành vi mua hàng. Điều này cũng tương tự việc chúng ta đưa cho


20
một đứa bé rất nhiều mảnh ghép với các hình thù và màu sắc khác nhau như là: tam giác,
vuông, trịn với màu đỏ và xanh, sau đó u cầu trẻ phân chúng ra thành từng nhóm. Mặc
dù, khơng cho đứa bé đó biết trước mảnh nào tương ứng với hình nào hay màu nào, nhiều
khả năng chúng vẫn có thể phân loại các mảnh ghép theo màu hoặc hình dạng.
2.3.4.3. Association
Association là bài toán khi ta muốn khám phá ra một quy luật được dựa trên
nhiều dữ liệu cho trước. Ví dụ: những khán giả xem phim Spider Man thường có xu
hướng xem thêm phim Bat Man hay những khách hàng nam mua quần áo thường có xu
hướng mua thêm thắt lưng hoặc đồng hồ, chúng ta có thể dựa vào đó tạo ra một hệ thống
gợi ý khách hàng (Recommendation System), thúc đẩy nhu cầu mua sắm.
2.3.5. Học nửa giám sát (Semi-Supervised Learning)
Các bài toán khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ có một phần
trong chúng được gán lable (nhãn) được gọi là Semi-Supervised Learning. Những bài
tốn thuộc nhóm này nằm giữa hai nhóm được nêu bên trên.
Ví dụ điển hình của nhóm học nửa giám sát này là chỉ có một phần ảnh hay

một phần văn bản được gán nhãn (ví dụ về bức ảnh về người, động vật hoặc các văn bản
khoa học, chính trị) và phần lớn các bức ảnh hoặc văn bản khác chưa được gán nhãn hay
được thu thập từ internet. Trên thực tế cho thấy rằng có rất nhiều các bài tốn Machine
Learning thuộc vào nhóm học nữa giám sát vì việc thu thập dữ liệu có lable tốn rất nhiều
thời gian và có chi phí cao. Cịn có rất nhiều loại dữ liệu thậm chí cần phải có chun gia
mới gán nhãn được (ví dụ như ảnh trong y học). Ngược lại, dữ liệu chưa có lable có thể
được thu thập với chi phí thấp và từ internet.
2.3.6. Kỹ thuật DR (Dimensionality Reduction) và PCA (Principal Component
Analysis)
2.3.6.1. Dimensionality Reduction
Số lượng lớn các tính năng đầu vào có thể gây ra hiệu suất kém cho các thuật
tốn học máy. Giảm số chiều là lĩnh vực nghiên cứu chung liên quan đến việc giảm số
lượng các tính năng đầu vào một trong những kỹ thuật quan trọng trong học máy
(Machine Learning). Khi xử lý dữ liệu có chiều cao, thường hữu ích khi giảm kích thước
bằng cách chiếu dữ liệu xuống khơng gian con có chiều thấp hơn để nắm bắt "bản chất"
của dữ liệu điều này gọi là giảm kích thước dữ liệu và đảm bảo rằng thông tin được
truyền tải tương tự. Dimensionality Reduction mang lại sự trình bày ngắn gọn hơn, dễ


21
hiểu hơn về khái niệm mục tiêu, tập trung sự chú ý của người dùng vào các biến có liên
quan nhất, kỹ thuật DR giúp cho việc nén dữ liệu, thời gian tính tốn nhanh hơn. Ví dụ:
Dữ liệu địi hỏi trực quan hóa để hiểu rõ và với dữ liệu có hơn 3 chiều hầu như khơng thể
quan sát. Kỹ thuật DR có thể mang lại số lượng chiều giảm xuống còn 2 hoặc 3 để chúng
ta quan sát một cách chính xác hơn. Giảm số chiều cũng có thể được sử dụng để phát
hiện sự bất thường.
2.3.6.2. Principal Component Analysis (PCA)
Principal Component Analysis (PCA) là kỹ thuật phổ biến nhất để giảm kích
thước của một tập dữ liệu bao gồm nhiều biến số tương quan với nhau, dù nặng hay nhẹ,
trong khi vẫn giữ lại mức độ biến động có trong tập dữ liệu ở mức tối đa. Đây là một kỹ

thuật có nguồn gốc từ đại số tuyến tính và có thể được sử dụng như một kỹ thuật chuẩn bị
dữ liệu để tạo ra phép chiếu trước khi xây dựng một mơ hình.
PCA thực hiện bằng cách chuyển đổi các biến thành một tập hợp các biến mới,
được gọi là các thành phần chính (hoặc đơn giản là PC) và là trực giao, được sắp xếp theo
thứ tự sao cho việc duy trì các biến thể hiện có trong các biến ban đầu giảm khi chúng ta
di chuyển xuống theo thứ tự. Theo phương pháp này thì thành phần chính thứ nhất sẽ
được giữ lại sự biến đổi tối đa đã có trong các thành phần ban đầu. Các thành phần chính
là các ký hiệu riêng của ma trận hiệp phương sai, do đó chúng trực giao.
Ví dụ: Ban đầu chúng ta có 1000 biến có tương quan tuyến tính cùng với
nhau, ta sẽ sử dụng PCA xoay chiều không gian cũ trở thành chiều không gian mới ở đó
chỉ cịn lại 10 biến khơng có tương quan tuyến tính mà vẫn giữ được nhiều nhất lượng
thơng tin từ nhóm biến ban đầu.
2.4.

Giới thiệu về bộ công cụ ELK

2.4.1. Giới thiệu về ELK
ELK Stack là một bộ giải pháp công nghệ mã nguồn mở được sử dụng để thu
thập, phân tích, quản lý dữ liệu log tập trung, có thể xử lý nhiều bài tốn quản trị hệ
thống mạng nên rất được các công ty và tổ chức tin dùng.
ELK gồm 4 thành phần:
- ElasticSearch: được dùng để đánh chỉ mục cho dữ liệu log để tìm kiếm và
là nơi lưu trữ log tập trung
- Logstash: Thu thập dữ liệu log từ nhiều nguồn khác nhau, sau đó xử lý log
và đưa vào lưu trữ trong ElasticSearch để đánh chỉ mục.


22
-


Kibana: Giao diện dùng để quản lý, thống kê và phân tích dữ liệu và xây

dựng các biểu đồ trực quan hố. Kibana đọc thơng tin từ Elasticsearch.
- Beats: Một bộ các công cụ chuyên dụng để thu thập dữ liệu thông qua máy
client và gửi về máy chủ ELK có thể hiểu beat như một shipper.

Cơ chế hoạt động của ELK Stack:

Hình 2. 5: Hình ảnh minh họa cơ chế hoạt động ELK

- Đầu tiên, Beats thu thập logs từ các máy Client rồi sau đó gửi chúng đến
máy chủ ELK theo nhiều cách khác nhau thông qua các con đường khác nhau. ví dụ:
Server sẽ gửi UDP request chứa các log tới URL của Logstash, hay là Beats để thu thập
logs từ các bộ công cụ chuyên dụng đã được cài trên các Server và gửi lên Logstash hoặc
Elasticsearch.
- Logstash đọc logs do beats chuyển đến sau đó thêm các thơng tin như IP
nguồn (nếu có), thời gian, giao thức,… và parse dữ liệu từ log (server nào, mức độ
nghiêm trọng, nội dung của log) ra, tiếp theo các log chuyển đến và lưu trữ tại
Elasticsearch.


23
- Khi muốn xem log, người dùng sẽ truy cập liên kết (URL – Uniform
Resource Locator) trên giao diện Kibana.Tại đây, Kibana đọc thông tin các log từ cơ sở
dữ liệu Elasticsearch rồi hiển thị lên giao Kibana cho người sử dụng truy vấn và xử lý.
2.4.2. ElasticSearch
2.4.2.1. Giới thiệu ElasticSearch
Elaticsearch là một cơng cụ tìm kiếm và phân tích mã nguồn mở dựa trên phần
mềm Lucene Apache. Quá trình triển khai đơn giản, độ tin cậy tối đa và quản lý dễ dàng.
Có khả năng truy vấn nâng cao để thực hiện q trình phân tích và lưu trữ tất cả dữ liệu

một cách tập trung, tốc độ tìm kiếm rất nhanh (gần như thời gian thực). Chạy trên Server
riêng, giao tiếp thông qua API RESTful.
Đồng thời, chúng ta có thể hiểu Elasticsearch là một hệ thống phân tán, khả
năng mở rộng rất tuyệt vời, cho phép ta thực thi và kết hợp rất nhiều loại tìm kiếm: có
cấu trúc, không cấu trúc, geo hoặc metric theo cách mà chúng ta muốn.
2.4.2.2. Kiến trúc ElasticSearch
2.4.2.2.1.

ElasticSearch Cluster

ElasticSearch Cluster được xây dựng và thiết kế dựa trên ý tưởng của kiến trúc
MPP (Massive Parallel Processing).
Massive Parallel Processing là một hệ thống gồm nhiều nút (node), làm việc
cùng nhau để cùng thực hiện một chương trình, trong đó mỗi nút sẽ xử lý một phần riêng
của chương trình trên tài nguyên của nút đó (memory, CPU, RAM,…). Do đó mà một hệ
thống Massive Parallel Processing còn được gọi là hệ thống “Shared nothing” (do bản
chất của các nút trong cụm không chia sẻ tài ngun gì để tính tốn và chúng xử lý dữ
liệu riêng của chúng trên sức mạnh tài nguyên riêng của chúng).
Để xử lý được lượng lớn dữ liệu, dữ liệu trong giải pháp Massive Parallel
Processing thường được phân chia giữa các nút thành các phân đoạn (shard), mỗi nút sẽ
xử lý các dữ liệu cục bộ của nó. Điều này làm cho việc xử lý dữ liệu nhanh hơn, bởi vì sử
dụng lưu trữ chia sẻ cho giải pháp MPP sẽ là một khoản đầu tư lớn hơn, tốn kém hơn,
phức tạp hơn, ít khả năng mở rộng hơn, sử dụng lưu lượng mạng cao hơn và ít tính tốn
song song hơn. Đối với cách thiết kế này, một hệ thống MPP sẽ rất đơn giản cho việc mở
rộng. Để mở rộng năng lực tính tốn cho tồn bộ cụm, chỉ cần thêm các nút theo chiều
ngang vào cụm cluster. Mơ hình MPP như sau:


24


Hình 2. 6: Hình ảnh mơ hình Massive Parallel Processing

Một cụm ElasticSearch Cluster bao gồm một hoặc nhiều nút (nodes) có cùng
tên với cụm mà nó thuộc về. Các nút trong cụm Cluster làm việc xử lý tính tốn cùng
nhau, cùng chia sẻ dữ liệu và tải (workload) với nhau. Khi một nút được thêm vào hoặc
rời khỏi cluster, cluster sẽ tự động tổ chức và tính tốn lại dữ liệu và năng lực tính tốn.

Hình 2. 7: Hình ảnh cụm Cluster của Elasticsearch

Một nút là một máy chủ riêng lẻ, là một phần của cụm Cluster, tham gia vào
quá trình đánh chỉ mục và tìm kiếm của cụm Cluster. Cũng giống như Cluster, mỗi nút
được xác định bằng một tên duy nhất và được tạo ngẫu nhiên tại thời điểm khởi động hệ
thống. Tất nhiên chúng ta có thể chỉ định tên cho các nút này cho mục đích quản trị. Nếu
khơng được chỉ định, mỗi node có thể tham gia (join) vào một cluster mặc định là
“elasticsearch” cluster.
Mỗi cụm trong ElasticSearch Cluster có một Master node chịu trách nhiệm
quản lý tất cả các thay đổi trên toàn cụm, ví dụ như như tạo, xóa index hoặc thêm hay
loại bỏ node vào/ra cụm Cluster. Bên cạnh đó, master node sẽ không tham gia vào mọi


25
quá trình xử lý tìm kiếm. Bất kỳ nút nào trong cụm cũng đều có thể trở thành master
node. Với cụm Cluster chỉ có một nút thì nút đó sẽ thực hiện vai trò vừa là master node
và vừa là nút xử lý tìm kiếm.
Mọi nút trong cụm Cluster đều được được kết nối, chia sẻ các dữ liệu và tải
với nhau. Tất cả các nút đều biết chính xác nơi dữ liệu được lưu trữ, vì vậy khi có một
yêu cầu cần xử lý được gửi đến chúng có thể xử lý trực tiếp hoặc chuyển tiếp yêu cầu đến
nút mà đang thực sự chứa dữ liệu cần xử lý và trả ra kết quả.
2.4.2.2.2.
a. Node


Các khái niệm cơ bản trong ElasticSearch

Node được biết đến là trung tâm hoạt động của Elasticsearch, nơi lưu trữ
dữ liệu, tham gia quá trình đánh chỉ mục của cluster và search. Mỗi một node được xác
định bằng một tên khác nhau và không được phép đặt tên trùng vì có thể xảy ra lỗi khơng
tìm thấy data của các server.
b. Cluster
Nơi tập trung các nodes cùng hoạt động, chia sẻ nhau một thuộc tính
cluster name. Trong q trình đặt tên cluster tránh việc đặt tên của các cluster
elasticsearch trùng nhau vì sẽ gây ra lỗi cho các nodes nên khi cấu hình chúng ta cần phải
đặc biệt chú ý. Trong hệ thống thực tế, cluster sẽ bao gồm nhiều nodes hoạt động trên
server khác nhau nhằm đảm bảo khi xảy ra sự cố một server chết thì các node trên các
server khác vẫn hoạt động các chức năng đầy đủ.

Hình 2. 8: Hình ảnh minh họa Elasticsearch Cluster

c. Document
Document được biết đến là đơn vị thơng tin cơ bản có thể đánh index.
Document được hình dung như row của table trong cơ sở dữ liệu quan hệ. Hầu hết các
objects (đối tượng) và documents đều có thể hiển thị dưới dạng JSON document.


×