Một lần tích hợp GCP Log Explorer và Slack

Trong một dự án gần đây, khách hàng có 1 yêu cầu khá đặc biệt là team VN sẽ không được access vào môi trường Production. Mọi thao tác trên production sẽ do phía khách hàng (KH) trực tiếp thao tác. Toàn bộ dữ liệu trong DB trên Production là dữ liệu business thật và vì thế team VN không được phép view. Tuy nhiên khi hệ thống chạy có lỗi hoặc khi release có lỗi thì KH tất nhiên vẫn yêu cầu phía VN support để trouble shooting.

Để phù hợp với định hướng trên, KH có yêu cầu phải có notification tự động vào 1 shared Slack channel khi có lỗi execution hoặc lỗi release xẩy ra. Tuy nhiên thông tin access được qua Slack notification này không được phép chứa bất kỳ business data nào. VD khi một câu SQL thực hiện bị lỗi thì trong log dùng để debug/ investigate không được phép output kết quả query hay output bất kỳ dữ liệu CRUD nào có liên quan đến business. Môi trường chạy Production của KH là Google Cloud Platform (GCP) .

Qua dự án này, team VN đã nghiên cứu vài điều “mới lạ” so với các dự án khác, ví dụ như làm thế nào để filter log output ra, làm thế nào để tích hợp GCP Log với Slack để tự động notify khi có error…. Kết quả là team đã nghiên cứu và ứng dụng thành công 1 số config của GCP như Log-based metric và Alert Policy ….. Bài viết này nhằm tổng hợp và giới thiệu các bước config đó.

Để tiện hình dung, xin giới thiệu sơ đồ tích hợp tổng quan như sau:

a. Install Google Cloud Monitoring to the target Slack channel:

Click on Channel details của target Slack channel:

Click “Integrations” tab

Click Add apps , chọn “Google Cloud Monitoring”

Click Add, confirm cái Google Cloud Monitoring App đã được added vào channel:

b. Create Log based metric (User-defined) on GCP

Go to: https://console.cloud.google.com/logs/metrics trên môi trường cần tích hợp

Click CREATE METRIC

sau đó fill vào Log metric name và Log query (Build filter)

Click CREATE METRIC button

Click MANAGE METRICS và confirm có 1. new User-defined metric xuất hiện:

c1. Integrate target Slack channel to GCP:

Tại GCP Monitoring, select Alerting

Chọn tab EDIT NOTIFICATION CHANNELS, scroll down xuống đến Slack và click ADD NEW

Pop up sau sẽ xuất hiện để bạn authorize cho Google Cloud Monitoring có thể access đến target Workspace (chứa target channel)
Click Allow,

sau đó fill vào target Slack Channel Name và Cloud Alerting Display Name

VD

Bạn có thể thử SEND TEST NOTIFICATION và check channel để confirm việc integration đã OK

c2. Set up the ALERT POLICY on GCP

Back to: https://console.cloud.google.com/logs/metrics

Click vào right menu (biểu tượng 3 dấu chấm dọc ở bên phải) của Log-based metric đã được created ở step b., select “Create alert from metric”:

Màn hình Create Alerting Policy sẽ được showed, select “Notifications and name” từ menu bên trái

Chỉ định target Slack channel đã configured ở step c1. vào mục Notification Channels

Input Alert policy name

VD

Click NEXT, có thể dùng các giá trị default và finish quá trình setup

Vâng, sau khi kết thúc bước trên, mọi config cần thiết để tích hợp GCP Log và Slack đã hoàn tất và bạn có thể chạy thử xem mọi thứ có hoạt động trơn tru như ý đồ hay không.

Hy vọng bạn có thể tìm thấy thông tin hữu ích khi gặp tình huống tương tự 🙂

Add a Comment

Scroll Up