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
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ự 🙂