Docker 代理的批量部署方法
可以使用 Site24x7 Linux 监控代理来监控 Docker,该代理在Docker Hub (称为 Docker 代理)或Site24x7 Web 客户端中可用。这也可以使用以下批量部署方法之一一次性安装在多台机器上:
这是通过两个步骤完成的:
- 创建任务定义:
有两种方法可以创建任务定义: - 运行任务定义实例:
为此,首先必须创建一个 IAM 角色。之后,有两种方法可以运行实例:
- 登录到您的 AWS 账户。
- 点击服务>Elastic Container Service
- 单击任务定义>创建新的任务定义
- 在创建任务定义页面中,输入任务定义名称为site24x7-agent-task
- 单击添加卷(在上面的屏幕截图中以绿色突出显示)并添加以下卷:
- 名称:procfs和源路径:/proc
- 名称:sysfs和源路径:/sys
- 名称:dockerfs 和源路径:/var/run/docker.sock
- 现在单击添加容器 按钮并输入以下详细信息:
- 容器名称:site24x7-agent
- 镜像:site24x7/docker-agent:最新
- 内存限制(硬限制和软限制):256
- 展开高级容器配置,然后在 Storage和 Logging Section> Mount Points 下
- 选择Source Volume作为 dockerfs 并输入Container Path作为 /var/run/docker.sock
- 选择Source Volume作为 sysfs 并输入 Container Path作为 /host/sys
- 选择Source Volume 作为 procfs 并输入Container Path 作为 /host/proc
- 选中上述所有三个选项的 只读框
- 在Environment部分的Env Variables下,将Key指定为 KEY,将Value指定为您的 Device Key
- 单击添加以添加容器。
- 单击创建以创建任务定义
- 下载 site24x7-agent-task.json并在文件中添加您的设备密钥
- 执行以下命令
aws ecs register-task-definition --cli-input-json file://<above_downloaded_file_path>
- 登录 AWS 控制台,然后单击服务> IAM
- 在左侧面板中,单击角色>创建角色按钮
- 在AWS Service下,单击Elastic Container Service,然后选择您的用例作为 Elastic Container Service 的 EC2 角色。单击下一步:权限按钮。
- 单击下一步:查看并在下一页中输入角色名称 site24x7-ecs-agent。单击创建角色按钮。
- 现在单击上面创建的角色,然后单击添加内联策略
- 将以下策略粘贴到创建策略的 JSON 选项卡中,然后单击审阅策略按钮。
{
"Version": "2012-10-17","Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:RegisterContainerInstance",
"ecs:DeregisterContainerInstance",
"ecs:DiscoverPollEndpoint",
"ecs:Submit*",
"ecs:Poll",
"ecs:StartTask",
"ecs:StartTelemetrySession"
],
"Resource": [
"*"
]
}
]
} - 将策略命名为 site24x7-ecs-policy,然后单击创建策略按钮。
使用 site24x7-agent 创建实例,该实例必须通过添加启动脚本添加到 ECS 集群
- 登录 AWS 控制台并单击Services> EC2
- 单击启动实例按钮以创建一个新实例
- 单击Community AMIs,搜索“ecs optimization”并根据您的要求选择镜像
- 选择实例类型并单击下一步:配置实例详细信息按钮。
- 在 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
- 根据需要替换 用户数据中的 cluster 和 task_definition 变量值。然后单击查看和启动按钮。
使用 site24x7-agent 创建实例而不添加启动脚本
- 登录 AWS 控制台,点击Services> Elastic Container Service
- 在左侧窗格中,选择集群并单击部署代理的集群
- 单击任务选项卡并选择运行新任务
- 在运行任务表单中,在任务序号字段中输入集群中存在的节点数。在Task Placement下,选择Placement Template作为One Task Per Host。
- 单击运行任务
Kubernetes
- 下载文件site24x7-agent.yaml 并将其保存在您的 Kubernetes 主服务器中。将 <device_key> 替换为 Site24x7 Web 客户端中提供的设备密钥。如果您使用代理,请在 YAML 文件的env部分下提及名称和端口。
For example,
- name : KEY
value: <device key>
- name: proxy
value : proxy_host:proxy_port - 运行以下命令
kubectl create -f site24x7-agent.yaml - 这会将文件添加为 Kubernetes 中的守护程序集。
相关文章
- Docker 的性能指标
- 与 Docker 应用程序和 Docker 代理相关的常见问题解答
- 其他虚拟化监视器: VMware ESX/ESXi | VMware vCenter | Hyper-V
- 服务器监控架构
- 添加服务器 Windows | Linux | FreeBSD | OS X