シナリオ: ログ・データの警告

コネクタ・ハブ、ロギング、およびモニタリングの各サービスを使用して、ログ・データに対してアラームを設定します。

このシナリオでは、コネクタとアラームを作成します。コネクタ(コネクタ・ハブ) は、受信したログ・データによってトリガーされると、アラーム が起動する間、ロギングのログ・データを処理および移動します。

必要なIAMポリシー

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

コネクタを作成するワークフローには、ターゲット・サービスへの書込み権限を提供するために必要なデフォルト・ポリシーが含まれます。ポリシーを初めて使用する場合は、ポリシーの開始および共通ポリシーを参照してください。

このシナリオの設定

設定はコンソールで行うと簡単です。または、Oracle Cloud Infrastructure CLIまたはAPIを使用して、各操作を自分で実行できます。

コンソールの使用

この項では、コンソールを使用したコネクタおよびアラームの作成と、アラームで作成したトピックの更新について説明します。

ノート

このシナリオのもう1つのワークフローでは、最初にトピックサブスクリプションの作成を行ってから、アラームを作成するときにそのトピックを選択します。

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

タスク1: コネクタの作成

この例では、コンソールを使用した、拒否されたトラフィックについてロギングVCNフロー・ログをフィルタしてから、そのログ・データをモニタリングの新しいメトリックに移動するコネクタの作成について説明します。

  1. ナビゲーション・メニューを開き、「アナリティクスとAI」をクリックします。「メッセージング」で、「コネクタ・ハブ」をクリックします。
  2. サービス・コネクタを作成するコンパートメントを選択します。
  3. 「コネクタの作成」を選択します。
  4. コネクタの作成ページで、新しいメトリックになるようにVCNフロー・ログをフィルタ処理します:

    • 「コネクタ名」に「VCNフロー・ログ・エラー」などと入力します。機密情報を入力しないでください。
    • 新しいコネクタを格納するリソース・コンパートメントを選択します。
    • 「コネクタの構成」で、ログ・データをメトリックに移動するソース・サービスおよびターゲット・サービスを選択します:
      • ソース: ロギング
      • ターゲット: モニタリング
    • 「ソース接続の構成」で、VCNフロー・ログを選択します:
      • コンパートメント名: VCNフロー・ログ・データを含むコンパートメント。
      • ログ・グループ: VCNフロー・ログ・データを含むログ・グループ。
      • ログ: VCNフロー・ログのログ・オブジェクト名。
    • 「ログ・フィルタ・タスク」で、ログ・データをフィルタ処理して、拒否されたトラフィックにフィルタします:

      • プロパティ: data.action
      • 演算子: =
      • : REJECT

      特定のポートまたはアドレスの拒否されたトラフィックに関心がある場合は、さらにフィルタを追加します。たとえば、プロパティdata.destinationPortまたはdata.destinationAddressを選択します。

    • 「ターゲット接続の構成」で、フィルタ処理したログ・データで使用するメトリック・ネームスペースおよびメトリック名を入力します:
      • 拒否されたトラフィックのVCNフロー・ログ・データに対応するメトリック・データ・ポイントを格納するコンパートメントを選択します。
      • 新しいメトリック・ネームスペースとしてvcnlogsを入力します。
        ノート

        新しいメトリック・ネームスペースを入力したら、[Enter]を押して送信します。
      • 新しいメトリックとしてrejectedtrafficを入力します
  5. ポリシー(サービス・コネクタを作成または更新するためのアクセス権で必要)の作成を求められた場合は、「作成」を選択します。
  6. 「作成」を選択します。
タスク2: アラームの作成

この例では、コンソールを使用して、モニタリングが拒否されたトラフィックのVCNフロー・ログ・データに対応するメトリック・データ・ポイントを受け取ったときにメッセージを送信するアラームを作成する手順を説明します。このプロセスの中で、トピックと電子メール・サブスクリプションを作成します。

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

  3. アラームの作成ページの「アラームの定義」で、しきい値を設定します:

    • メトリックの説明:
      • コンパートメント: (前のタスクで指定されたコンパートメントを選択します。VCNフロー・ログ・データに対応するメトリック・データ・ポイントがここに格納されます)
      • メトリック・ネームスペース: (コネクタに指定したメトリック・ネームスペースを入力します)
      • メトリック名: (コネクタに指定したメトリック名を入力します)
      • 間隔: 1m
      • 統計:  
    • トリガー・ルール:

      • 演算子: 次より大きい
      • : 0
      • トリガー遅延分数: 1
  4. 「通知」「宛先」で、電子メール通知を設定します:
    • 宛先サービス: 通知サービス
    • コンパートメント: (トピックと関連するサブスクリプションを作成するコンパートメントを選択します)
    • トピック: 「トピックの作成」を選択します。

      ノート

      トピックおよび電子メール・サブスクリプションをすでに作成している場合は、新規トピックを作成せずに、ここでトピックを選択できます。
      • トピック名: 拒否されたトラフィック・トピック
      • サブスクリプション・プロトコル: 電子メール
      • サブスクリプション電子メール: (ここに電子メール・アドレスを入力します)
  5. 「アラームの保存」を選択します。

CLIの使用

この項では、CLIを使用したコネクタ、トピック、サブスクリプションおよびアラームの作成手順を説明します。

APIの使用およびリクエストの署名の詳細は、REST APIのドキュメントおよびセキュリティ資格証明を参照してください。SDKの詳細は、SDKおよびCLIを参照してください。

  1. コネクタを作成します: コマンド・プロンプトを開き、oci sch service-connector createコマンドを実行します:

    oci sch service-connector create --display-name
    "<display_name>" --compartment-id <compartment_OCID> --source [<source_in_JSON>] --tasks [<tasks_in_JSON>] --target [<targets_in_JSON>]
  2. トピックを作成します: コマンド・プロンプトを開き、oci ons topic createコマンドを実行します:

    oci ons topic create --name "Alarm Topic" --compartment-id "<compartment-ocid>"
  3. このトピックに、電子メール・アドレスを参照するサブスクリプションを追加します。コマンド・プロンプトを開き、oci ons subscription createコマンドを実行します:

    oci ons subscription create --compartment-id "<compartment-ocid>" --topic-id "<topic-ocid>" --protocol "EMAIL" --subscription-endpoint "john.smith@example.com"
  4. エラーのしきい値を定義して、このトピックを宛先として使用するアラームを作成します: コマンド・プロンプトを開き、oci monitoring alarm createコマンドを実行します:

    oci monitoring alarm create --display-name "My Alarm" --compartment-id "<compartment-ocid>" --metric-compartment-id "<compartment-ocid>" --namespace "oci_computeagent" --query-text "<yourmetric>[1m].count() > 0" --severity "INFO" --destinations "<topic-ocid>" --is-enabled true

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

APIの使用

この項では、APIを使用したコネクタ、トピック、サブスクリプションおよびアラームの作成手順を説明します。

APIの使用およびリクエストの署名の詳細は、REST APIのドキュメントおよびセキュリティ資格証明を参照してください。SDKの詳細は、SDKおよびCLIを参照してください。

次の操作を使用します:

  1. CreateServiceConnector: コネクタを作成します。

    CreateServiceConnectorリクエストの例
    POST /20200909/serviceConnectors
    Host: service-connector-hub.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "compartmentId": "<compartment_OCID>",
      "description": "My connector description",
      "displayName": "My Connector",
      "source": {
        "kind": "logging",
        "logSources": [
          {
            "compartmentId": "<compartment_OCID>",
            "logGroupId": "<log_group_OCID>",
            "logId": "<log_OCID>"
          }
        ]
      },
      "target": {
        "compartmentId": "<compartment_OCID>",
        "kind": "metrics",
        "metric": "<yourmetric>",
        "metricNamespace": "<yournamespace>"
      },
      "tasks": [
        {
          "condition": "data.action='REJECT'",
          "kind": "logRule"
        }
      ]
      }
    }
  2. CreateTopic: トピックを作成します。

    CreateTopicリクエストの例
    POST /20181201/topics
    Host: notification.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "name": "Alarm Topic",
      "compartmentId": "<compartment_OCID>"
    }
  3. CreateSubscription: このトピックに、電子メール・アドレスを参照するサブスクリプションを追加します。

    CreateSubscriptionリクエストの例: 電子メール
    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. CreateAlarm: メモリーしきい値を定義して、このトピックを参照するアラームを作成します。

    CreateAlarmリクエストの例
    POST /20180401/alarms
    Host: telemetry.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "displayName": "My Alarm",
      "compartmentId": "<compartment_OCID>",
      "metricCompartmentId": "<compartment_OCID>",
      "namespace": "<yournamespace>",
      "query": "<yourmetric>[1m].count() > 0",
      "severity": "INFO",
      "destinations":
      [
        "<topic_OCID>"
      ],
      "isEnabled": true
    }

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