2.7 Bảo mật quá trình phát triển phần mềm
2.7.6 ELK Stack - Giám sát tích hợp và triển khai liên tục
Hoạt động ghi nhật ký (logging) là một phần không thể thiếu trong một hệ thống công nghệ thông tin, nó sẽ lưu lại các dấu vết, các hoạt động đã xảy ra trên hệ thống
để giúp quản trị viên hệ thống có thể phân tích, điều tra để biết được những gì đã diễn
ra trên hệ thông của họ. Cùng với sự phát triển của công nghệ thông tin, càng có nhiều
hệ thống lớn được xây dựng và số lượng các tập tin nhật ký (file log) mà mỗi hệ thống này ghi lại vô cùng lớn. Bài toán đặt ra là làm thế nào để quản lý số lượng lớn các tập
tin nhật ký (file log) sao cho hiệu quả trong khi các công cụ quản lý nhật ký (log) hiện
tại lại không giải quyết được vấn đề này. Điều nay đã thúc day sự ra đời của bộ công
cu ELK Stack [50].
ELK Stack là một giải pháp phân tích nhật ky (log) hoàn chỉnh được xây dung dựa
trên sự kết hợp của ba công cụ mã nguồn mở: Elasticsearch, Logstash và Kibana [51].
Nó cho phép tìm kiếm, phân tích và hiển thị trực quan các nhật ký (log) với bat kì định dạng nào và được thu thập từ các nguồn khác nhau. ELK sử dụng Elasticsearch để lưu trữ và tìm kiếm dữ liệu, Logstash để tiếp nhận và xử lý nhật ký (log) tập trung từ nhiều nguồn khác nhau và Kibana để hiển thị trực quan các nhật ky (log) lên giao diện người
dùng.
Các thành phan chính của ELK Stack bao gồm [51, 52]:
* Elasticsearch: Elasticsearch là một công cụ tìm kiếm mã nguồn mở phân tán dựa trên Apache Lucene, và được phát hành theo giấy phép Apache 2.0. Là trung tâm của ELK Stack, Elasticsearch lưu trữ tập trung dữ liệu để có thể tìm kiếm một cách nhanh chóng và phân tích dữ liệu một cách dễ dàng.
* Logstash: Logstash là một công cụ mã nguồn mở dùng để thu thập, phân tích và
xử lý nhiều loại dữ liệu được tạo ra trên nhiều hệ thống khác nhau và sau đó gửi chúng đến kho lưu trữ Elasticsearch. Logstash tạo ra một đường ống (pipeline)
để dễ dàng đưa dữ liệu từ các máy chủ hoặc hệ thống đến kho lưu trữ.
* Kibana: Kibana là một công cụ trực quan hóa dữ liệu mã nguồn mở được cấp phép bởi Apache 2.0 giúp hiển thị bất kì loại dữ liệu nào được lưu trữ trong Elasticsearch. Kibana được viết hoàn toàn bằng HTML và JavaScript. Nó hiển thị dữ liệu thông qua các biểu dé, đồ thị, bảng... giúp người dùng đọc hiểu một khối lượng dữ liệu lớn dé dàng.
+ Beats: Beats là một phần mềm mã nguồn mở được cài đặt trên các máy chủ hoặc
hệ thống để gửi dữ liệu từ chúng tới Logstash hoặc Elasticsearch.
59
Beằ ố = = ô-Ế
beats logstash elasticsearch kibana
Data Data Indexing & Analysis &
Collection Aggregation storage visualization
& Processing
Hình 2.16: Cơ chế hoạt động của ELK Stack.
Cơ chế hoạt động của ELK Stack được thể hiện như trong hình 2.16, bao gồm:
ằ Đầu tiờn, Beats đọc cỏc tập tin nhật ký (file log) và gửi chỳng lờn Logstash dưới
đạng các Filebeat.
* Tiếp theo, Logstash sẽ đọc những tập tin nhật ký (file log), xử lý các dữ liệu thu được và gửi chúng đến Elasticsearch.
* Sau đó, Elasticsearch sau khi nhận được và phân tích dữ liệu sẽ lưu chúng vào
kho lưu trữ để có thể tìm kiếm một cách dễ dàng.
* Cuối cùng, để xem được các thông tin nhật ký (log), người dùng phải truy cập
vào URL của Kibana. Kibana sẽ đọc thông tin nhật ky (log) trong Elasticsearch
và hiển thị lên giao diện cho người dùng.
ELK Stack là một hệ thống phân tích nhật ký phù hợp cho các doanh nghiệp vừa và nhỏ, giúp giảm bớt chỉ phí cài đặt cho các sản phẩm thương mại. ELK Stack có tốc độ tìm kiếm nhanh hơn so với Splunk [53] và cung cấp nhiều công cụ trực quan hữu ích
cho quản trị viên. Vì vậy, ELK Stack được xem là công cụ phân tích nhật ký với hiệu
suất cao và chi phí thấp.
Chương 3