GCP Log ExplorerとSlackを連携（ザックリのガイド）

**仮説の利用シナリオ**
　プロダクトの実行環境はGoogle Cloud Platform(GCP)。
　通常稼働およびリリース直後の強制実行でCloud function実行エラーが発生したら自動Slack通知を飛ばす

上の自動Slack通知仕組み実現できるようGCPのドキュメントを調べて実現した。

**実現できたGCPログとSlack連携仕組みの構成要素**
  。(Slack App)Google Cloud Monitoring,
  。GCP Log-based metric,
  。GCP Alert Policy 

**連携仕組みの概要図**
　![Screen Shot 2022-06-17 at 10.48.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/22f34534-6ac7-e62f-0bd4-60b3fae8b8e9.png)

以降、step a b, c1, c2を順次に簡単なサンプル画像で紹介していきます

**a. 対象SlackチャネルにGoogle Cloud Monitoringを設置**
対象チャネルのChannel detailsをクリック
![22b30b3d-d42e-4a37-9908-8260464d6d78.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/7939bbdb-f654-9840-69cb-de6ff3e693e4.png)
“Integrations”タブをクリック
![1371dddd-e787-4a11-99db-93a68c3df1a1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/0b7b0e09-3d1c-66db-7939-272dedc7e3f6.png)
Add appsを押下、“Google Cloud Monitoring”を選択する
![85e4a768-1094-4529-840e-f7f6aba4697f.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/36778600-903c-df03-bc23-9a9f6c9a9d5f.png)
Addをクリック、対象チャネルにGoogle Cloud MonitoringとのAppが追加されたことを確認
![6b87c2c5-33f8-42b3-882c-4e0e65526b1a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/32d8dd99-e2d7-ad8a-2810-9c9ee2f3782a.png)

**b. GCPにてLog based metric (User-defined)を新規作成**
対象GCP環境で https://console.cloud.google.com/logs/metrics に遷移する
![0af7b5e8-bcb3-42f6-a6d0-9e0d49ba1067.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/940e8638-5ebf-1263-f23f-6b5de8bd4890.png)
CREATE METRICを押下
次にLog metric nameとLog query（フィルター条件）を記入する。
例
![85b1c4c8-e38a-4d59-87cb-57715af0837d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/69b70b6e-5597-6b9c-9bdf-4cc9f33e3422.png)
CREATE METRICボタンを押下
![d85a394f-f4aa-464d-9fb1-60ac819e7078.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/2f32849f-63c8-b329-f040-cbae0f24e26a.png)
MANAGE METRICSをクリックし、一つの新しいUser-defined metricが追加されたことを確認
![db035d3e-89ca-4a5c-9d9d-0d9c3bcbe19f.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/813e787e-4332-73b6-1913-75b363155cc7.png)

**c1.対象Slackチャネルを対象GCP環境に連携させる**
対象環境のGCP MonitoringにてAlertingを選択する
![06187da0-2bee-436d-bf06-dd0fdb5f7d68.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/0789467d-107e-a45d-421e-0c54dd16399e.png)
EDIT NOTIFICATION CHANNELSタブに遷移し、Slackまで下方スクローンしてADD NEWをクリック
![4c8c2256-b916-4c5a-a573-fd71a4118403.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/056f30d3-6eff-7526-a2a1-706c5fcbbb05.png)
下記のポップアップが出て、そこで対象Slackチャネルの親Workspaceへのアクセス権限をGoogle Cloud Monitoringに渡す
![image (10).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/31c7c0a5-5dfd-743d-02cb-1d5888d8636b.png)
Allowボタンをクリック
![image (11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/cba826de-3480-4744-dfdd-69193859a1b4.png)
上で対象Slack Channel Name及びCloud Alerting Display Nameを記入する
例
![ef87caef-1285-44f9-bca9-e6c3dd288ae8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/0a3d60f6-be49-c575-a1b6-85f3e7862844.png)
SEND TEST NOTIFICATIONをクリックしてみて、対象チェネルにテストメッセージが送信されたか確認する

**c2.GCP上ALERT POLICYをセットアップ**

 https://console.cloud.google.com/logs/metrics に戻る

b.で作成したLog-based metricの一番右側縦3点アイコンをクリックして "Create alert from metric"を選択する
![6b41c9b4-9938-43f0-a4a9-6afa84701781.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/c28d7d1b-6ca3-ef61-182d-27d1d9285ba0.png)
Create Alerting Policy画面が表示され、その画面の左メニューから"Notifications and name"を選択する
次に、ステップc1.で設定されたSlackチャネルをNotification Channels項目に指定する
![71a9f395-fd10-4f0f-8fdc-e652cd06b5c1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/4b35f8b5-e31f-1995-3f3e-46a4a1fab266.png)
Alert policy nameを記入する
例
![8cd75a26-f2ab-4652-b4f6-f0a4fff3104e.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/992bba07-be25-0d91-31b9-cab58afbc71f.png)
NEXTボタンをクリックして、デフォルト値のままで後続して設定を完了させる

上が完了後、GCP Log及びSlack連携が出来上がって、意図した挙動がうまく行くかテスト開始いただけます
　:)
![Screen Shot 2022-06-17 at 10.08.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629773/1d3a98fb-07be-3dbd-0e13-c80a1a9c6327.png)

以上。