シナリオB: SlackおよびSMSへのアラーム・メッセージの送信

アラームがトリガーされた場合のSlackチャネルおよびSMS電話番号への自動通知を設定します。

このシナリオでは、チャネルのSlackエンドポイントを設定し、そのチャネルとSMS電話番号の両方にメッセージを送信するアラームを作成します。アラームが起動すると、通知サービスがアラームのメッセージを宛先トピックに送信し、さらにトピックのサブスクリプションに展開します。このシナリオでは、トピックのサブスクリプションには、Slackチャネル、SMS電話番号および電子メール・アドレスが含まれています。

この図は、アラームのメッセージをSlackに送信するシナリオのコンテキストでの通知を示しています。

必須IAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者からポリシーでセキュリティ・アクセス権が付与されている必要があります。コンソールまたは(SDK、CLIまたはその他のツールを使用した) REST APIのどれを使用しているかにかかわらず、このアクセス権が必要です。権限を持っていない、または認可されていないというメッセージが表示された場合は、持っているアクセス権のタイプと作業しているコンパートメントを管理者に確認してください。

管理者グループのメンバーであれば、このシナリオを実行するために必要なアクセス権はすでに持っています。そうでない場合は、モニタリングおよび通知にアクセスする必要があります。

タスク1: Slackエンドポイントの設定

Slackアプリケーションへの受信Webフックを作成します

Slackアプリケーションへの受信Webフックの例(サブスクリプションのSlackエンドポイントと同等): https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

Slackエンドポイントを設定すると、コンソールで他のすべてのシナリオ・ステップを完了できます。または、Oracle Cloud Infrastructure CLIまたはAPIを使用して、各操作を自分で実行することもできます。

タスク2: トピックの作成

トラブルシューティングのヘルプは、通知のトラブルシューティングを参照してください。

  • ノート

    このシナリオの別のコンソール・ワークフローでは、アラームを作成してから、そのトピックで追加のサブスクリプションを作成するときに、新しいトピックと最初のサブスクリプションを作成します。
    1. 「トピックの作成」パネルを開きます: 「トピック」リスト・ページで、「トピックの作成」を選択します。リスト・ページの検索に関するヘルプが必要な場合は、トピックのリストを参照してください。
    2. 「名前」に、「アラーム・トピック」と入力します。
    3. 「作成」を選択します。
  • oci ons topic createコマンドと必要なパラメータを使用して、トピックを作成します:

    oci ons topic create --name <name> --compartment-id <compartment_OCID>

    例:

    oci ons topic create --name "Alarm Topic" --compartment-id "<compartment_OCID>"

    CLIコマンドのパラメータおよび値の完全なリストは、通知のコマンドライン・リファレンスを参照してください。

  • CreateTopic操作を実行して、トピックを作成します。

    次に例を示します:

    POST /20181201/topics
    Host: notification.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "name": "Alarm Topic",
      "compartmentId": "<compartment_OCID>"
    }

タスク3: サブスクリプションの作成

トラブルシューティングのヘルプは、通知のトラブルシューティングを参照してください。

    1. 前に作成したトピックを選択します(例の名前は「アラーム・トピック」)。「トピック」リスト・ページで、作業するトピックを選択します。リスト・ページまたはトピックの検索に関するヘルプが必要な場合は、トピックのリストを参照してください。
    2. Slackサブスクリプションを作成します。
      1. 「サブスクリプションの作成」パネルを開きます: トピックの詳細ページで、「サブスクリプションの作成」を選択します。
        「サブスクリプションの作成」パネルが開きます。
      2. 「プロトコル」で、「Slack」を選択します。
      3. 残りのフィールドに入力します。
        フィールド 内容
        URL

        前に作成したSlackエンドポイントを入力(またはコピーして貼り付けます)します。Webフック・トークンを含めます。

        エンドポイント例:

        https://hooks.slack.com/services/<webhook-token>
      4. 「作成」を選択します。
      5. 新規Slackサブスクリプションの確認: Slackに送信された確認URLに移動します。
    3. SMSサブスクリプションを作成します。
      1. 「サブスクリプションの作成」パネルを開きます: トピックの詳細ページで、「サブスクリプションの作成」を選択します。
        「サブスクリプションの作成」パネルが開きます。
      2. 「プロトコル」で、「SMS」を選択します。
      3. 残りのフィールドに入力します。
        フィールド 内容
        電話番号の国を選択します。開始する前にを参照してください。
        電話番号 E.164形式で電話番号を入力します。
      4. 「作成」を選択します。
      5. 新しいSMSサブスクリプションの確認: 電話で受信された指示に従います。
    4. 電子メール・サブスクリプションを作成します。
      1. 「サブスクリプションの作成」パネルを開きます: トピックの詳細ページで、「サブスクリプションの作成」を選択します。
        「サブスクリプションの作成」パネルが開きます。
      2. 「プロトコル」で、「電子メール」を選択します。
      3. 残りのフィールドに入力します。
        フィールド 内容
        電子メール 電子メール・アドレスを入力してください。
      4. 「作成」を選択します。
      5. 新しい電子メール・サブスクリプションの確認:電子メールを開き、確認URLに移動します。
  • ノート

    サブスクリプションを作成したら、確認してください。

    各サブスクリプションを作成するには、oci ons Subscription createコマンドおよび必須パラメータを使用します:

    oci ons subscription create --protocol <subscription_type> --subscription-endpoint <endpoint> --compartment-id <compartment_OCID> --topic-id <topic_OCID>

    Slackサブスクリプションの例:

    oci ons subscription create --protocol "SLACK" --subscription-endpoint "<slack-endpoint>" --compartment-id "<compartment_OCID>" --topic-id "<topic_OCID>"

    SMSサブスクリプションの例:

    oci ons subscription create --protocol "SMS" --subscription-endpoint "<sms-endpoint>" --compartment-id "<compartment_OCID>" --topic-id "<topic_OCID>"

    Eメール・サブスクリプションの例:

    oci ons subscription create --protocol "EMAIL" --subscription-endpoint "john.smith@example.com" --compartment-id "<compartment_OCID>" --topic-id "<topic_OCID>"

    CLIコマンドのパラメータおよび値の完全なリストは、通知のコマンドライン・リファレンスを参照してください。

  • ノート

    サブスクリプションを作成したら、確認してください。

    CreateSubscription操作を実行して、各サブスクリプションを作成します。

    Slackサブスクリプションの例:

    POST /20181201/subscriptions
    Host: notification.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "topicId": "<topic_OCID>",
      "compartmentId": "<compartment_OCID>",
      "protocol": "SLACK",
      "endpoint": "<slack-endpoint>"
    }

    SMSサブスクリプションの例:

    POST /20181201/subscriptions
    Host: notification.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "topicId": "<topic_OCID>",
      "compartmentId": "<compartment_OCID>",
      "protocol": "SMS",
      "endpoint": "<sms-endpoint>"
    }

    Eメール・サブスクリプションの例:

    POST /20181201/subscriptions
    Host: notification.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "topicId": "<topic_OCID>",
      "compartmentId": "<compartment_OCID>",
      "protocol": "EMAIL",
      "endpoint": "john.smith@example.com"
    }

タスク4: アラームの作成

トラブルシューティングのヘルプは、通知のトラブルシューティングを参照してください。

    1. 「アラームの作成」ページを開きます
      1. ナビゲーション・メニューを開き、「監視および管理」.をクリックします「モニタリング」で、「アラーム定義」をクリックします。
      2. 「アラームの作成」を選択します。

    2. 「アラーム名」に、「使用状況アラーム」と入力します。
    3. 「メトリックの説明」で、メトリック、間隔および統計を選択します。

      フィールド このシナリオの値の例
      コンパートメント 高いCPU使用率を監視するインスタンスを含むコンパートメントを選択します。
      メトリック・ネームスペース oci_computeagent
      メトリック名 CpuUtilization
      間隔 1m
      統計
    4. 「トリガー・ルール」で、アラームしきい値を設定します。

      フィールド このシナリオの値の例
      演算子 次より大きい
      90
      トリガー遅延分数 1
    5. 「通知」「宛先」で、前に作成したトピックを選択します。
      フィールド このシナリオの値の例
      宛先サービス 通知サービス
      コンパートメント 前に作成したトピックを含むコンパートメントを選択します。
      トピック 前に作成したトピックを選択します。
    6. 「アラームの保存」を選択します。

  • アラームを作成するには、oci monitoring alarm createコマンドおよび必須パラメータを使用します:

    oci monitoring alarm create --display-name <name> --compartment-id <compartment_OCID> --metric-compartment-id <compartment_OCID> --namespace <metric_namespace> --query-text <mql_expression> --severity <level> --destinations <file_or_text> --is-enabled <true_or_false>

    例:

    oci monitoring alarm create --display-name "Utilization Alarm" --compartment-id "<compartment_OCID>" --metric-compartment-id "<compartment_OCID>" --namespace "oci_computeagent" --query-text "CpuUtilization[1m].count() > 90" --severity "CRITICAL" --destinations "<topic_OCID>" --is-enabled true

    CLIコマンドのパラメータおよび値の完全なリストは、モニタリングのコマンドライン・リファレンスを参照してください。

  • アラームを作成にするには、CreateAlarm操作を実行します。

    例:

    POST /20180401/alarms
    Host: telemetry.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "displayName": "Utilization Alarm",
      "compartmentId": "<compartment_OCID>",
      "metricCompartmentId": "<compartment_OCID>",
      "namespace": "oci_computeagent",
      "query": "CpuUtilization[1m].count() > 90",
      "severity": "CRITICAL",
      "destinations":
      [
        "<topic_OCID>"
      ],
      "isEnabled": true
    }