Alibaba Cloudの監視でSlackへの通知
やりたいコト
Alibaba Cloud上で
CloudMonitorで検知したアラームを
Function ComputeからSlackへの通知を設定したい。
ちなみに
CloudMonitorとは、AWSのCloudWatchみたいなプロダクト
Function Computeとは、AWSのLambdaみたいなプロダクト
手順
- Slack WebHookの準備
- Function Computeの設定
- Cloud Monitorの設定
1. Slack Webhookの準備
incoming webhookからURLを取得します。
参考サイト:SlackのWebhook URL取得手順
2. Function Computeの設定
Function ComputeはAWSのLambdaみたいなServerless Computingで
現在のTokyo Regionでは6つのランタイムが利用可能で
トリガーは以下の7つが利用可能です。
今回はHTTPトリガーを利用します。
HTTPトリガーのPythonのサンプルを参照して、下記のコードをuploadする。
今回はPython3のランタイムを利用します。
CloudMonitorの設定で利用する為、HTTPトリガーのURLをコピーします。
# -*- coding: utf-8 -*-
import logging
import json
import requests
import datetime
def sendSlack(message):
SLACK_WEBHOOK_URL = "{Your Webhook for Slack}"
slack_message = {
"username": "webhookbot",
"text": message,
"icon_emoji": ':grin:'
}
return requests.post(SLACK_WEBHOOK_URL, data=json.dumps(slack_message))
def handler(environ, start_response):
qs = environ["QUERY_STRING"]
dict = {}
for kv in qs.split("&"):
[k, v] = kv.split("=")
dict[k]=v
message = dict["body"]
dt_now = datetime.datetime.now()
now=dt_now.strftime("%Y -%m-%d %H:%M:%S")
description = 'DateTime: ' + now + '\n' + 'Msg: ' + message
if environ["REQUEST_METHOD"] == 'POST':
sendSlack(description)
status = '200 OK'
response_headers = [('Content-type', 'text/plain')]
start_response(status, response_headers)
return r
else:
return 'skip'
3. CloudMonitorの設定
CloudMonitorの「アラームルール」を選択します。
アラーム設定の最後の「アラームコールバック」にFunction ComputeのURLの入力します。
URLの最後にQuery String を利用して、メッセージを挿入します。
以下のURLで「?body=b1」の部分
https://000000000.ap-northeast-1.fc.aliyuncs.com/2016-08-15/proxy/.../?body=b1
アラームコールバックの説明には「HTTPのみ」との記載がありますが、HTTPSでも対応しているよう...
結果
Slackへの通知の結果は以下の通り。
その他
Function Computeを利用せず、Emailを利用して、Slackへ直接メールを送信は可能で早いです。
メッセージのカスタマイズはできませんが、利用用途次第ではEmailでも対応可能です。
Author And Source
この問題について(Alibaba Cloudの監視でSlackへの通知), 我々は、より多くの情報をここで見つけました https://qiita.com/Ivankov/items/139f09964b5349a139ec著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .