ELK trong 20 ngày
Module 1: Giới thiệu ELK Stack (2 ngày)
Ngày 1:
Buổi sáng:
ELK Stack là gì?
Giới thiệu từng thành phần: Elasticsearch (cơ sở dữ liệu tìm kiếm và phân tích), Logstash (công cụ thu thập và xử lý dữ liệu), Kibana (giao diện trực quan hóa và phân tích), Beats (lightweight shipper).
Lịch sử phát triển và phiên bản hiện tại của ELK Stack.
Các trường hợp sử dụng phổ biến: Phân tích log, tìm kiếm ứng dụng, giám sát cơ sở hạ tầng, SIEM (Security Information and Event Management), phân tích dữ liệu kinh doanh,...
Kiến trúc ELK Stack:
Mô hình tổng quan: Cách các thành phần tương tác với nhau (Logstash thu thập dữ liệu, Elasticsearch lưu trữ và lập chỉ mục, Kibana truy vấn và hiển thị).
Các thành phần mở rộng: Beats (Filebeat, Metricbeat, Packetbeat,...), APM (Application Performance Monitoring), Ingest Node, Machine Learning,...
Bài tập:
Tìm hiểu về lịch sử và phiên bản mới nhất của Elasticsearch, Logstash, Kibana.
Lập danh sách 5 trường hợp sử dụng ELK Stack trong các ngành công nghiệp khác nhau (ví dụ: tài chính, y tế, bán lẻ,...).
Vẽ sơ đồ kiến trúc ELK Stack cơ bản và giải thích luồng dữ liệu.
Buổi chiều:
Tầm quan trọng của ELK Stack:
Giải quyết thách thức của dữ liệu lớn: Khả năng mở rộng, tốc độ truy vấn nhanh, xử lý dữ liệu thời gian thực.
Tăng cường khả năng quan sát: Giúp hiểu rõ hơn về hệ thống, ứng dụng, hành vi người dùng.
Hỗ trợ ra quyết định dựa trên dữ liệu: Cung cấp thông tin chi tiết để tối ưu hóa hoạt động, phát hiện vấn đề sớm, cải thiện trải nghiệm khách hàng.
ELK vs Splunk:
So sánh chi tiết về tính năng, khả năng mở rộng, chi phí, cộng đồng hỗ trợ, giao diện người dùng.
Các yếu tố cần cân nhắc khi lựa chọn giữa ELK và Splunk.
Bài tập:
Nghiên cứu một trường hợp sử dụng ELK Stack cụ thể (ví dụ: phân tích log Apache) và viết một báo cáo ngắn.
Tìm hiểu về các giải pháp thay thế khác cho ELK Stack (ví dụ: Graylog, Humio) và so sánh ưu nhược điểm.
Thảo luận về các yếu tố ảnh hưởng đến quyết định lựa chọn giữa ELK và Splunk trong một tổ chức.
Ngày 2:
Buổi sáng:
Ưu điểm và nhược điểm của ELK Stack:
Ưu điểm: Miễn phí và mã nguồn mở, linh hoạt và tùy biến cao, cộng đồng lớn, khả năng mở rộng tốt,...
Nhược điểm: Độ phức tạp cao, yêu cầu kiến thức chuyên môn, quản lý và bảo trì cần nhiều công sức,...
Giới thiệu Kibana:
Giao diện và các thành phần chính: Discover, Visualize, Dashboard, Canvas, Maps, Machine Learning,...
Các tính năng cơ bản: Tìm kiếm, lọc, trực quan hóa, tạo báo cáo, phân tích dữ liệu,...
Các trường hợp sử dụng Kibana: Giám sát hệ thống, phân tích log, phân tích bảo mật, BI (Business Intelligence),...
Bài tập:
Cài đặt Kibana và kết nối với một Elasticsearch cluster (có thể sử dụng dữ liệu mẫu).
Sử dụng Kibana để tìm kiếm và lọc dữ liệu trong Elasticsearch.
Tạo một visualization đơn giản (ví dụ: biểu đồ đường) trong Kibana.
Buổi chiều:
Thực hành Kibana:
Tạo dashboard: Kết hợp nhiều visualization để tạo ra một cái nhìn tổng quan về dữ liệu.
Sử dụng Canvas: Tạo báo cáo trực quan tùy chỉnh với các yếu tố như hình ảnh, văn bản, biểu đồ.
Khám phá Machine Learning: Tìm hiểu các tính năng phát hiện bất thường và dự đoán trong Kibana.
Bài tập:
Tạo một dashboard Kibana để giám sát hiệu suất của một máy chủ web (ví dụ: Apache).
Sử dụng Canvas để tạo một báo cáo về xu hướng bán hàng trong một tháng.
Sử dụng Machine Learning để phát hiện các hoạt động bất thường trong log hệ thống.
Module 2: Cài đặt ELK (2 ngày)
Ngày 3:
Buổi sáng:
Chuẩn bị môi trường:
Kiểm tra yêu cầu hệ thống: Đảm bảo máy tính đáp ứng yêu cầu về phần cứng (CPU, RAM, ổ cứng) và phần mềm (hệ điều hành).
Cài đặt Java: Tải và cài đặt OpenJDK hoặc Oracle JDK phiên bản tương thích với Elasticsearch.
Tạo người dùng ELK: Tạo một người dùng riêng cho ELK Stack để tăng cường bảo mật.
Bài tập:
Kiểm tra cấu hình phần cứng của máy tính và so sánh với yêu cầu hệ thống của ELK Stack.
Tải và cài đặt OpenJDK phiên bản mới nhất.
Tạo một người dùng mới có tên
elk
và đặt mật khẩu mạnh.
Buổi chiều:
Cài đặt Elasticsearch:
Tải Elasticsearch: Tải gói cài đặt Elasticsearch từ trang chủ Elastic.
Giải nén và cấu hình: Giải nén gói cài đặt, chỉnh sửa file cấu hình
elasticsearch.yml
(cổng, đường dẫn dữ liệu, cluster name,...).Khởi động Elasticsearch: Chạy lệnh
elasticsearch
để khởi động Elasticsearch service.Kiểm tra hoạt động: Truy cập
http://localhost:9200
trên trình duyệt để kiểm tra trạng thái cluster.
Bài tập:
Tải và cài đặt Elasticsearch phiên bản mới nhất.
Thay đổi cổng mặc định của Elasticsearch thành 9201.
Sử dụng lệnh
curl
để gửi yêu cầu GET đếnhttp://localhost:9200
và kiểm tra phản hồi.
Ngày 4:
Buổi sáng:
Cài đặt Kibana:
Tải Kibana: Tải gói cài đặt Kibana từ trang chủ Elastic.
Giải nén và cấu hình: Giải nén gói cài đặt, chỉnh sửa file cấu hình
kibana.yml
(cổng, kết nối Elasticsearch,...).Khởi động Kibana: Chạy lệnh
kibana
để khởi động Kibana service.Kiểm tra hoạt động: Truy cập
http://localhost:5601
trên trình duyệt để kiểm tra giao diện Kibana.
Bài tập:
Tải và cài đặt Kibana phiên bản mới nhất.
Thay đổi cổng mặc định của Kibana thành 5602.
Tạo một index pattern trong Kibana để kết nối với dữ liệu Elasticsearch.
Buổi chiều:
Cài đặt Logstash:
Tải Logstash: Tải gói cài đặt Logstash từ trang chủ Elastic.
Giải nén: Giải nén gói cài đặt.
Cấu hình cơ bản: Tạo file cấu hình
logstash.conf
với các plugin input, filter, output đơn giản.Chạy Logstash: Chạy lệnh
logstash -f logstash.conf
để khởi động Logstash và kiểm tra hoạt động.
Bài tập:
Tải và cài đặt Logstash phiên bản mới nhất.
Cấu hình Logstash để đọc dữ liệu từ file log và ghi vào Elasticsearch.
Sử dụng Kibana để kiểm tra dữ liệu đã được Logstash chuyển vào Elasticsearch.
Lưu ý:
Các bước cài đặt có thể khác nhau tùy theo hệ điều hành (Windows, macOS, Linux).
Nên tham khảo tài liệu chính thức của Elastic để biết thêm chi tiết và các tùy chọn cấu hình nâng cao.
Nên thực hành trên các môi trường khác nhau (máy ảo, Docker) để làm quen với các tình huống thực tế.
Module 3: Elasticsearch (5 ngày)
Ngày 5:
Buổi sáng:
Khái niệm cơ bản về Elasticsearch:
Index (chỉ mục): Tương tự như database trong hệ quản trị CSDL truyền thống.
Document (tài liệu): Tương tự như một bản ghi (record) trong database, chứa dữ liệu ở định dạng JSON.
Type (loại): Phân loại các document trong cùng một index (Elasticsearch 7.x trở lên đã loại bỏ khái niệm type).
Shard (phân đoạn): Mỗi index được chia thành nhiều shard để tăng khả năng mở rộng và chịu tải.
Replica (bản sao): Mỗi shard có thể có nhiều replica để đảm bảo tính sẵn sàng cao và chịu lỗi.
Bài tập:
Tạo một index mới trong Elasticsearch với tên "my_index".
Thêm một document vào index "my_index" với các trường "name", "age", "city".
Lấy thông tin về index "my_index" (số lượng shard, replica, kích thước,...).
Buổi chiều:
Mapping (ánh xạ):
Định nghĩa cấu trúc của document trong một index.
Các kiểu dữ liệu cơ bản: text, keyword, date, integer, float, boolean,...
Các kiểu dữ liệu phức tạp: object, nested, geo_point,...
Dynamic mapping: Elasticsearch tự động phát hiện và ánh xạ kiểu dữ liệu khi thêm document mới.
Bài tập:
Tạo một mapping cho index "my_index" với các trường "name" (kiểu text), "age" (kiểu integer), "city" (kiểu keyword).
Thêm một document mới vào index "my_index" và kiểm tra xem Elasticsearch có tự động phát hiện kiểu dữ liệu không.
Thay đổi mapping của index "my_index" để thêm một trường mới "country" (kiểu keyword).
Ngày 6:
Buổi sáng:
Tìm kiếm cơ bản:
Query DSL: Ngôn ngữ truy vấn của Elasticsearch, sử dụng JSON để biểu diễn các truy vấn.
Các loại truy vấn cơ bản: match, term, range, exists, prefix,...
Kết hợp các truy vấn: bool query (must, should, must_not, filter).
Sắp xếp kết quả: sort.
Bài tập:
Viết một truy vấn để tìm tất cả các document có trường "city" là "Hà Nội".
Viết một truy vấn để tìm tất cả các document có trường "age" lớn hơn 30.
Viết một truy vấn để tìm tất cả các document có trường "name" bắt đầu bằng chữ "A" và sắp xếp theo "age" giảm dần.
Buổi chiều:
Tìm kiếm nâng cao:
Full-text search: Tìm kiếm trên các trường text, sử dụng các kỹ thuật như phân tích từ, stemming, stop words.
Fuzzy search: Tìm kiếm các từ gần giống với từ khóa, cho phép sai sót nhỏ trong chính tả.
Wildcard search: Tìm kiếm các từ khớp với một mẫu, sử dụng ký tự đại diện `` và
?
.Regex search: Tìm kiếm các từ khớp với một biểu thức chính quy.
Bài tập:
Viết một truy vấn full-text search để tìm tất cả các document có chứa từ "công nghệ" trong trường "name".
Viết một truy vấn fuzzy search để tìm tất cả các document có trường "city" gần giống với "Hải Phòng".
Viết một truy vấn wildcard search để tìm tất cả các document có trường "name" kết thúc bằng chữ "ng".
Ngày 7:
Buổi sáng:
Phân tích dữ liệu (Aggregations):
Metric aggregations: Tính toán các giá trị thống kê (sum, avg, min, max,...) trên một trường số.
Bucket aggregations: Gom nhóm các document vào các nhóm (bucket) dựa trên một tiêu chí (term, range, date histogram,...).
Pipeline aggregations: Thực hiện các phép tính trên kết quả của một aggregation khác.
Bài tập:
Viết một truy vấn aggregation để tính tổng số tuổi của tất cả các document trong index "my_index".
Viết một truy vấn aggregation để tìm ra thành phố có nhiều người nhất trong index "my_index".
Viết một truy vấn aggregation để tính trung bình số tuổi của người dân theo từng thành phố trong index "my_index".
Buổi chiều:
REST API:
Giới thiệu REST API: Cách Elasticsearch cung cấp giao diện để tương tác với dữ liệu thông qua các request HTTP.
Các phương thức HTTP: GET (lấy dữ liệu), POST (thêm dữ liệu), PUT (cập nhật dữ liệu), DELETE (xóa dữ liệu).
Các endpoint cơ bản:
/_cat/indices
: Liệt kê các index./{index}/_search
: Tìm kiếm document trong một index./{index}/_count
: Đếm số lượng document trong một index./{index}/_doc/{id}
: Lấy, thêm, cập nhật, xóa một document.
Bài tập:
Sử dụng cURL hoặc Postman để gửi một yêu cầu GET đến
/_cat/indices
và xem danh sách các index.Sử dụng cURL hoặc Postman để gửi một yêu cầu POST đến
/{index}/_doc
để thêm một document mới vào index "my_index".Sử dụng cURL hoặc Postman để gửi một yêu cầu GET đến
/{index}/_search
để tìm kiếm các document trong index "my_index".
Ngày 8:
Buổi sáng:
Plugins:
Giới thiệu về plugins: Các module mở rộng chức năng của Elasticsearch.
Các loại plugins: Analysis (phân tích văn bản), Mapper (ánh xạ dữ liệu), Discovery (phát hiện node),...
Cài đặt và quản lý plugins: Sử dụng Elasticsearch Plugin Manager.
Bài tập:
Tìm hiểu về 3 plugins Elasticsearch phổ biến (ví dụ: ICU Analysis, Mapper Attachments, Discovery EC2).
Cài đặt một plugin analysis (ví dụ: Vietnamese Analysis) vào Elasticsearch.
Tạo một index mới sử dụng plugin analysis đã cài đặt và kiểm tra kết quả phân tích văn bản.
Buổi chiều:
Tối ưu hóa Elasticsearch:
Cấu hình phần cứng: RAM, CPU, ổ cứng.
Cấu hình Elasticsearch: Heap size, số lượng shard và replica, refresh interval, translog,...
Cấu hình index: Mapping, phân tích, nén dữ liệu.
Giám sát và xử lý sự cố: Sử dụng các công cụ như Elasticsearch Head, Cerebro, Marvel (X-Pack).
Bài tập:
Tìm hiểu về các thông số cấu hình quan trọng của Elasticsearch và ý nghĩa của chúng.
Sử dụng Elasticsearch Head hoặc Cerebro để giám sát trạng thái của Elasticsearch cluster.
Tìm hiểu về các vấn đề thường gặp khi vận hành Elasticsearch và cách khắc phục.
Ngày 9:
Buổi sáng:
Ôn tập và tổng kết Module 3:
Tóm tắt lại các kiến thức đã học về Elasticsearch.
Giải đáp thắc mắc của học viên.
Ôn tập và làm bài tập củng cố.
Bài tập:
Thiết kế một schema Elasticsearch cho một ứng dụng thương mại điện tử (sản phẩm, khách hàng, đơn hàng,...).
Xây dựng một ứng dụng đơn giản để tìm kiếm sản phẩm trong ứng dụng thương mại điện tử sử dụng Elasticsearch.
Thực hiện benchmark để đánh giá hiệu năng của Elasticsearch với các truy vấn khác nhau.
Buổi chiều:
Chuẩn bị cho Module 4:
Giới thiệu tổng quan về Logstash.
Cài đặt Logstash.
Chuẩn bị dữ liệu log mẫu để thực hành trong Module 4.
Lưu ý:
- Nên tìm hiểu thêm các tính năng nâng cao của Elasticsearch (ví dụ: percolator, snapshot/restore, reindex,...).
Module 4: Logstash (4 ngày)
Ngày 10:
Buổi sáng:
Giới thiệu Logstash:
Tổng quan về Logstash: Vai trò trong ELK Stack, khả năng thu thập, xử lý và chuyển dữ liệu.
Kiến trúc Logstash: Các thành phần input, filter, output, codec.
Các trường hợp sử dụng: Thu thập log từ nhiều nguồn, chuẩn hóa dữ liệu, làm giàu dữ liệu, lọc và định tuyến dữ liệu.
Bài tập:
Tìm hiểu về các plugin input, filter, output phổ biến của Logstash.
Lập danh sách 5 trường hợp sử dụng Logstash trong thực tế.
Vẽ sơ đồ kiến trúc Logstash và giải thích luồng xử lý dữ liệu.
Buổi chiều:
Input plugins:
Các plugin input phổ biến: file, syslog, beats, tcp, udp, jdbc,...
Cấu hình input plugin: Đọc dữ liệu từ nguồn, cấu hình codec, tag,...
Ví dụ: Thu thập log từ file Apache, syslog, Metricbeat.
Bài tập:
Cấu hình Logstash để đọc log từ file Apache access.log.
Cấu hình Logstash để nhận dữ liệu từ Metricbeat.
Cấu hình Logstash để đọc dữ liệu từ cơ sở dữ liệu MySQL.
Ngày 11:
Buổi sáng:
Filter plugins:
Các plugin filter phổ biến: grok, mutate, date, geoip, json, split,...
Cấu hình filter plugin: Phân tích, chuyển đổi, làm giàu dữ liệu.
Ví dụ: Sử dụng grok để phân tích log Apache, mutate để thêm trường mới, geoip để lấy thông tin địa lý.
Bài tập:
Sử dụng grok để phân tích log Apache access.log và trích xuất các trường như IP, method, URL, status code.
Sử dụng mutate để chuyển đổi định dạng timestamp trong log.
Sử dụng geoip để lấy thông tin quốc gia và thành phố từ địa chỉ IP trong log.
Buổi chiều:
Output plugins:
Các plugin output phổ biến: elasticsearch, file, http, tcp, email,...
Cấu hình output plugin: Ghi dữ liệu đã xử lý vào đích đến.
Ví dụ: Ghi dữ liệu vào Elasticsearch, file log, gửi email cảnh báo.
Bài tập:
Cấu hình Logstash để ghi dữ liệu đã xử lý vào Elasticsearch.
Cấu hình Logstash để ghi dữ liệu đã xử lý vào file log.
Cấu hình Logstash để gửi email cảnh báo khi có sự kiện quan trọng trong log.
Ngày 12:
Buổi sáng:
Codec:
Các codec phổ biến: json, plain, line, rubydebug,...
Cấu hình codec: Xử lý định dạng dữ liệu đầu vào và đầu ra.
Ví dụ: Đọc dữ liệu JSON từ file, chuyển đổi dữ liệu thành định dạng line trước khi ghi vào file.
Bài tập:
Cấu hình Logstash để đọc dữ liệu JSON từ file log.
Cấu hình Logstash để chuyển đổi dữ liệu thành định dạng line trước khi ghi vào file.
Sử dụng codec rubydebug để gỡ lỗi cấu hình Logstash.
Buổi chiều:
Xử lý lỗi và giám sát:
Dead letter queue (DLQ): Lưu trữ các sự kiện không thể xử lý được.
Logstash monitoring API: Giám sát hoạt động của Logstash.
Tích hợp với các công cụ giám sát khác: Metricbeat, X-Pack monitoring.
Bài tập:
Cấu hình DLQ để lưu trữ các sự kiện không thể xử lý được.
Sử dụng Logstash monitoring API để lấy thông tin về hoạt động của Logstash.
Cấu hình Metricbeat để thu thập metric từ Logstash và hiển thị trên Kibana.
Ngày 13:
Buổi sáng:
Nâng cao:
Logstash pipelines: Tạo nhiều pipeline để xử lý các loại dữ liệu khác nhau.
Conditional logic: Sử dụng if-else để thực hiện các hành động khác nhau dựa trên điều kiện.
Sử dụng Ruby filter: Viết các bộ lọc tùy chỉnh bằng ngôn ngữ Ruby.
Bài tập:
Tạo một pipeline Logstash để xử lý log Apache và một pipeline khác để xử lý log hệ thống.
Sử dụng conditional logic để lọc ra các sự kiện quan trọng và gửi email cảnh báo.
Viết một Ruby filter để trích xuất thông tin từ một định dạng log tùy chỉnh.
Buổi chiều:
Ôn tập và tổng kết Module 4:
Tóm tắt lại các kiến thức đã học về Logstash.
Giải đáp thắc mắc của học viên.
Ôn tập và làm bài tập củng cố.
Lưu ý:
- Khuyến khích tìm hiểu thêm về các plugin và tính năng nâng cao của Logstash.
Module 5: Kibana (4 ngày)
Ngày 14:
Buổi sáng:
Giới thiệu Kibana:
Tổng quan về Kibana: Vai trò trong ELK Stack, khả năng trực quan hóa và phân tích dữ liệu.
Giao diện Kibana: Các thành phần chính (menu, thanh công cụ, workspace).
Các ứng dụng chính: Discover, Visualize, Dashboard, Canvas, Maps, Machine Learning, Monitoring, Management.
Bài tập:
Khám phá giao diện Kibana và tìm hiểu chức năng của các thành phần chính.
Tạo một workspace mới trong Kibana.
Tìm hiểu về các ứng dụng chính trong Kibana và chức năng của chúng.
Buổi chiều:
Discover:
Tìm kiếm và lọc dữ liệu: Sử dụng thanh tìm kiếm, bộ lọc thời gian, bộ lọc trường dữ liệu.
Phân tích dữ liệu: Xem chi tiết từng document, tạo trường tính toán, lưu tìm kiếm.
Khám phá dữ liệu: Sử dụng chế độ hiển thị table, JSON, discover.
Bài tập:
Tìm kiếm các log có chứa từ khóa "error" trong index logstash-*.
Lọc các log trong khoảng thời gian từ hôm qua đến hôm nay.
Tạo một trường tính toán để hiển thị độ dài của message trong log.
Ngày 15:
Buổi sáng:
Visualize:
Tạo biểu đồ trực quan: Chọn loại biểu đồ (histogram, pie chart, line chart,...), chọn trường dữ liệu, cấu hình các tùy chọn.
Các loại biểu đồ phổ biến:
Histogram: Hiển thị phân bố tần suất của một giá trị.
Pie chart: Hiển thị tỷ lệ phần trăm của các giá trị.
Line chart: Hiển thị xu hướng thay đổi của một giá trị theo thời gian.
Area chart: Tương tự như line chart nhưng tô màu vùng dưới đường.
Scatter chart: Hiển thị mối quan hệ giữa hai giá trị.
Bài tập:
Tạo một biểu đồ histogram để hiển thị phân bố tần suất của status code trong log Apache.
Tạo một biểu đồ pie chart để hiển thị tỷ lệ phần trăm của các trình duyệt web trong log Apache.
Tạo một biểu đồ line chart để hiển thị xu hướng thay đổi của lưu lượng truy cập theo thời gian.
Buổi chiều:
Dashboard:
Tạo dashboard: Thêm các biểu đồ, bản đồ, bảng điều khiển vào dashboard.
Bố trí dashboard: Sắp xếp các thành phần, tùy chỉnh kích thước, màu sắc.
Chia sẻ dashboard: Xuất bản dashboard, nhúng vào trang web.
Bài tập:
Tạo một dashboard để giám sát hệ thống (CPU, RAM, Disk,...).
Tạo một dashboard để hiển thị các chỉ số kinh doanh quan trọng (doanh thu, số lượng đơn hàng,...).
Tạo một dashboard để theo dõi hoạt động của ứng dụng web (lượt truy cập, thời gian phản hồi,...).
Ngày 16:
Buổi sáng:
Canvas:
Tạo báo cáo trực quan tùy chỉnh: Sử dụng các yếu tố như hình ảnh, văn bản, biểu đồ, bảng điều khiển.
Tạo các yếu tố động: Sử dụng các biểu thức để hiển thị dữ liệu động từ Elasticsearch.
Tạo các trang báo cáo: Kết hợp nhiều yếu tố để tạo ra một báo cáo hoàn chỉnh.
Bài tập:
Tạo một báo cáo Canvas để hiển thị tổng quan về hoạt động kinh doanh của công ty.
Tạo một báo cáo Canvas để hiển thị chi tiết về một khách hàng cụ thể.
Tạo một báo cáo Canvas để hiển thị xu hướng thay đổi của các chỉ số kinh doanh theo thời gian.
Buổi chiều:
Machine Learning:
Giới thiệu về Machine Learning trong Kibana: Các tính năng phát hiện bất thường, dự đoán, phân loại.
Tạo job Machine Learning: Chọn loại job, cấu hình các tùy chọn, huấn luyện mô hình.
Sử dụng kết quả: Hiển thị kết quả trên dashboard, tạo cảnh báo.
Bài tập:
Tạo một job Machine Learning để phát hiện các hoạt động bất thường trong log hệ thống.
Tạo một job Machine Learning để dự đoán doanh thu trong tháng tới.
Tạo một job Machine Learning để phân loại khách hàng theo hành vi mua hàng.
Ngày 17:
Buổi sáng:
Các ứng dụng khác:
Maps: Hiển thị dữ liệu địa lý trên bản đồ.
Monitoring: Giám sát hoạt động của Elasticsearch và Kibana.
Management: Quản lý index pattern, saved objects, role-based access control.
Bài tập:
Sử dụng Maps để hiển thị vị trí địa lý của các khách hàng.
Sử dụng Monitoring để giám sát hiệu suất của Elasticsearch cluster.
Tạo các vai trò (role) và phân quyền truy cập cho người dùng Kibana.
Buổi chiều:
Ôn tập và tổng kết Module 5:
Tóm tắt lại các kiến thức đã học về Kibana.
Giải đáp thắc mắc của học viên.
Ôn tập và làm bài tập củng cố.
Lưu ý:
- Khuyến khích tìm hiểu thêm về các tính năng nâng cao của Kibana (ví dụ: TSVB, Timelion, Vega).
Module 6: Beats (2 ngày)
Ngày 18:
Buổi sáng:
Giới thiệu Beats:
Tổng quan về Beats: Các lightweight data shipper của Elastic, chuyên thu thập dữ liệu từ nhiều nguồn khác nhau và gửi đến Logstash hoặc Elasticsearch.
Các loại Beats phổ biến:
Filebeat: Thu thập log từ file.
Metricbeat: Thu thập metric từ hệ thống và dịch vụ.
Packetbeat: Thu thập và phân tích dữ liệu mạng.
Winlogbeat: Thu thập log sự kiện Windows.
Heartbeat: Kiểm tra tình trạng (uptime) của các dịch vụ.
Functionbeat: Chạy các hàm serverless để xử lý dữ liệu.
Ưu điểm của Beats: Nhẹ, dễ cài đặt và cấu hình, hỗ trợ nhiều module, tích hợp tốt với ELK Stack.
Bài tập:
Tìm hiểu về các loại Beats khác nhau và chức năng của chúng.
So sánh ưu nhược điểm của Beats với Logstash input plugins.
Lập danh sách các loại dữ liệu có thể thu thập bằng Beats.
Buổi chiều:
Filebeat:
Cài đặt và cấu hình Filebeat: Tải, giải nén, cấu hình filebeat.yml (đường dẫn file log, Elasticsearch output).
Modules Filebeat: Các module được cấu hình sẵn để thu thập log từ các ứng dụng phổ biến (Apache, Nginx, MySQL,...).
Xử lý đa dòng (multiline): Thu thập các log nhiều dòng thành một sự kiện duy nhất.
Bài tập:
Cài đặt và cấu hình Filebeat để thu thập log Apache.
Sử dụng module Filebeat để thu thập log Nginx.
Cấu hình Filebeat để xử lý log đa dòng của ứng dụng Java.
Ngày 19:
Buổi sáng:
Metricbeat:
Cài đặt và cấu hình Metricbeat: Tải, giải nén, cấu hình metricbeat.yml (module, Elasticsearch output).
Modules Metricbeat: Các module được cấu hình sẵn để thu thập metric từ hệ thống (CPU, memory, disk,...), dịch vụ (Apache, MySQL, Docker,...), cloud (AWS, Azure,...).
Tạo dashboard Metricbeat: Sử dụng dashboard có sẵn trong Kibana để trực quan hóa metric.
Bài tập:
Cài đặt và cấu hình Metricbeat để thu thập metric hệ thống (CPU, memory, disk).
Sử dụng module Metricbeat để thu thập metric MySQL.
Tạo một dashboard Kibana để hiển thị các metric hệ thống quan trọng.
Buổi chiều:
Các Beats khác:
Packetbeat: Thu thập và phân tích dữ liệu mạng (packet).
Winlogbeat: Thu thập log sự kiện Windows.
Heartbeat: Kiểm tra tình trạng (uptime) của các dịch vụ.
Functionbeat: Chạy các hàm serverless để xử lý dữ liệu.
Nâng cao:
Tạo custom Beat: Sử dụng Beat Generator để tạo Beat tùy chỉnh.
Tích hợp Beats với Logstash: Sử dụng Logstash để xử lý dữ liệu trước khi gửi đến Elasticsearch.
Bài tập:
Cài đặt và cấu hình Packetbeat để giám sát lưu lượng mạng.
Sử dụng Winlogbeat để thu thập log sự kiện Windows.
Tạo một custom Beat để thu thập dữ liệu từ một nguồn tùy chỉnh (ví dụ: API).