本文へスキップ

インストール

WhaTap AmazonECSモニタリングは、META APIおよびCgroupディレクトリを使用してDockerコンテナ固有のリソース使用量をリアルタイムで収集します。 Amazon ECS API連携のWhaTap Taskを使用して、Amazon ECS Service、Deployment、Container Instanceの状態を参照および収集します。

WhaTapモニタリングサービスを使用するには、まず会員登録後にプロジェクトを作成する必要があります。会員登録に関する詳細については、次の文書を参照してください。

注意

権限

インストールするためには修正権限が必要です。

プロジェクト生成

エージェントをインストールする前にプロジェクトを作成してください。

  1. WhaTapモニタリングサービスに移動し、ログインします。

  2. プロジェクトを作成するには、画面左サイドメニューからプロジェクト全体 > + Projectボタンを選択してください。

  3. 商品選択 画面でプロジェクトにインストールする製品を選択してください。

  4. プロジェクト名データサーバーリージョンプロジェクトタイムゾーンなどの項目を設定してください。

  5. すべての設定を完了した後は プロジェクトを作成する ボタンを選択してください。

ノート
  • データサーバーリージョンは、リージョン(クラウドサービスを提供するためにインストールしたデータセンターのグループ)を意味します。特定のリージョンを選択すると、そのリージョンに所属するデータセンターにユーザーのデータが保存されます。

  • プロジェクトタイムゾーンは通知とレポートを生成する基準時間です。

  • 複数のプロジェクトをグループで管理する場合は、プロジェクトグループからグループを選択するか、グループを追加してください。 グループの詳細については、次の文書を参照してください。
  • 組織を選択してプロジェクトを追加する場合は、組織下位のグループを必須に設定する必要があります。

プロジェクトを作成後、管理 > エージェントインストールメニューでアイテムインストールが可能です。次のインストール手順を参照してください。

プロジェクトアクセスキーの確認

プロジェクトアクセスキーは、WhaTapサービスを有効にするための固有IDです。

インストール手順セクションでプロジェクトアクセスキーの発行ボタンをクリックします。プロジェクトアクセスキーが自動的に発行されると、次の手順に進みます。

Tips

プロジェクトを作成すると、自動的にエージェントインストールページに移動します。エージェントインストールページが表示されない場合は、左側のメニューから全プロジェクトを選択し、新しく作成したプロジェクトを選択します。

ノート

プロジェクトアクセスキー

すでにプロジェクトアクセスキーを発行している場合、ボタンの代わりに発行されたキーが表示されます。

チェックリスト

  • AWS CLI

    インストール方法は 次の文書を参照してください。

  • Amazon ECS CLI

    インストール方法は 次の文書を参照してください。

  • Python 2.x / 3.x

    スクリプトの jsonドキュメント分析には、インストールが必要です。

ノート
  • インストールに使用するWhaTapイメージ(whatap/ecs_mon)をダウンロードし、レジストリにユーザー登録をしてから使用することをお勧めします。
  • WhaTapサーバーにデータを送信するには、6600番ポートが開いている必要があります。

モニタリング対象

Amazon ECS의 Launch Typeによって項目が区分されます。 モニタリング対象は、Task, Service, Deployment, Container Instanceです。

  • EC2 Launch Type: Task, Service, Deployment, Container Instance

    EC2 DAEMON

  • Fargate Launch Type: Task, Service, Deployment

    ECS Fargate Sidecar

次のモニタリング手順もEC2 Launch Typeのモニタリングの手続きとFargate Launch Typeのモニタリングに区分されて行われます。

ノート

Amazon ECS launch typesの詳しい説明は次の文書を参照してください。

モニタリング手順

ecs install

  • インストールガイドセクションnumber-sタブを使用して、WhaTap Amazon ECSエージェントを専用TaskまたはSidecarでデプロイしてください。

  • インストールガイドセクションnumber-sタブをクリックして、モニタリングサービスを開始してください。

EC2 Launch Type

  1. プロジェクトを作成し、チェックリストを確認します。管理 > エージェントのインストールのインストール手順セクションに移動してください。

  2. number-s Task作成タブでEC2 Launch Typeを選択してください。

  3. 次のスクリプトを実行して、DAEMONタイプのTaskを作成してください。 CLUSTERREGIONを追加し、ACCESSKEYおよびWHATAP_HOSTを設定して収集サーバーと通信できるようにします。

    Linux
    #!/usr/bin/env bash
    export ACCESSKEY=
    export WHATAP_HOST=
    export CLUSTER=
    export REGION=
    export LAUNCH_TYPE=EC2
    cat >whatap_ecs.json <<EOL
    { "containerDefinitions": [ {
    "name": "whatap-node-agent",
    "image": "whatap/ecs_mon",
    "cpu": 100,
    "memory": 50,
    "essential": true,
    "mountPoints": [{
    "containerPath": "/var/run/docker.sock",
    "sourceVolume": "docker_sock",
    "readOnly": true},{
    "containerPath": "/rootfs",
    "sourceVolume": "rootfs",
    "readOnly": true}],
    "environment": [{
    "name": "ACCESSKEY",
    "value": "$ACCESSKEY"
    },{
    "name": "WHATAP_HOST",
    "value": "$WHATAP_HOST"}
    ],
    "linuxParameters": {
    "capabilities": {
    "add": [
    "SYS_ADMIN",
    "SYS_RESOURCE",
    "SYS_PTRACE",
    "NET_ADMIN",
    "NET_BROADCAST",
    "NET_RAW",
    "IPC_LOCK",
    "CHOWN"]
    }}}],
    "requiresCompatibilities": ["EC2"],
    "volumes": [{
    "host": {"sourcePath": "/var/run/docker.sock"},
    "name": "docker_sock"},{
    "host": {"sourcePath": "/"},
    "name": "rootfs"}],
    "family": "whatap-agent-task"}
    EOL
    aws ecs register-task-definition \
    --cli-input-json file://$(pwd)/whatap_ecs.json \
    --region $REGION
    aws ecs create-service --cluster $CLUSTER \
    --service-name whatap-node-agent \
    --task-definition whatap-agent-task \
    --scheduling-strategy DAEMON \
    --launch-type $LAUNCH_TYPE \
    --region $REGION
  • 実行するために必要な項目は次のとおりです。

    • ACCESSKEY (WhaTap プロジェクトAccess Key)
    • WHATAP_HOST (WhaTap収集リージョンのIP)
    • REGION (AWS Region)
    • CLUSTER (ECS Cluster)

Fargate Launch Type

  1. プロジェクトを作成し、チェックリストを確認します。管理 > エージェントのインストールのインストール手順セクションに移動してください。

  2. number-s Task作成タブでFargate Launch Typeを選択してください。

    • スクリプトを実行して、AWS ECS API READONLY IAM ROLEを作成します。

      ノート

      WhaTap Taskが、ECS Serviceを参照し、サービスの状態をリアルタイムで収集するために必要です。

    • 実行するために必要な項目は次のとおりです。

      • ACCESSKEY (WhaTap プロジェクトAccess Key)
      • WHATAP_HOST (WhaTap収集リージョンのIP、複数のIPは/で接続)
      • REGION (AWS Region)
      • PROFILE(ECS Profile)
      • CLUSTER (ECS Cluster)
      • CLUSTER_CONFIG (ECS Cluster Config)
      • TASK_EXECUTION_ROLE (WhaTapエージェントTask ECS Taskの実行ロール)
      • SUBNET_1 (WhaTapエージェントTask SUBNET#1)
      • SUBNET_2 (WhaTapエージェントTask SUBNET#2)
      • SGGRP (WhaTapエージェントTask Security Group)
    • 次の例を参照してください。

      Linux
      #!/usr/bin/env bash
      export REGION=xxxxx
      export WHATAP_ECS_ROLE_READONLY=WhatapEcsReadonly
      export WHATAP_ECS_POLICY_READONLY=WhatapEcsReadonly
      cat >ecs_trust.json <<EOL
      {
      "Version": "2012-10-17",
      "Statement": [
      {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
      "Service": "ecs-tasks.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
      }
      ]
      }
      EOL
      aws iam create-role --role-name $WHATAP_ECS_ROLE_READONLY --assume-role-policy-document file://ecs_trust.json | python -c 'import json,sys;print(json.load(sys.stdin)["Role"]["Arn"])' > role_arn.txt
      cat >ecs_readonly.json <<EOL
      {
      "Version": "2012-10-17",
      "Statement": [
      {
      "Effect": "Allow",
      "Action": [
      "ecs:Describe*",
      "ecs:List*"
      ],
      "Resource": [
      "*"
      ]
      }
      ]
      }
      EOL
      aws iam --region $REGION create-policy --policy-name $WHATAP_ECS_POLICY_READONLY \
      --policy-document file://ecs_readonly.json | python -c 'import json,sys;print(json.load(sys.stdin)["Policy"]["Arn"])' > policy_arn.txt
      export POLICY_ARN=$(cat policy_arn.txt)
      aws iam --region $REGION attach-role-policy --role-name $WHATAP_ECS_ROLE_READONLY \
      --policy-arn $POLICY_ARN
  3. 作成したIAM ROLEを使用してWhatap-Singleエージェントを起動してください。 ECS APIを使用してサービス状態をリアルタイムで収集します。

    Linux
    #!/usr/bin/env bash
    export ACCESSKEY=
    export WHATAP_HOST=
    export PROFILE=
    export REGION=
    export CLUSTER=
    export CLUSTER_CONFIG=
    export TASK_EXECUTION_ROLE=
    export SUBNET_1=
    export SUBNET_2=
    export SGGRP=
    export WHATAP_ECS_ROLE_READONLY=WhatapEcsReadonly
    export PROJNAME=whatap-monitoring
    export LAUNCH_TYPE=FARGATE
    export WHATAP_ROLE_ARN=$(cat role_arn.txt)
    cat >docker-compose.yml <<EOL
    version: '3'
    services:
    whatap-ecs-agent:
    image: whatap/ecs_mon
    environment:
    - ACCESSKEY=$ACCESSKEY
    - WHATAP_HOST=$WHATAP_HOST
    - FARGATE_HELPER=true
    EOL
    cat >ecs-params.yml <<EOL
    version: 1
    task_definition:
    task_execution_role: $TASK_EXECUTION_ROLE
    task_role_arn: "$WHATAP_ROLE_ARN"
    ecs_network_mode: awsvpc
    task_size:
    mem_limit: 0.5GB
    cpu_limit: 256
    run_params:
    network_configuration:
    awsvpc_configuration:
    subnets:
    - "$SUBNET_1"
    - "$SUBNET_2"
    security_groups:
    - "$SGGRP"
    assign_public_ip: ENABLED
    EOL
    ecs-cli compose --project-name $PROJNAME service up \
    --cluster-config $CLUSTER_CONFIG \
    --ecs-profile $PROFILE --region $REGION
  4. 次のようにエンドユーザーTaskにWhaTap Sidecarエージェントをデプロイしてください。 ACCESSKEYおよびWHATAP_HOSTを環境変数として追加し、収集サーバーと通信を有効にします。

    Linux
    version: '3'
    services:
    xxxxx:
    image: xxxx
    ports:
    - "xx:xx"
    ...
    whatap-ecs-agent:
    image: whatap/ecs_mon
    environment:
    - ACCESSKEY=
    - WHATAP_HOST=

モニタリングサービスのアクティブ化

number-s モニタリングの開始タブで、モニタリングサービスを有効にするボタンを選択して、モニタリングサービスを開始してください。

  • モニタリングサービスを有効にします。

    モニタリングのアクティブ化

  • モニタリングサービスの無効化

    モニタリングの無効化

除去時の注意事項

完全なコスト発生を防ぐために、次の項目を削除してください。

  • ECS Service: whatap-ecs-agent

  • Task Sidecar: whatap-ecs-agent

  • Role: WhatapEcsReadonly