イベントモニタリングは、イベント関連の例外を迅速かつ正確に収集し Cloud Monitor にレポートすることに役立つ、イベントレポートの API を提供します。 レポートされるイベントにアラームルールを設定することで、イベント関連の例外が発生したらすぐにアラーム通知を受け取ることができます。

Cloud Monitor では、OpenAPI、Java SDK、および Alibaba Cloud CLI を使用したイベントデータのレポートをサポートします。

制限

  • 各 Alibaba Cloud アカウントは最大 20 QPS を送信できます。
  • 一度に最大 100 件のイベントをレポートできます。
  • 一度に最大 500 KB のデータをレポートできます。

OpenAPI を使用したデータのレポート

  • サービスアドレス
    https://metrichub-cms-cn-hangzhou.aliyuncs.com
  • リクエスト構文
    POST /event/custom/upload HTTP/1.1 
    Authorization: <authorizationstring>
    Content-Length:<Content Length>
    Content-MD5:<Content MD5>
    Content-Type:application/json
    Date: <GMT date>
    HOST: maid
    x-cms-signature:hmac-sha1
    x-cms-api-version:1.0
    x-cms-ip:30.27.84.196
    User-Agent:cms-java-sdk-v-1.0
    [{"content":"EventContent","groupId":GroupId,"name":"EventName","time":"20171023T144439.948+0800"}]
  • パラメーター
    名前 必須 説明
    Name 文字列 はい イベント名
    GroupId 数値 はい イベントが属するアプリケーショングループ ID
    Time 文字列 はい イベントが発生した時刻
    Content 文字列 はい イベント詳細

    リクエストのヘッダー定義

    API リクエストの署名

  • 応答要素

    システムは HTTP ステータスコード 200 を返します。

    • リクエスト
      POST /event/custom/upload HTTP/1.1 
      Host: metrichub-cms-cn-hangzhou.aliyuncs.com
      x-cms-api-version:1.0
      Authorization:YourAccKey:YourAccSecret 
      Host:metrichub-cms-cn-hangzhou.aliyuncs.com"
      Date:Mon, 23 Oct 2017 06:51:11 GMT
      Content-Length:180
      x-cms-signature:hmac-sha1
      Content-MD5:E9EF574D1AEAAA370860FE37856995CD
      x-cms-ip:30.27.84.196
      User-Agent:cms-java-sdk-v-1.0
      Content-Type:application/json
      [{"Content": "123, ABC", "groupid": 100, "name": "event_0", "Time": "loud. 948 + 0800 "}]
    • 応答
      {
         "Code": 200 ",
         "msg": "// return MSG is empty for reports that are normal
      }

Java SDK を使用したデータのレポート

  • Maven 依存関係
    <dependency>
        <groupId>com.aliyun.openservices</groupId>
        <artifactId>aliyun-cms</artifactId>
        <version>0.1.2</version>
    </dependency>
  • サンプルコード
    public void uploadEvent() throws CMSException, InterruptedException {
            // Initialize Client
            CMSClient cmsClient = new CMSClient(endpoint, accKey, secret);
           // Build 2 event reports
             CustomEventUploadRequest request = CustomEventUploadRequest.builder()
                        .append(CustomEvent.builder()
                                .setContent("abc,123")
                                .setGroupId(101l)
                                .setName("Event001").build())
                        .append(CustomEvent.builder()
                                .setContent("abc,123")
                                .setGroupId(101l)
                                .setName("Event002").build())
                        .build();
                CustomEventUploadResponse response = cmsClient.putCustomEvent(request);
                List<CustomEvent> eventList = new ArrayList<CustomEvent>();
                eventList.add(CustomEvent.builder()
                        .setContent("abcd,1234")
                        .setGroupId(101l)
                        .setName("Event001").build());
                eventList.add(CustomEvent.builder()
                        .setContent("abcd,1234")
                        .setGroupId(101l)
                        .setName("Event002").build());
                request = CustomEventUploadRequest.builder()
                        .setEventList(eventList).build();
                response = cmsClient.putCustomEvent(request);
        }

Alibaba Cloud CLI を使用したデータのレポート

プライマリアカウントを使用して、クラウドモニタリング権限を持つ RAM アカウントの AccessKey を生成します (RAM アカウントはプライマリアカウントより、より安全であることを前提としています)。
  • RAM アカウントを作成します。

  • RAM アカウントの AccessKeyId と AccessKeySecret を生成します。

  • RAM アカウントに Cloud Monitor アクセス権限を割り当てます。

手順

  1. aliyuncli ツールをインストールします。
    システム要件:Linux、UNIX、またはMac OS。 環境要件:Python 2.7.x インストールがされている必要があります。
    1. Python のインストール
      • Python 2.7.x がデバイスにインストールがされている場合、この手順をスキップできます。
      • Python 2.7.x がデバイスにインストールされていない場合、コマンドラインウィンドウで次のコマンドを実行して Python をインストールします。 wget がデバイスにインストールされていることをご確認ください。
        wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz (or download it in other ways and put it in a certain path)
        tar -zxvf Python-2.7.8.tgz
        cd Python-2.7.8
        ./configure
        make
        sudo make install
    2. pip のインストール
      • pip がデバイスにインストールされている場合、この手順をスキップできます。
      • pip がデバイスにインストールされていない場合、コマンドラインウィンドウで次のコマンドを実行して pip をインストールします。
        curl "https://bootstrap.pypa.io/get-pip.py" -o "pip-install.py"
        sudo python pip-install.py
      • インストールが成功すると、次のような情報が表示されます。
        Successfully installed pip-7.1.2 setuptools-18.7 wheel-0.26.0
    3. コマンドラインツールのインストール

      インストールされている pip のバージョンがサポートされていない場合、Alibaba Cloud CLI のインストール中にエラーが発生します。 他の操作を実行する前に、次のコマンドを使用して pip のバージョンをアップグレードできます。 pip 7.x 以降を使用することを推奨します。 pip がサポートされているバージョンの場合、この手順をスキップできます。

      1. コマンドラインウィンドウで次のコマンドを実行して、pip のバージョンをアップグレードします。
        sudo pip install -U pip

        インストールが成功すると、次のような情報が表示されます。

        Successfully uninstalled pip-7.1.2
        Successfully installed pip-8.1.2
      2. 次のコマンドを実行して Alibaba Cloud コマンドラインツールをインストールします。
        sudo pip install aliyuncli

        インストールが成功すると、次のような情報が表示されます。

        Successfully installed aliyuncli-2.1.2 colorama-0.3.3 jmespath-0.7.1
    4. コマンドラインツールの設定
      ~ Sudo aliyuncli configure
      Aliyun Access Key ID [*******************a]: youraccesskeyid
      Aliyun Access Key Secret [*******************b]: youraccesskeysecret
      Default Region Id [cn-hangzhou]: cn-hangzhou
      Default output format [json]: json
  2. CMS SDK のインストール
    • Windows の場合は、コマンドラインウィンドウで次のコマンドを実行します。
      cd C:\Python27\Scripts
      pip install aliyun-python-sdk-cms
    • SDK を更新するには、次のコマンドを実行します。
      pip install --upgrade aliyun-python-sdk-cms
    • Linux の場合は、コマンドラインウィンドウで次のコマンドを実行します。
      sudo pip install aliyun-python-sdk-cms
    • SDK を更新するには、次のコマンドを実行します。
      sudo pip install —upgrade aliyun-python-sdk-cms
  3. モニタリングデータのレポート

    PutEvent API を使用します。

    • Windows のレポート例
      aliyuncli.exe cms PutEvent --EventInfo "[{'content':'helloworld','time':'20171013T170923.456+0800','name':'ErrorEvent','groupId':'27147'}]"
    • Linux のレポート例
      aliyuncli cms PutEvent --EventInfo "[{'content':'helloworld','time':'20171023T180923.456+0800','name':'ErrorEvent','groupId':'27147'}]"
    • データが正常にレポートされると、システムはステータスコード 200 を返します。
      {
      "code": "200",
      }

ステータスコード

ステータスコード 説明
200 正常
400 クライアントリクエストの構文エラー
403 検証失敗、制限速度、または認証エラー
500 内部サーバーエラー

RAM アカウント許可

RAM ユーザーアカウントの AccessKey を使用してイベントをレポートするとき、そのRAMアカウントには Cloud Monitor の管理権限が必要です。 RAM アカウントに Cloud Monitor の管理権限がない場合、RAM ユーザーアカウントに、この操作が許可されていないためイベントをアップロードできないことを示すプロンプトが表示されます。

  1. アクセス制御 RAM コンソールにログインします。
  2. ユーザー管理メニューに移動します。
  3. データをレポートするために使われる RAM ユーザーアカウントの横にある [権限付与] をクリックします。

  4. 権限付与ページで、[クラウドモニタリングの権限を管理] を選択し、[OK] をクリックし、権限情報を保存します。