零基础实战Ubuntu单节点快速搭建DeepFlow全栈可观测性平台在云原生技术蓬勃发展的今天系统可观测性已成为开发者必备技能。DeepFlow作为开箱即用的全栈观测平台通过整合指标、日志、链路追踪等多维数据为开发者提供了前所未有的系统洞察能力。本文将手把手带您在一台Ubuntu 20.04机器上完成从零开始搭建完整DeepFlow环境的全过程特别适合想快速体验云原生监控的个人开发者和技术爱好者。1. 环境准备与Kubernetes部署1.1 基础系统配置开始前请确保您的Ubuntu 20.04系统满足以下条件至少4核CPU和8GB内存50GB以上可用磁盘空间已配置SSH远程访问拥有root权限或sudo权限首先更新系统并安装必要工具sudo apt update sudo apt upgrade -y sudo apt install -y curl wget git1.2 使用KubeKey部署单节点K8s集群相比官方文档推荐的sealosKubeKey在国内网络环境下部署更稳定高效。以下是具体步骤设置下载区域变量并获取KubeKeyexport KKZONEcn curl -sfL https://get-kk.kubesphere.io | VERSIONv2.0.0 sh -赋予执行权限并创建集群chmod x kk ./kk create cluster --with-kubernetes v1.21.5注意执行过程中会提示确认节点信息输入yes继续验证集群状态kubectl get pod -A正常输出应显示所有核心组件均为Running状态NAMESPACENAMEREADYSTATUSRESTARTSkube-systemcalico-kube-controllers-846b5f484d-vz9sh1/1Running0kube-systemcoredns-5495dd7c88-dvjn81/1Running02. DeepFlow核心组件安装2.1 Helm仓库配置与准备DeepFlow使用Helm进行部署首先添加仓库helm repo add deepflow https://deepflow-ce.oss-cn-beijing.aliyuncs.com/chart/stable helm repo update2.2 定制化安装配置创建values-custom.yaml配置文件global: allInOneLocalStorage: true image: repository: registry.cn-beijing.aliyuncs.com/deepflow-ce grafana: image: repository: registry.cn-beijing.aliyuncs.com/deepflow-ce/grafana关键配置说明allInOneLocalStorage: 启用本地存储模式适合单节点部署repository: 使用国内镜像加速下载2.3 执行Helm安装运行以下命令完成部署helm install deepflow -n deepflow deepflow/deepflow --create-namespace -f values-custom.yaml成功部署后终端会显示DeepFlow的ASCII艺术logo和访问信息。此时系统会自动创建以下核心组件deepflow-server: 数据处理与存储核心deepflow-agent: 数据采集器deepflow-grafana: 可视化仪表盘3. 访问与验证部署3.1 获取Grafana访问凭证执行以下命令获取访问信息NODE_PORT$(kubectl get --namespace deepflow -o jsonpath{.spec.ports[0].nodePort} services deepflow-grafana) NODE_IP$(kubectl get nodes -o jsonpath{.items[0].status.addresses[0].address}) echo -e Grafana URL: http://$NODE_IP:$NODE_PORT \nGrafana auth: admin:deepflow输出示例Grafana URL: http://192.168.1.100:30370 Grafana auth: admin:deepflow3.2 初探内置监控面板登录Grafana后您将看到DeepFlow预置的丰富监控模板主要包括基础设施监控节点资源使用率CPU/内存/磁盘网络流量分析容器运行状态服务观测服务拓扑关系图请求延迟分布错误率统计全链路追踪请求调用链追踪跨服务性能分析黄金指标监控4. 深度配置与使用技巧4.1 数据采集优化配置修改deepflow-agent配置以获取更精细的数据agent: log_level: info resources: limits: cpu: 1000m memory: 1Gi应用配置更新helm upgrade deepflow -n deepflow deepflow/deepflow -f values-custom.yaml4.2 自定义监控指标在Grafana中创建自定义面板的步骤点击 → Create → Dashboard添加新的Panel在Metrics浏览器中选择数据源为DeepFlow使用PromQL语法编写查询表达式常用查询示例sum(rate(container_cpu_usage_seconds_total[1m])) by (pod)4.3 告警规则配置DeepFlow内置了智能告警功能您可以通过以下路径配置导航到Grafana的Alert → Alert rules点击New alert rule设置条件表达式和通知渠道推荐的基础告警规则节点CPU使用率 80%持续5分钟Pod内存使用量超过申请值的90%服务错误率 1%5. 常见问题排查指南5.1 组件状态检查使用以下命令验证各组件健康状态kubectl get pods -n deepflow预期输出应包含三个核心组件且状态为RunningNAMEREADYSTATUSRESTARTSdeepflow-agent-xxx1/1Running0deepflow-server-01/1Running0deepflow-grafana-xxx1/1Running05.2 日志查看方法查看特定组件的日志kubectl logs -n deepflow pod-name --tail100常见错误及解决方案镜像拉取失败检查网络连接确认镜像仓库地址正确存储初始化问题确保有足够磁盘空间检查存储类配置端口冲突确认38086端口未被占用修改values.yaml中的服务端口5.3 性能调优建议对于资源有限的开发环境可以调整资源配置server: resources: limits: cpu: 2 memory: 4Gi grafana: resources: limits: cpu: 1 memory: 2Gi实际项目中根据我的经验合理配置资源限制可以避免OOM问题同时建议定期清理过期监控数据以节省存储空间。对于长期运行的开发环境可以配置数据保留策略server: retentionPolicy: 30d
保姆级教程:从零在单节点Ubuntu上搭建DeepFlow可观测性平台(含Grafana面板配置)
零基础实战Ubuntu单节点快速搭建DeepFlow全栈可观测性平台在云原生技术蓬勃发展的今天系统可观测性已成为开发者必备技能。DeepFlow作为开箱即用的全栈观测平台通过整合指标、日志、链路追踪等多维数据为开发者提供了前所未有的系统洞察能力。本文将手把手带您在一台Ubuntu 20.04机器上完成从零开始搭建完整DeepFlow环境的全过程特别适合想快速体验云原生监控的个人开发者和技术爱好者。1. 环境准备与Kubernetes部署1.1 基础系统配置开始前请确保您的Ubuntu 20.04系统满足以下条件至少4核CPU和8GB内存50GB以上可用磁盘空间已配置SSH远程访问拥有root权限或sudo权限首先更新系统并安装必要工具sudo apt update sudo apt upgrade -y sudo apt install -y curl wget git1.2 使用KubeKey部署单节点K8s集群相比官方文档推荐的sealosKubeKey在国内网络环境下部署更稳定高效。以下是具体步骤设置下载区域变量并获取KubeKeyexport KKZONEcn curl -sfL https://get-kk.kubesphere.io | VERSIONv2.0.0 sh -赋予执行权限并创建集群chmod x kk ./kk create cluster --with-kubernetes v1.21.5注意执行过程中会提示确认节点信息输入yes继续验证集群状态kubectl get pod -A正常输出应显示所有核心组件均为Running状态NAMESPACENAMEREADYSTATUSRESTARTSkube-systemcalico-kube-controllers-846b5f484d-vz9sh1/1Running0kube-systemcoredns-5495dd7c88-dvjn81/1Running02. DeepFlow核心组件安装2.1 Helm仓库配置与准备DeepFlow使用Helm进行部署首先添加仓库helm repo add deepflow https://deepflow-ce.oss-cn-beijing.aliyuncs.com/chart/stable helm repo update2.2 定制化安装配置创建values-custom.yaml配置文件global: allInOneLocalStorage: true image: repository: registry.cn-beijing.aliyuncs.com/deepflow-ce grafana: image: repository: registry.cn-beijing.aliyuncs.com/deepflow-ce/grafana关键配置说明allInOneLocalStorage: 启用本地存储模式适合单节点部署repository: 使用国内镜像加速下载2.3 执行Helm安装运行以下命令完成部署helm install deepflow -n deepflow deepflow/deepflow --create-namespace -f values-custom.yaml成功部署后终端会显示DeepFlow的ASCII艺术logo和访问信息。此时系统会自动创建以下核心组件deepflow-server: 数据处理与存储核心deepflow-agent: 数据采集器deepflow-grafana: 可视化仪表盘3. 访问与验证部署3.1 获取Grafana访问凭证执行以下命令获取访问信息NODE_PORT$(kubectl get --namespace deepflow -o jsonpath{.spec.ports[0].nodePort} services deepflow-grafana) NODE_IP$(kubectl get nodes -o jsonpath{.items[0].status.addresses[0].address}) echo -e Grafana URL: http://$NODE_IP:$NODE_PORT \nGrafana auth: admin:deepflow输出示例Grafana URL: http://192.168.1.100:30370 Grafana auth: admin:deepflow3.2 初探内置监控面板登录Grafana后您将看到DeepFlow预置的丰富监控模板主要包括基础设施监控节点资源使用率CPU/内存/磁盘网络流量分析容器运行状态服务观测服务拓扑关系图请求延迟分布错误率统计全链路追踪请求调用链追踪跨服务性能分析黄金指标监控4. 深度配置与使用技巧4.1 数据采集优化配置修改deepflow-agent配置以获取更精细的数据agent: log_level: info resources: limits: cpu: 1000m memory: 1Gi应用配置更新helm upgrade deepflow -n deepflow deepflow/deepflow -f values-custom.yaml4.2 自定义监控指标在Grafana中创建自定义面板的步骤点击 → Create → Dashboard添加新的Panel在Metrics浏览器中选择数据源为DeepFlow使用PromQL语法编写查询表达式常用查询示例sum(rate(container_cpu_usage_seconds_total[1m])) by (pod)4.3 告警规则配置DeepFlow内置了智能告警功能您可以通过以下路径配置导航到Grafana的Alert → Alert rules点击New alert rule设置条件表达式和通知渠道推荐的基础告警规则节点CPU使用率 80%持续5分钟Pod内存使用量超过申请值的90%服务错误率 1%5. 常见问题排查指南5.1 组件状态检查使用以下命令验证各组件健康状态kubectl get pods -n deepflow预期输出应包含三个核心组件且状态为RunningNAMEREADYSTATUSRESTARTSdeepflow-agent-xxx1/1Running0deepflow-server-01/1Running0deepflow-grafana-xxx1/1Running05.2 日志查看方法查看特定组件的日志kubectl logs -n deepflow pod-name --tail100常见错误及解决方案镜像拉取失败检查网络连接确认镜像仓库地址正确存储初始化问题确保有足够磁盘空间检查存储类配置端口冲突确认38086端口未被占用修改values.yaml中的服务端口5.3 性能调优建议对于资源有限的开发环境可以调整资源配置server: resources: limits: cpu: 2 memory: 4Gi grafana: resources: limits: cpu: 1 memory: 2Gi实际项目中根据我的经验合理配置资源限制可以避免OOM问题同时建议定期清理过期监控数据以节省存储空间。对于长期运行的开发环境可以配置数据保留策略server: retentionPolicy: 30d