GKEクラスタのアップグレードを簡単にSlackへ通知する

メディア統括本部 サービスリライアビリティグループ(SRG)の小林(@berlinbytes)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
本記事は、GKEのクラスタレベルでのイベントをSlackに簡単に通知できるようになったので、検証してみたレポートになります。
 

はじめに


今まで、GKEのクラスタレベルのイベントはCloud Pub/Subにしか出されておらず、Slackで通知を受けたいと考えた場合、
  • GKE -> Cloud Pub/Sub -> Cloud Functions -> Slack
  • GKE -> Cloud Pub/Sub -> Datadog Logs -> Slack
など、Pub/Subから受け取ったトピックをイベントにトリガーする仕組みが必要でした。
 
それが、2025年2月頃からGKEのUpgradeEventの通知がCloud Loggingにも出されるようになったようなので、今までより簡単にSlackへの通知が行えそうなので検証していこうと思います。
 

通知を設定する


GKEからCloud Loggingにログが出されたタイミングでログベースのアラートポリシーを発報、そのアラートの通知先をSlackに向けることで簡単に実現できそうです。
 
 

通知チャンネルにSlackを追加

まずはSlackに向けた通知チャンネルを設定しておきます。 ドキュメント的にはアラートを作成する流れでも追加ができると書いてあるのですが、設定時のリダイレクトでエラーが出てしまうため、一旦事前に用意しておくことで回避した手順でご紹介します。
  1. アラート – Monitoringページ上部のをクリックします(このリンクでも直接遷移できます)
  1. オープンした、ウィンドウで今回はの横のをクリックします
  1. Google Cloud MonitoringからのSlackワークスペースへアクセス権限のリクエストが表示されます。右上で該当のワークスペースを選択し、権限の内容を確認した上でをクリックします
  1. 自身に管理者権限がない場合は、管理者に追加のリクエストが飛ぶと思います。権限がある場合は次へ
  1. に、対象ワークスペースの通知に使用したいSlackチャンネルの名前を入力します
  1. に簡単な説明文を入力します(例:等)
  1. を押すと、Slackに通知が飛びます
 

アラートポリシーの作成

ログベースのアラートポリシーを設定していきます。
  1. ログ エクスプローラにアクセス
  1. クエリペインに、このような自身の環境に適したクエリを作成します
    1. をクリックしてクエリを検証してみます
    1. 出力がない場合は、ログの対象期間を広げ、出力されることを確認します
    1. クエリ結果の上部にあるからをクリックします
    1. ペインに、各項目を入力していきます
      1. Alert Policy Name:などわかりやすい名前を入力
      2. Policy Severity Level:重要度を入れますが、今回はのままにします
      3. Documentation:通知に含める内容を記入します。Markdownでも書くことができ、変数も使用できます。入力が終わったら、をクリック
      4. Choose logs to include in the alert:アラート条件を入力します。上記手順で進めている場合は、クエリペインに入力したクエリが入力されているはずです。を押すと、クエリで絞り込んだ結果が出力されます
      5. Set notification frequency and autoclose duration:通知の頻度、自動クローズの期間を設定します。今回は通知が目的なのでどちらにもを設定しておきます。入力が終わったら、をクリックします
    1. に、通知先を設定します。で先ほど作成したの該当のチャンネルを選択します
    1. をクリックして保存します
     

    アラートのテストを行う

    ログエントリを手動で記述し発行、アラートが発報されることを確認していきます。
    1. Method: entries.write  |  Cloud Logging  |  Google Cloud へアクセスします
    1. ログエントリの例として、開いたペインのにクエリに引っかかるようなログエントリを記述してみます
      1. をクリック
      1. 認証フローが表示されたら、指示に従います
      1. が成功すると、のレスポンスコードが表示されます。設定がうまく行っている場合は、対象のSlackチャンネルにメッセージが表示されていると思います
       
      以上で、GKEのアップグレードをSlackに通知することができました。
      簡単でしたね!

      価格


      今年から有料化されるとのアナウンスが話題でしたが、2025年3月現在、アラートポリシーに関しては無料です。
      下記ページでは、2026年4月から課金が開始されるとの表記になっています。
      • アラート ポリシーの条件あたり月額 $1.50。
      • 指標アラート ポリシー条件のクエリによって返される 1,000,000 時系列あたり $0.35。
      今回試したクエリだと、返ってくるのは1ヶ月間でも多くて数十件程度だと思われるので、1アラートポリシーへの課金のみだと思われます。
       

      おわりに


      Pub/Subを処理せずともSlackへ気軽に通知できるのは、扱いやすくてとても便利でした。
      他にもクラスタレベルの通知として、
      も同様にCloud Loggingに出力されるようになったようです。
      こちらも同じ手順でSlackで通知を仕掛けると有用です。
      そして、EmailやSMS、PagerDutyへの通知も簡単に実現できますね!
       
      SRG では一緒に働く仲間を募集しています。 ご興味ありましたらぜひこちらからご連絡ください。