From 2e236274ff7ab137da21a4ae4d87dfd7f321ea53 Mon Sep 17 00:00:00 2001 From: jianchang Date: Thu, 30 May 2024 18:06:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0ee=20agent=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=20(#483)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/zh/03-ee-install/01-tenant/01-k8s.md | 62 +++++++++- .../03-ee-install/01-tenant/02-cloud-host.md | 113 +++++++++++++++++- .../03-ee-install/01-tenant/03-legacy-host.md | 94 ++++++++++++++- 3 files changed, 266 insertions(+), 3 deletions(-) diff --git a/docs/zh/03-ee-install/01-tenant/01-k8s.md b/docs/zh/03-ee-install/01-tenant/01-k8s.md index 9ce86682..2bc5cb80 100644 --- a/docs/zh/03-ee-install/01-tenant/01-k8s.md +++ b/docs/zh/03-ee-install/01-tenant/01-k8s.md @@ -3,4 +3,64 @@ title: 在 K8s 中安装 Agent permalink: /ee-install/tenant/k8s --- -TODO +# 简介 + +假如你要使用 DeepFlow 监控一个新的 K8s 集群。 +DeepFlow 能够零侵扰采集所有 Pod 的观测信号(AutoMetrics、AutoTracing、AutoProfiling), +并基于调用 apiserver 获取的信息自动为所有观测数据注入`K8s 资源`和`K8s 自定义 Label`标签(AutoTagging)。 + +# 准备工作 + +## 部署拓扑 + +```mermaid +flowchart LR + +subgraph K8s-Cluster-1 + DeepFlowServer["deepflow-server (deployment)"] + DeepFlowAgent1["deepflow-agent (daemonset)"] + DeepFlowAgent1 -->|load balancing| DeepFlowServer +end + +subgraph K8s-Cluster-2 + DeepFlowAgent2["deepflow-agent (daemonset)"] + DeepFlowAgent2 -->|load balancing| DeepFlowServer +end +``` + +## 获取 DeepFlow 平台中的 K8s ClusterID + +DeepFlow 平台使用公有云的集群 ID 或者随机为每个集群生成一个唯一 ID,从“资源-资源池-云平台”中查看需要部署的集群 ID,形如"g-3aebEkS108"。 + +## 获取 DeepFlow Agent 镜像 + +向云杉网络的同学获取 DeepFlow Agent 镜像地址和镜像 tag。 + +V6.4 版本最新镜像为 `hub.deepflow.yunshan.net/public/deepflow-agent:v6.4`,注意此仓库位于阿里云北京 Region。 + +# 部署 deepflow-agent + +使用 Helm 安装 deepflow-agent: + +```bash +cat << EOF > values-custom.yaml +deepflowServerNodeIPS: +- 10.1.2.3 # FIXME: DeepFlow Server Node IPs +- 10.4.5.6 # FIXME: DeepFlow Server Node IPs +deepflowK8sClusterID: "fffffff" # FIXME: K8s ClusterID +image: + repository: hub.deepflow.yunshan.net/public/deepflow-agent + pullPolicy: Always + # Overrides the image tag whose default is the chart appVersion. + tag: v6.4 +EOF + +helm repo add deepflow https://deepflowio.github.io/deepflow +helm repo update deepflow # use `helm repo update` when helm < 3.7.0 +helm install deepflow-agent -n deepflow deepflow/deepflow-agent --create-namespace \ + -f values-custom.yaml +``` + +# 注意 + +在同一个 K8s 集群中,建议将采集器部署在同一采集器组内。如果出于特定需求必须将它们分散到不同的采集器组,请务必确保所有相关采集器组的 cpu、memory 限制保持一致。此外,请注意远程操作可能带来的影响,例如,通过执行 `kubectl edit` 命令修改某个agent 的 cpu、memory 限制,可能会导致同个采集器组的 agent 进入连续重启的状态。 \ No newline at end of file diff --git a/docs/zh/03-ee-install/01-tenant/02-cloud-host.md b/docs/zh/03-ee-install/01-tenant/02-cloud-host.md index 8d49bfb1..0adb7d2b 100644 --- a/docs/zh/03-ee-install/01-tenant/02-cloud-host.md +++ b/docs/zh/03-ee-install/01-tenant/02-cloud-host.md @@ -3,4 +3,115 @@ title: 在云服务器中安装 Agent permalink: /ee-install/tenant/cloud-host --- -TODO +# 简介 + +DeepFlow 支持监控云服务器,并通过调用云厂商 API 获取云资源信息,自动注入到所有观测数据中(AutoTagging)。 + +# 部署拓扑 + +```mermaid +flowchart TD + +subgraph VPC-1 + subgraph K8s-Cluster + DeepFlowServer["deepflow-server (deployment)"] + end + + subgraph Cloud-Host-1 + DeepFlowAgent1[deepflow-agent] + DeepFlowAgent1 --> DeepFlowServer + end +end + +subgraph VPC-2 + subgraph Cloud-Host-2 + DeepFlowAgent2[deepflow-agent] + DeepFlowAgent2 -->|"tcp/udp 30033+30035"| DeepFlowServer + end +end + +DeepFlowServer -->|"get resource & label"| CloudAPI[cloud api service] +``` + +# 联系云杉网络创建公有云 Domain + +DeepFlow 目前支持如下公有云的资源信息同步(标记为 `TBD` 的正在整理代码中): +| 云服务商(英文) | 云服务商(中文) | DeepFlow中使用的类型标识 | +| ---------------- | ---------------- | ------------------------ | +| AWS | AWS | aws | +| Aliyun | 阿里云 | aliyun | +| Baidu Cloud | 百度云 | baidu\_bce | +| Huawei Cloud | 华为云 | huawei | +| Microsoft Azure | 微软云 | `TBD` | +| QingCloud | 青云 | qingcloud | +| Tencent Cloud | 腾讯云 | tencent | + + +## 获取采集器安装包和采集器组的 Agent Group ID + +公有云服务器部署 DeepFlow Agent 时需要向云杉网络的同学获取传统服务器的安装包和 Agent Group ID + +# 部署 DeepFlow Agent + +::: code-tabs#shell + +@tab rpm + +```bash +unzip deepflow-agent-rpm.zip +yum -y localinstall x86_64/deepflow-agent-1.0*.rpm +``` + +@tab deb + +```bash +unzip deepflow-agent-deb.zip +dpkg -i x86_64/deepflow-agent-1.0*.systemd.deb +``` + +@tab docker compose + +```bash +touch /etc/deepflow-agent.yaml + +cat << EOF > deepflow-agent-docker-compose.yaml +version: '3.2' +services: + deepflow-agent: + image: registry.cn-hongkong.aliyuncs.com/deepflow-ce/deepflow-agent:stable + container_name: deepflow-agent + restart: always + cap_add: + - SYS_ADMIN + - SYS_RESOURCE + - SYS_PTRACE + - NET_ADMIN + - NET_RAW + - IPC_LOCK + - SYSLOG + volumes: + - /etc/deepflow-agent.yaml:/etc/deepflow-agent/deepflow-agent.yaml:ro + - /sys/kernel/debug:/sys/kernel/debug:ro + - /var/run/docker.sock:/var/run/docker.sock:ro + network_mode: "host" + pid: "host" +EOF + +docker compose -f deepflow-agent-docker-compose.yaml up -d +``` + +::: + +修改 deepflow-agent 的配置文件 `/etc/deepflow-agent.yaml` : +```yaml +controller-ips: + - 10.1.2.3 # FIXME: DeepFlow Server Node IPs +vtap-group-id-request: "g-fffffff" # FIXME: agent-group ID +``` + +启动 deepflow-agent : + +```bash +systemctl enable deepflow-agent +systemctl restart deepflow-agent +``` \ No newline at end of file diff --git a/docs/zh/03-ee-install/01-tenant/03-legacy-host.md b/docs/zh/03-ee-install/01-tenant/03-legacy-host.md index 2b73d96a..ceb2d567 100644 --- a/docs/zh/03-ee-install/01-tenant/03-legacy-host.md +++ b/docs/zh/03-ee-install/01-tenant/03-legacy-host.md @@ -3,4 +3,96 @@ title: 在传统服务器中安装 Agent permalink: /ee-install/tenant/legacy-host --- -TODO +# 简介 + +DeepFlow 支持监控传统服务器。 + +# 部署拓扑 + +```mermaid +flowchart LR + +subgraph K8s-Cluster + DeepFlowServer["deepflow-server (deployment)"] +end + +subgraph Legacy-Host-1 + DeepFlowAgent1[deepflow-agent] + DeepFlowAgent1 --> DeepFlowServer +end + +subgraph Legacy-Host-2 + DeepFlowAgent2[deepflow-agent] + DeepFlowAgent2 --> DeepFlowServer +end +``` + + +## 获取采集器安装包和采集器组的 Agent Group ID + +传统服务器部署 DeepFlow Agent 时需要向云杉网络的同学获取传统服务器的安装包和 Agent Group ID + +# 部署 DeepFlow Agent + +::: code-tabs#shell + +@tab rpm + +```bash +unzip deepflow-agent-rpm.zip +yum -y localinstall x86_64/deepflow-agent-1.0*.rpm +``` + +@tab deb + +```bash +unzip deepflow-agent-deb.zip +dpkg -i x86_64/deepflow-agent-1.0*.systemd.deb +``` + +@tab docker compose + +```bash +touch /etc/deepflow-agent.yaml + +cat << EOF > deepflow-agent-docker-compose.yaml +version: '3.2' +services: + deepflow-agent: + image: registry.cn-hongkong.aliyuncs.com/deepflow-ce/deepflow-agent:stable + container_name: deepflow-agent + restart: always + cap_add: + - SYS_ADMIN + - SYS_RESOURCE + - SYS_PTRACE + - NET_ADMIN + - NET_RAW + - IPC_LOCK + - SYSLOG + volumes: + - /etc/deepflow-agent.yaml:/etc/deepflow-agent/deepflow-agent.yaml:ro + - /sys/kernel/debug:/sys/kernel/debug:ro + - /var/run/docker.sock:/var/run/docker.sock:ro + network_mode: "host" + pid: "host" +EOF + +docker compose -f deepflow-agent-docker-compose.yaml up -d +``` + +::: + +修改 deepflow-agent 的配置文件 `/etc/deepflow-agent.yaml` : +```yaml +controller-ips: + - 10.1.2.3 # FIXME: DeepFlow Server Node IPs +vtap-group-id-request: "g-fffffff" # FIXME: agent-group ID +``` + +启动 deepflow-agent : + +```bash +systemctl enable deepflow-agent +systemctl restart deepflow-agent +``` \ No newline at end of file