保姆级教程:从零在单节点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集群
相比官方文档推荐的sealos,KubeKey在国内网络环境下部署更稳定高效。以下是具体步骤:
- 设置下载区域变量并获取KubeKey:
export KKZONE=cn curl -sfL https://get-kk.kubesphere.io | VERSION=v2.0.0 sh -- 赋予执行权限并创建集群:
chmod +x kk ./kk create cluster --with-kubernetes v1.21.5注意:执行过程中会提示确认节点信息,输入"yes"继续
- 验证集群状态:
kubectl get pod -A正常输出应显示所有核心组件均为Running状态:
| NAMESPACE | NAME | READY | STATUS | RESTARTS |
|---|---|---|---|---|
| kube-system | calico-kube-controllers-846b5f484d-vz9sh | 1/1 | Running | 0 |
| kube-system | coredns-5495dd7c88-dvjn8 | 1/1 | Running | 0 |
2. 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预期输出应包含三个核心组件且状态为Running:
| NAME | READY | STATUS | RESTARTS |
|---|---|---|---|
| deepflow-agent-xxx | 1/1 | Running | 0 |
| deepflow-server-0 | 1/1 | Running | 0 |
| deepflow-grafana-xxx | 1/1 | Running | 0 |
5.2 日志查看方法
查看特定组件的日志:
kubectl logs -n deepflow <pod-name> --tail=100常见错误及解决方案:
镜像拉取失败:
- 检查网络连接
- 确认镜像仓库地址正确
存储初始化问题:
- 确保有足够磁盘空间
- 检查存储类配置
端口冲突:
- 确认38086端口未被占用
- 修改values.yaml中的服务端口
5.3 性能调优建议
对于资源有限的开发环境,可以调整资源配置:
server: resources: limits: cpu: 2 memory: 4Gi grafana: resources: limits: cpu: 1 memory: 2Gi实际项目中,根据我的经验,合理配置资源限制可以避免OOM问题,同时建议定期清理过期监控数据以节省存储空间。对于长期运行的开发环境,可以配置数据保留策略:
server: retentionPolicy: "30d"