Datadog:全栈可观测性平台
Datadog 全栈可观测性平台:基础设施监控入门教程
Datadog 是一个面向云原生应用的监控与安全平台,能够将基础设施指标、日志、应用性能(APM)、用户体验等数据统一收集并关联。本教程将带你从零开始,掌握使用 Datadog 监控服务器、容器和云资源的核心技能。
什么是 Datadog 以及为什么需要它
Datadog 是一个 SaaS 化的全栈可观测性平台,它可以把分散在不同系统里的监控数据汇聚到一处,提供实时仪表盘、智能告警和强大的查询能力。无论是几台虚拟机,还是成千上万个容器,你都能通过统一的界面了解整个系统的健康状况。
核心价值在于:
- 统一视图:指标、日志、Trace、安全事件在同一平台呈现。
- 自动关联:基础设施问题可以快速关联到受影响的日志和请求链路。
- 智能告警:支持基于机器学习的异常检测和预测。
- 开放生态:内置 700 多个集成,覆盖 AWS、Kubernetes、Docker、Nginx 等。
Datadog 架构一览
理解 Datadog 的基础架构有助于你快速上手监控流程。
- Datadog Agent:运行在你需要监控的主机或 Kubernetes 节点上,负责采集系统指标、容器状态和日志。
- Integrations:Agent 内置的插件,能与特定软件或云服务交互,自动收集相关指标。
- Datadog 后端:SaaS 端的数据存储、处理、查询和可视化引擎。
- 前端界面:通过浏览器或移动 App 访问,用于查看仪表盘、配置监控、分析数据。
数据从 Agent 汇聚到 Datadog,经过标签(Tags)丰富后,即可在平台上进行搜索、聚合和告警。
第一步:注册账号与获取 API Key
开始监控之前,你需要一个 Datadog 账号。
- 前往 datadoghq.com 注册免费试用(14 天全功能试用)。
- 登录后,导航至 Organization Settings → API Keys。
- 系统会为你默认生成一个 API Key,复制它,后续安装 Agent 时会用到。
- 同样在 Organization Settings 下找到 Agent Installation,根据你的操作系统获取安装指令。
第二步:安装 Datadog Agent
Agent 是所有监控的基石,需要安装到每一台要监控的主机上。以下以 Linux (Ubuntu) 为例:
DD_API_KEY=<你的API_KEY> DD_SITE="datadoghq.com" bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)"
该命令会自动下载并安装最新版 Agent,并以你提供的 API Key 进行注册。安装完成后,Agent 会作为系统服务运行。
验证安装:在主机上执行 sudo datadog-agent status,如果输出显示 Agent is running 且无报错,即表示安装成功。几分钟后,你可以在 Datadog 的 Infrastructure → Host Map 中看到这台主机。
对于 Docker 环境,可以使用官方的 datadog/agent 镜像,通过 Docker Compose 或 Kubernetes DaemonSet 部署,确保它能收集容器指标和宿主机信息。
基础设施监控基础:主机、容器和进程
一旦 Agent 正常运行,Datadog 会自动开始收集大量系统级指标,无需额外配置。
- 主机视图(Host Map):在 Web 界面的 Infrastructure → Host Map 中,所有主机以六边形展示,颜色按 CPU 或内存使用率动态变化。你可以按标签(如
env:production)过滤,快速定位问题主机。 - 实时容器(Containers):如果主机运行 Docker,Agent 会自动发现并上报容器指标。Infrastructure → Containers 页面会列出所有容器,显示 CPU、内存、I/O 等实时数据,并支持按 Docker 标签或 Kubernetes 元数据筛选。
- 进程监控(Processes):开启 Live Process 功能后(需在 Agent 配置中启用),可以在 Infrastructure → Processes 查看所有活跃进程的 CPU、内存使用率和启动参数,这对排查异常进程很有帮助。
关键指标与标签(Tags)的理解
Datadog 的每一项指标都以 <metric_name> 的形式存储,并带有一组键值对标签。标签是 Datadog 最强大的功能之一,它让你在多维度下对数据进行切片和聚合。
常见的系统指标示例:
system.cpu.user:用户态 CPU 使用率system.mem.used:已用内存system.net.bytes_rcvd:网络接收字节数system.disk.in_use:磁盘空间使用率
标签可以是 Datadog 自动添加的(如 host, os, region),也可以是你在 datadog.yaml 中自定义的,例如:
env:stagingservice:frontendteam:platform
任何指标查询都可以通过标签过滤和分组,例如:system.cpu.user{env:production} by {host} 将返回生产环境每台主机的 CPU 用户态消耗。
探索指标与创建监测器(Monitor)
光看默认仪表盘还不够,你需要学会按需查询指标。
- 进入 Metrics → Explorer,直接在搜索栏输入指标名称,回车后会看到该指标的图表和详情。
- 点击 Graph 下的 Edit,你可以修改时间范围、添加分组条件、应用函数(如
avg,rate,top10)。 - 保存你的查询图表到个人仪表盘,或直接从图表创建 Monitor。
创建第一个监控告警
假设你需要当某台主机的 CPU 使用率持续 5 分钟超过 90% 时收到告警:
- 进入 Monitors → New Monitor,选择 Metric。
- 将检测方法设为 Threshold Alert。
- 在查询中填入
avg:system.cpu.user{host:你的主机名} by {host}。 - 设置阈值:当
above90持续5分钟时触发。 - 添加通知消息,配置要 @ 的团队或外部集成(如 Slack、PagerDuty)。
- 保存 Monitor,一旦条件满足,你就会收到通知。
可视化:构建自定义仪表盘
仪表盘让你能够将相关指标集中展示,快速掌握服务整体状态。
- 前往 Dashboards → New Dashboard,命名如“生产环境概览”。
- 点击 Add Widgets,选择 Timeseries 来展示折线图。
- 在编辑界面输入查询:
system.cpu.user{env:production} by {host},设置标题为“按主机 CPU 使用率”。 - 添加 Host Map 小部件,按环境过滤,直观显示主机负载。
- 使用 Change 小部件展示某指标的环比变化。
- 保存后,该仪表盘即可实时更新,并可通过链接或全屏模式(TV Mode)投屏。
集成日志、APM 与网络监控(入门)
Datadog 的强大之处在于它能将基础设施监控与日志、应用性能监控整合。
- 日志管理:在 Agent 配置中启用日志收集,设置日志路径,即可在 Logs 页面查看、搜索并与主机指标关联。例如,点击主机的 CPU 飙升时间点,可以直接跳转到该时刻的日志。
- APM:为你的应用引入 Datadog Tracing 库,即可自动埋点,生成请求链路。在 APM → Services 可以看到服务间的调用延迟和错误率,并与基础设施指标同屏展示。
- 网络性能监控:Agent 自动采集主机和容器间的流量数据,Network 地图中能够看到依赖关系和流量拥堵点。
这些不是本基础教程的重点,但了解它们的存在会帮助你规划未来的可观测性架构。
最佳实践与常见配置技巧
- 统一标签策略:在被监控的资源上(主机、容器、云实例)强制规范标签,如
env,service,team,version。这能让所有遥测数据在不同产品间无缝关联。 - 按环境组织 Agent:利用 Datadog 的
datadog.yaml中的env字段,自动给所有指标打上环境标签,方便区分生产、预发布和开发环境。 - 合理设置采集频率:默认 Agent 每 15 秒上报一次指标,对于不重要的指标可以通过集成配置降低频率以控制成本。
- 利用模板变量:在仪表盘中使用模板变量(如
$env,$host),使其可动态切换,一个仪表盘适配多种场景。 - 监控覆盖检查:使用 Monitors → Manage 页面定期审查是否所有关键服务都有对应的告警,避免监控盲区。
下一步与进阶资源
现在你已经能够熟练安装 Agent、查看基础设施指标、构建仪表盘并设置基本告警。接下来你可以:
- 探索 750+ 内置集成,例如 AWS 集成可以让你在一个仪表盘中同时看到 EC2 指标和 RDS 性能。
- 深入 Synthetic Monitoring 实现主动探测。
- 学习 Datadog 的查询语言(DDQL)来创建更复杂的图表和告警表达式。
官方文档(docs.datadoghq.com)是持续学习的最佳途径,尤其是 Getting Started 系列指南和 Monitor Types 参考。
通过持续实践与标签规范化,你将能把 Datadog 真正打造成团队的全栈可观测性中枢。