Docker 代理批量部署方法
Docker 可以通过 Site24x7 Linux 监控代理进行监控,该代理可从 Docker Hub (称为 Docker 代理)或从 Site24x7 Web 客户端获取。您也可以使用以下批量部署方法一次性在多台机器上安装该代理:
AWS ECS
此过程分为两个步骤:
创建任务定义:
使用 Web UI:
- 登录您的 AWS 账户。
- 单击服务 > Elastic Container Service

- 单击任务定义 > 创建新任务定义

- 在创建任务定义页面,将任务定义名称设置为 site24x7-agent-task

- 单击添加卷(在上方截图中以绿色突出显示),并添加以下卷:
- 名称:procfs,源路径:/proc
- 名称:sysfs,源路径:/sys
- 名称:dockerfs,源路径:/var/run/docker.sock

- 单击添加容器按钮,输入以下详细信息:
- 容器名称:site24x7-agent
- 镜像:site24x7/docker-agent:latest
- 内存限制(硬限制和软限制均为):256

- 展开高级容器配置,在存储和日志记录 > 挂载点下:
- 将源卷选为 dockerfs,并将容器路径设置为 /var/run/docker.sock
- 将源卷选为 sysfs,并将容器路径设置为 /host/sys
- 将源卷选为 procfs,并将容器路径设置为 /host/proc
- 为以上三个选项均勾选只读复选框。

- 在环境部分的环境变量下,将键设置为 KEY,值设置为您的设备密钥

- 单击添加以添加容器。
- 单击创建以创建任务定义
使用 CLI:
- 下载 site24x7-agent-task.json 并在文件中填入您的设备密钥
- 执行以下命令
aws ecs register-task-definition --cli-input-json file://<above_downloaded_file_path>
运行任务定义实例:
前提条件:创建 IAM 角色
- 登录 AWS 控制台,单击服务 > IAM

- 在左侧面板中,单击角色 > 创建角色按钮

- 在 AWS 服务下,单击 Elastic Container Service,然后将使用案例选为"EC2 Role for Elastic Container Service"。单击下一步:权限按钮。

- 单击下一步:审核,在下一页输入角色名称 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 控制台,单击服务 > EC2

- 单击启动实例按钮以创建新实例

- 单击社区 AMI,搜索"ecs optimized",并根据需求选择相应镜像

- 选择实例类型,然后单击下一步:配置实例详细信息按钮。

- 在 IAM 角色部分,选择上面创建的 IAM 角色或默认的 ecsInstance IAM 角色。然后将以下内容粘贴到用户数据文本框中(在高级详细信息下)
#!/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 控制台,单击服务 > Elastic Container Service
- 在左侧面板中,选择集群,单击部署代理的集群

- 单击任务选项卡,选择运行新任务

- 在运行任务表单中,在任务数量字段中输入集群中存在的节点数量。在任务放置下,将放置模板选为每主机一个任务。

- 单击运行任务
Kubernetes
- 下载文件 site24x7-agent.yaml 并将其保存在您的 Kubernetes 主节点中。将 <device_key> 替换为 Site24x7 Web 客户端中提供的设备密钥。如果您使用代理,请在 YAML 文件的 env 部分填写代理名称和端口。
例如:
- name : KEY
value: <device key>
- name: proxy
value : proxy_host:proxy_port - 运行以下命令
kubectl create -f site24x7-agent.yaml
- 此操作将以 DaemonSet 形式在 Kubernetes 中添加该文件。
相关文章
- Docker 性能指标
- Docker 应用程序和 Docker 代理相关常见问题
- 其他虚拟化监视器: VMware ESX/ESXi | VMware vCenter | Hyper-V
- 服务器监控架构
- 添加服务器: Windows | Linux | FreeBSD | OS X
-
本页内容
- AWS ECS
- Kubernetes
- 相关文章
