CloudWatch Logs
CloudWatch Logs là một dịch vụ của Amazon cung cấp các tính năng ghi log và giám sát. Log group trong CloudWatch Logs là một tên tùy ý, thường đại diện cho một ứng dụng. Log stream là các trường hợp trong ứng dụng, các tập tin nhật ký hoặc các container. Bạn có thể định nghĩa các chính sách hết hạn của log (không bao giờ hết hạn, 30 ngày, vv.). CloudWatch Logs có thể gửi các log đến các dịch vụ như Amazon S3 (xuất), Kinesis Data Streams, Kinesis Data Firehose, AWS Lambda, OpenSearch.
CloudWatch Logs Sources
CloudWatch Logs nhận dữ liệu từ nhiều nguồn khác nhau bao gồm:
- SDK, CloudWatch Logs Agent, CloudWatch Unified Agent
- Elastic Beanstalk: thu thập các nhật ký từ ứng dụng
- ECS: thu thập từ các container
- AWS Lambda: thu thập các nhật ký từ các hàm Lambda
- VPC Flow Logs: các nhật ký cụ thể cho VPC
- API Gateway: thu thập các nhật ký từ API Gateway
- Cloud Trail: thu thập các nhật ký từ CloudTrail dựa trên bộ lọc
- Route53: thu thập các nhật ký về các truy vấn DNS trong Route53
CloudWatch Logs Metric Filter & Insights
CloudWatch Logs Metric Filter và Insights là các tính năng của CloudWatch Logs cho phép bạn lọc, tìm kiếm, và truy vấn các dữ liệu logs thu thập được bằng các biểu thức lọc. Ví dụ, bạn có thể tìm kiếm một địa chỉ IP cụ thể trong log hoặc đếm số lần xuất hiện của từ khóa “ERROR” trong các log. Metric filters có thể được sử dụng để kích hoạt cảnh báo CloudWatch. Còn Insights cho phép bạn truy vấn các logs và thêm các truy vấn này vào các bảng điều khiển CloudWatch.
CloudWatch Logs – S3 Export
Khi xuất dữ liệu, thời gian để dữ liệu log trở nên khả dụng có thể lên đến 12 giờ. Để thực hiện hành động này, ta có thể sử dụng API call là CreateExportTask. Tuy nhiên, việc xuất dữ liệu này không đảm bảo thời gian thực hoặc gần thực, do đó, ta nên sử dụng Logs Subscriptions thay vì việc xuất dữ liệu log từ CloudWatch Logs.
CloudWatch Logs Subscriptions
CloudWatch Logs Subscriptions là một cách để streaming logs từ CloudWatch Logs tới một Kinesis Data Stream hoặc một Lambda function, cho phép xử lý và lưu trữ dữ liệu log trong thời gian thực. Khi một log group được subscribe, các log events sẽ được gửi tới Kinesis Data Stream hoặc Lambda function mỗi khi chúng được ghi lại trong log group. Các ứng dụng có thể sử dụng Kinesis Data Streams hoặc Lambda function để xử lý và lưu trữ logs và sử dụng chúng cho phân tích hoặc gỡ lỗi. Sử dụng Logs Subscriptions là một cách hiệu quả để xử lý logs trong thời gian thực và hỗ trợ các ứng dụng có khả năng phản ứng nhanh hơn đối với các sự kiện log.
CloudWatch Logs Aggregation Multi-Account & Multi Region
CloudWatch Logs Aggregation Multi-Account & Multi Region là tính năng cho phép tổng hợp các logs từ nhiều tài khoản và nhiều khu vực khác nhau vào một log group và log stream. Tính năng này giúp quản trị viên có thể dễ dàng quản lý và theo dõi các logs từ nhiều nguồn khác nhau một cách tiện lợi và hiệu quả. Bằng cách sử dụng tính năng này, các logs từ nhiều tài khoản AWS khác nhau có thể được tổng hợp lại trong cùng một vị trí, giúp cho việc phân tích, giám sát và xử lý các logs trở nên dễ dàng và hiệu quả hơn.
Chúng ta có thể vào CloudWatch › Log groups, tại Log group bạn sẽ thấy các logs.
Ví dụ tôi vào runCommandOuput, bạn sẽ thấy 6 logs nằm trong logs group này hiển thị tại Log streams.
Nếu muốn xem chi tiết log thì bạn có thể bấm vào 1 log nào đó, bạn sẽ có kết quả như dưới.
Bạn cũng có thể lọc các log.
Hoặc bạn có thể tạo các bộ lọc bằng cách bấm vào Create metric filter.
Ví dụ bạn có thể lọc theo từ khoá “Installing” tại Filter pattern, chọn 1 dạng data ở phần Select log data to test. Hãy bấm Test pattern bạn sẽ thấy các dữ liệu hiển thì tại phần Show test results và cuối cùng hãy bấm Next để sang phần tiếp theo.
Hãy đặt tên cho bộ lọc này tại phần Filter name, đặt tên metric tại Metric name và số kết quả hiển thị sẽ là 1. Bấm next để sang phần tiếp theo.
Phần này cho phép bạn xem lại các thiết lập, nếu không có gì thay đổi bạn hãy bấm vào Create metric filte.
Hãy vào CloudWatch › Metrics bạn sẽ thấy metric đã hiển thị, hãy bấm vào All để bạn có thể xem các log liên quan.
Đây là kết quả khi bạn bấm vào All.
Bạn có thể tạo các alarm bằng cách vào Log groups, tại phần Metric filters chọn 1 loại metric và bấm Create alarm.
Hoặc bạn cũng có thể tạo 1 Log group mới bằng cách bấm vào Create log group.
Đặt tên cho nó và bấm Create.
Bạn sẽ có 1 log group mới như dưới.
Bạn cũng có thể query log bằng cách vào Logs insights, chọn 1 loại log muốn truy vấn, ví dụ của mình là runCommandOuput, gõ nội dung cần truy vấn và bấm Run Query.
Bạn cũng có thể lựa chọn các mẫu query như hình.