Amazon Elastic Container Service (ECS) へのホスト・エージェントのインストール

ECS Daemon Scheduling を使用して、Elastic Computing( EC2 )上で実行されている Elastic Container Service(ECS)クラスターにホストエージェントをインストールする。 「 EC2 」のユーザーデータまたはECSタスク定義のいずれかを使用するには、以下の手順を実行してください。

AWS ECS 上の Fargate については、 Fargate の監視に関するドキュメントを参照してください。

EC2 のユーザーデータを使用してホストエージェントを展開する

注: この仕組みは、 EC2 上のECSクラスター全体にホストエージェントを展開するための推奨される方法です。

Amazon ECS コンテナインスタンスの起動 」のドキュメントでは、 EC2 上のECSクラスターを構成する新しい EC2 インスタンスで、ユーザーデータを使用する方法について説明しています。

Instana の「 Monitor AWS EC2 instances 」に関するドキュメントに記載されている仕組みは、このユースケースにも適用されます。

ECSタスク定義を使用してホストエージェントをデプロイする

必須フィールド

「 Java 」アプリケーションを「 Instana 」で正しく監視するには、以下の設定が必要です

{
    "ipcMode": "host",
    "pidMode": "host",
    "privileged": true,
    "networkMode": "host",
    ...
}

ホストエージェントを展開する際、必要に応じて JSON ファイルを編集することができます。

注: 変更する必要があるフィールドには、 <required>のマークが付けられています。 <required> フィールドをストリングとして設定する必要があります。

json ファイルの例:

{
    "ipcMode": "host",
    "executionRoleArn": null,
    "containerDefinitions": [
        {
            "dnsSearchDomains": null,
            "logConfiguration": {
                "logDriver": "json-file"
            },
            "entryPoint": null,
            "portMappings": [],
            "command": null,
            "linuxParameters": null,
            "environment": [
                {
                    "name": "INSTANA_AGENT_ENDPOINT",
                    "value": <required>
                },
                {
                    "name": "INSTANA_AGENT_ENDPOINT_PORT",
                    "value": <required>
                },
                {
                    "name": "INSTANA_AGENT_KEY",
                    "value": <required>
                }
            ],
            "ulimits": null,
            "dnsServers": null,
            "mountPoints": [
                {
                    "readOnly": false,
                    "containerPath": "/var/run",
                    "sourceVolume": "var_run"
                },
                {
                    "readOnly": false,
                    "containerPath": "/run",
                    "sourceVolume": "run"
                },
                {
                    "readOnly": false,
                    "containerPath": "/sys",
                    "sourceVolume": "sys"
                },
                {
                    "readOnly": false,
                    "containerPath": "/dev",
                    "sourceVolume": "dev"
                },
                {
                    "readOnly": false,
                    "containerPath": "/var/log",
                    "sourceVolume": "log"
                }
            ],
            "workingDirectory": null,
            "secrets": null,
            "dockerSecurityOptions": null,
            "memory": <required>,
            "volumesFrom": null,
            "image": <required: the image used to start your container. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed.>,
            "disableNetworking": null,
            "interactive": null,
            "healthCheck": null,
            "essential": true,
            "links": null,
            "hostname": null,
            "extraHosts": null,
            "pseudoTerminal": null,
            "user": null,
            "readonlyRootFilesystem": null,
            "dockerLabels": null,
            "systemControls": null,
            "privileged": true,
            "name": <required: the name of a container. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.>,
            "repositoryCredentials": {
                "credentialsParameter": ""
            }
        }
    ],
    "placementConstraints": [],
    "memory": <required>,
    "taskRoleArn": "",
    "family": <required: specify a name for your task definition. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed.>,
    "pidMode": "host",
    "requiresCompatibilities": [
        "EC2"
    ],
    "networkMode": "host",
    "cpu": "<Required>",
    "volumes": [
        {
            "name": "dev",
            "host": {
                "sourcePath": "/dev"
            },
            "dockerVolumeConfiguration": null
        },
        {
            "name": "sys",
            "host": {
                "sourcePath": "/sys"
            },
            "dockerVolumeConfiguration": null
        },
        {
            "name": "var_run",
            "host": {
                "sourcePath": "/var/run"
            },
            "dockerVolumeConfiguration": null
        },
        {
            "name": "run",
            "host": {
                "sourcePath": "/run"
            },
            "dockerVolumeConfiguration": null
        },
        {
            "name": "log",
            "host": {
                "sourcePath": "/var/log"
            },
            "dockerVolumeConfiguration": null
        }
    ]
}

エージェントの展開に関するトラブルシューティング

エージェントのインストールに失敗した場合は、ログメッセージやトラブルシューティングのヒントを確認してください。 このトラブルシューティングの手順で問題が解決しない場合は、 IBM ( Instana )のサポートチームに、発生した状況に関する詳細をお知らせください。 この情報は、お客様へのサポートやドキュメントの改善に役立てられます。

すべてのホストエージェントに共通するトラブルシューティングに関する情報については、 「トラブルシューティング」 を参照してください。