帮助手册 管理 添加监视器 Docker 代理的批量部署方法

Docker 代理的批量部署方法

可以使用 Site24x7 Linux 监控代理来监控 Docker,该代理在Docker Hub  (称为 Docker 代理)或Site24x7 Web 客户端中可用。这也可以使用以下批量部署方法之一一次性安装在多台机器上:

这是通过两个步骤完成的:

  1. 创建任务定义:
    有两种方法可以创建任务定义:
    1. 使用网页界面
    2. 使用命令行
  2. 运行任务定义实例
    为此,首先必须创建一个 IAM 角色。之后,有两种方法可以运行实例:
    1. 通过添加启动脚本使用 site24x7-agent 创建实例
    2. 使用 site24x7-agent 创建实例而不添加启动脚本

创建任务定义:

使用网页界面:

  1. 登录到您的 AWS 账户。
  2. 点击服务>Elastic Container Service
  3. 单击任务定义>创建新的任务定义
  4. 创建任务定义页面中,输入任务定义名称site24x7-agent-task
  5. 单击添加卷(在上面的屏幕截图中以绿色突出显示)并添加以下卷:
    • 名称:procfs和源路径:/proc
    • 名称:sysfs和源路径:/sys
    • 名称:dockerfs 和源路径:/var/run/docker.sock
  6. 现在单击添加容器 按钮并输入以下详细信息:
    1. 容器名称:site24x7-agent 
    2. 镜像:site24x7/docker-agent:最新
    3. 内存限制(硬限制和软限制):256
    4. 展开高级容器配置,然后在 Storage和 Logging SectionMount Points 下
      • 选择Source Volume作为 dockerfs 并输入Container Path作为 /var/run/docker.sock 
      • 选择Source Volume作为 sysfs 并输入 Container Path作为 /host/sys
      • 选择Source Volume 作为 procfs 并输入Container Path 作为 /host/proc 
      • 选中上述所有三个选项的 只读
    5. Environment部分的Env Variables下,将Key指定为 KEY,将Value指定为您的 Device Key  
    6. 单击添加以添加容器。
  7. 单击创建以创建任务定义 

使用 CLI:

  1. 下载 site24x7-agent-task.json并在文件中添加您的设备密钥
  2. 执行以下命令
    aws ecs register-task-definition --cli-input-json file://<above_downloaded_file_path>

运行任务定义的实例:

先决条件:创建 IAM 角色

  1. 登录 AWS 控制台,然后单击服务IAM
  2. 在左侧面板中,单击角色>创建角色按钮
  3. AWS Service下,单击Elastic Container Service,然后选择您的用例作为 Elastic Container Service 的 EC2 角色。单击下一步:权限按钮。
  4. 单击下一步:查看并在下一页中输入角色名称 site24x7-ecs-agent。单击创建角色按钮。
  5. 现在单击上面创建的角色,然后单击添加内联策略

  6. 将以下策略粘贴到创建策略的 JSON 选项卡中,然后单击审阅策略按钮。

    {
         "Version": "2012-10-17",

         "Statement": [
    {
                 "Effect": "Allow",
                 "Action": [
                     "ecs:RegisterContainerInstance",
                     "ecs:DeregisterContainerInstance",
                     "ecs:DiscoverPollEndpoint",
                     "ecs:Submit*",
                     "ecs:Poll",
                     "ecs:StartTask",
                     "ecs:StartTelemetrySession"
    ],
                 "Resource": [
                     "*"
    ]
    }
    ]
    }

  7. 将策略命名为 site24x7-ecs-policy,然后单击创建策略按钮。 

使用 site24x7-agent 创建实例,该实例必须通过添加启动脚本添加到 ECS 集群

  1. 登录 AWS 控制台并单击ServicesEC2
  2. 单击启动实例按钮以创建一个新实例
  3. 单击Community AMIs,搜索“ecs optimization”并根据您的要求选择镜像
  4. 选择实例类型并单击下一步:配置实例详细信息按钮。
  5. 在 IAM 角色部分,选择上面创建的 IAM 角色或使用默认的 ecsInstance IAM 角色。然后将以下内容粘贴到 User Data 文本框中(在高级详情下)

    #!/bin/bash

    # Specify the cluster that the container instance should register into

    cluster=<cluster_name>

    # Write the cluster configuration variable to the ecs.config file
    # (add any other configuration variables here also)
    echo ECS_CLUSTER=$cluster >> /etc/ecs/ecs.config

    # Install the AWS CLI and the jq JSON parser

    yum install -y aws-cli jq

    instance_arn=$(curl -s http://localhost:51678/v1/metadata | jq -r '. | .ContainerInstanceArn' | awk -F/ '{print $NF}' )

    cluster=$(curl -s http://localhost:51678/v1/metadata | jq -r '. | .Cluster' | awk -F/ '{print $NF}' )
    region=$(curl -s http://localhost:51678/v1/metadata | jq -r '. | .ContainerInstanceArn' | awk -F: '{print $4}')

    # Specify the task definition to run at launch

    task_definition=<task_definition_which_has_been_created_in_the_above_step>

    # Run the AWS CLI start-task command to start your task on this container instance

    aws ecs start-task --cluster $cluster --task-definition $task_definition --container-instances $instance_arn --started-by $instance_arn --region $region

  6. 根据需要替换 用户数据中的 cluster 和 task_definition 变量值。然后单击查看和启动按钮。

使用 site24x7-agent 创建实例而不添加启动脚本

  1. 登录 AWS 控制台,点击ServicesElastic Container Service
  2. 在左侧窗格中,选择集群并单击部署代理的集群
  3. 单击任务选项卡并选择运行新任务
  4. 运行任务表单中,在任务序号字段中输入集群中存在的节点数。在Task Placement下,选择Placement Template作为One Task Per Host。 
  5. 单击运行任务

Kubernetes

  1. 下载文件site24x7-agent.yaml 并将其保存在您的 Kubernetes 主服务器中。将 <device_key> 替换为 Site24x7 Web 客户端中提供的设备密钥。如果您使用代理,请在 YAML 文件的env部分下提及名称和端口。
    For example,
    - name : KEY
      value: <device key>
    - name: proxy
      value : proxy_host:proxy_port 
  2. 运行以下命令
    kubectl create -f site24x7-agent.yaml
  3. 这会将文件添加为 Kubernetes 中的守护程序集。 

相关文章

帮助手册 管理 添加监视器 批量部署Docker Agent