Quản lý logging

Một phần của tài liệu PHÁT TRIỂN PHẦN mềm THEO HƯỚNG CHIA NHỎ PHẦN DỊCH vụ (MICROSERVICES) và PHẦN GIAO DIỆN (MICRO FRONTENDS) (Trang 70 - 73)

Logging là việc ghi lại các thông tin, dấu vết trong quá trình xử lý, hoạt động của ứng dụng. Ghi log đặc biệt quan trọng để theo dõi dấu vết và các thông số liên quan đến hệ thống khi chương trình gặp lỗi. Để xử lý và quản lý tập trung quá trình ghi log, hệ thống CEMS áp dụng các công cụ sau:

Logstash: một công cụ để thu thập, lọc và xử lý các tệp tin log.

Elasticsearch: công cụ hỗ trợ hoạt động tìm kiếm và lưu trữ toàn văn bản.

60

Kibana: một công cụ cung cấp cơ chế phân tích và hiển thị dữ liệu từ elasticsearch một cách trực quan hóa.

Bộ ba công cụ trên nằm trong một dự án gọi là ELK50, được sử dụng rộng rãi trong các giải pháp quản lý log tập trung cho ứng dụng.

Mục này của luận văn không đi vào giải thích chi tiết cách dùng bộ công cụ ELK, mà chỉ tập trung vào việc mô tả cơ chế, quá trình tích hợp ELK vào CEMS.

Để sử dụng logging, trước hết mỗi một microservice cần cấu hình thông tin ghi log trong một tệp tin gọi là application.properties (xem hình 3.19) và sử dụng log4j51, một công cụ mã nguồn mở hỗ trợ cơ chế ghi log cho ứng dụng.

Hình 3.19. Cấu hình ghi log trong tệp application.properties

Để logstash thu thập được dữ liệu từ các microservices, ta cần quản lý thông tin cấu hình ghi log trong một tệp cấu hình, gọi là cems-config.conf. Nội dung tệp cấu hình này được minh họa trong hình 3.20. Thông số cấu hình gồm hai phần chính:

• Phần input: cấu hình các tệp ghi log cho logstash.

• Phần output: cấu hình thông số dữ liệu đầu vào (các tệp ghi log) cho elasticsearch. Địa chỉ cổng mặc định của elasticsearch là 9200.

Mô hình hoạt động của ELK được mô tả trong hình 3.21:

• Logstash có nhiệm vụ thu thập, đọc dữ liệu từ các tệp log của từng microservice.

• Elastichsearch thực hiện cơ chế xử lý tệp log, đánh chỉ mục, chuyển dữ liệu về các định dạng như JSON và cung cấp các API để thực hiện tìm kiếm toàn văn bản trên các tệp tin.

• Dữ liệu xử lý từ elasticsearch sẽ được hiển thị một cách trực quan hóa trên Kibana.

50 https://www.elastic.co/what-is/elk-stack 51 https://logging.apache.org/log4j/2.x/

61

Hình 3.20. Cấu hình minh họa cho logstash và elasticsearch

Hình 3.21. Mô hình hoạt động của ELK

Dữ liệu log của hệ thống sẽ được hiển thị trực quan hóa trên màn hình quản lý log của Kibana. Hình 3.22 minh họa dữ liệu log của module customer-service được lọc theo khoảng thời gian.

62

Hình 3.22. Ví dụ thông tin log của module customer-service

Một phần của tài liệu PHÁT TRIỂN PHẦN mềm THEO HƯỚNG CHIA NHỎ PHẦN DỊCH vụ (MICROSERVICES) và PHẦN GIAO DIỆN (MICRO FRONTENDS) (Trang 70 - 73)