GCPのCloud MonitoringでのアラートをDiscordで受け取る
- 2023.01.19
- ブログ運営
- Discord, Google Cloud Platform, サーバー, ブログ運営
Cloud MonitoringでのCPU使用率アラートをDiscordに送りたいという記事です。
GCPのCloud MonitoringでのアラートをDiscordで受け取る
現在GCEのCPU使用率をCloud Monitoringで監視し、アラートをメールに送るように設定してあります。
メール通知でも大きな問題は無いのですが、Discordに通知されたほうが都合が良いのでDiscordに送られるようにします。
なお、アラートの通知先としてWebhookに対応していますが、DiscordのWebhookでは使えないのでDiscordに通知を送るためにはまぁまぁの手間をかける必要があります。
Discordの準備
Discordに通知を送るためにDiscord側の準備が必要なので、上の記事のWebhookの作成までを行ってください。
Cloud Functionsの利用
Discordに通知を送るためのコードを実行する必要があるのでCloud Functionsを利用します。
メニューを開いてその他のプロダクトを開き、サーバーレスの欄にあるCloud Functionsを選択します。
関数を作成をクリックするとAPIの有効化を要求されるので有効にしてください。
関数名などは好みでOKです。
トリガー
今回はアラートをトリガーにして実行したいので、Cloud Pub/Subを選択します。
トピックを選択を開き、トピックを作成するをクリックしてトピックを作成します。
適当なトピックIDを入力して作成してください。
作成後、保存をクリックしてください。
次へをクリックし、実行したいプログラムに合わせてランタイムを指定し、エディタにソースコードを貼り付けてください。
なお、今回はPythonで通知を送るだけのコードを記述しました。
from discordwebhook import Discord
alert_webhook = Discord(url="ここにWebhookURL")
def main(event, context):
alert_webhook.post(content="Alert-CPU utilization", username="Google Cloud Platform")
requirements.txtに
discordwebhook
を指定してデプロイをクリックしてください。
作成後表示されるトピックの名前をコピーしておいてください。
通知チャンネルの設定
Google Cloud Platformを開き、メニューからMonitaring→アラート、EDIT NOTIFICATION CHANNELSをクリック、Pub/SubをADD NEWし、適当に命名して先程コピーしたトピックの名前を貼り付ければOKです。
この際、権限に関する注意事項が表示されていると思うので、そこの
service-hoge@gcp-sa-monitoring-notification.iam.gserviceaccount.com
のような部分をコピーしておいてください。
権限の許可
アラートを飛ばせるように権限を許可します。
メニュー→分析の欄にあるPub/Subを開いてください。
先ほど作成したトピックIDのその他の操作から権限の表示を開き、プリンシパルを追加をクリックしてください。
新しいプリンシパルに先程コピーした
service-hoge@gcp-sa-monitoring-notification.iam.gserviceaccount.com
のような部分を貼り付け、ロールにPub/SubのPub/Subパブリッシャーを選択して保存してください。
テストの実行
もう一度メニューからMonitaring→アラート、EDIT NOTIFICATION CHANNELSをクリックし、先ほど作成したPub/Subの編集を開き、テスト通知を送信をクリックして動作を確認してください。
アラート設定
あとはアラートの設定を行い、Notification Channelsに作成したPub/Subを割り当てればOKです。
これでアラートがDiscordに送られるようになります。
-
前の記事
JCBカードをAmazonで利用すると5000円ごとに1000ポイント還元 2023年2月13日まで 2023.01.18
-
次の記事
Pythonでスクレイピングを行う 2023.01.20