Nội dung cập nhật CloudWatch Logs

Regex (hay RegExp hay RegExr) là cụm từ viết tắt của Regular Expression – biểu thức chính quy, là một loạt các ký tự đặc biệt được xác định để tạo ra các mẫu trong chuỗi ký tự. Chúng có thể được sử dụng để kiểm tra sự khớp, tìm kiếm và thay thế các chuỗi và đoạn ký tự, cũng như để phân tích cú pháp trong văn bản.

Giờ đây, bạn có thể sử dụng Regex trong filter pattern của CloudWatch Logs. Điều này giúp bạn tùy chỉnh log mà bạn muốn trích xuất một cách dễ dàng hơn. Việc quản lý log trở nên tiện lợi hơn vì không cần phải định nghĩa nhiều filter khác nhau.

Các Regex được hỗ trợ bao gồm:

  • Ký tự chữ và số: Bao gồm chữ cái (A đến Z hoặc a đến z) và số (0 đến 9).
  • Ký tự đặc biệt được hỗ trợ: Bao gồm ‘_’, ‘#’, ‘=’, ‘@’, ‘/’, ‘;’, ‘,’, và ‘-‘.
  • Ví dụ: %something!% không được hỗ trợ do chứa ‘!’ .
  • Các toán tử được hỗ trợ: ‘^’, ‘$’, ‘?’, ‘[‘, ‘]’, ‘{‘, ‘}’, ‘|’, ”, ‘*’, ‘+’.
  • Các toán tử không được hỗ trợ: ‘(‘, ‘)’.

Cách sử dụng Regex trong CloudWatch Logs

Ví dụ: Định nghĩa “apple.com” là filter pattern. Bạn sẽ tìm thấy kết quả phù hợp khi lọc.

Ưu điểm của Regex

CloudWatch Logs thường được sử dụng như một công cụ giám sát log, ví dụ “khi có log ●● xuất hiện thì gửi thông báo đến ○○”.

Trước bản cập nhật này, bạn phải sử dụng cú pháp filter pattern để tìm kiếm log, sử dụng metric filter (bộ lọc số liệu) để trích xuất số liệu và sử dụng subscription filter (bộ lọc đăng ký) để chuyển tiếp log cụ thể đến điểm đến khác:

Metric filter:

Tìm kiếm và lọc dữ liệu log trong CloudWatch Logs.

Chuyển đổi dữ liệu log thành số liệu CloudWatch Metrics, tạo biểu đồ và thiết lập cảnh báo.

Subscription Filter:

Truy cập log event từ CloudWatch Logs để thực hiện xử lý tùy chỉnh, phân tích hoặc tải lên hệ thống khác như Amazon Kinesis Stream, Amazon Kinesis Data Firehose Stream, AWS Lambda.

Hạn chế của Filter Pattern trước khi cập nhật

Regex không hỗ trợ log data và cũng không được hỗ trợ trong metric filter của Amazon CloudWatch. Để xử lý log data của bạn bằng regex, bạn cần sử dụng Amazon Kinesis để kết nối stream với công cụ xử lý regex.

Khắc phục những nhược điểm trên, với bản cập nhật lần này, nhờ việc hỗ trợ Regex, bạn có thể sử dụng các biểu thức như ‘{ $.statusCode=%4[0-9]{2}% }’ để tạo một filter duy nhất phù hợp với nhiều subnet IP hoặc HTTP status code, từ đó quản lý log dễ dàng hơn.

Tham khảo: 

  1. 【アップデート】CloudWatch Logsのフィルターパターンで正規表現がサポートされました | SunnyCloud
  2. Amazon CloudWatch Logs announces regular expression filter pattern syntax support