Docker Container 可观测性最佳实践
本文介绍如何通过观测云构建 Docker 可观测性。
Docker Container 介绍
Docker Container( Docker 容器)是一种轻量级、可移植的、自给自足的软件运行环境,它在 Docker 引擎的宿主机上运行。容器在许多方面类似于虚拟机,但它们更轻量,因为它们不需要模拟整个操作系统。相反,容器共享宿主机的操作系统内核,并在用户空间中运行。
Docker 容器可观测对于确保容器化应用程序的性能、稳定性和可用性至关重要,本文主要以纯 Docker 环境下(非K8S ),构建 Container 的可观测性。
观测云
使用观测云可以轻松采集到容器的 cpu 、内存、网络、IO 等核心指标,并自动采集容器的标准输出日志,使用观测云可以有效地监控和管理容器化应用程序,一键实现容器可观测。
部署 DataKit
登录观测云,点击集成按钮,选择 DataKit,会自动生成安装 DataKit 命令。

DataKit 安装完成后,默认开启了 container 采集器,container 采集器主要采集 K8S 和 docker 容器的指标、日志等信息。执行命令 datakit monitor 可以数据查看采集情况,在 Inputs Info 中 logging/xxx 表明正在采集当前 xxx 容器的日志,container-mertic 表明正在采集容器的指标。

关键指标
- docker_containers
| Metric | Description | Type | Unit |
|---|---|---|---|
| block_read_byte | Total number of bytes read from the container file system (only supported docker). | int | B |
| block_write_byte | Total number of bytes wrote to the container file system (only supported docker). | int | B |
| cpu_numbers | The number of the CPU core. | int | count |
| cpu_usage | The percentage usage of CPU on system host. | float | percent |
| cpu_usage_base100 | The normalized cpu usage, with a maximum of 100%. | float | percent |
| mem_capacity | The total memory in the host machine. | int | B |
| mem_limit | The limit memory in the container. | int | B |
| mem_usage | The usage of the memory. | int | B |
| mem_used_percent | The percentage usage of the memory is calculated based on the capacity of host machine. | float | percent |
| mem_used_percent_base_limit | The percentage usage of the memory is calculated based on the limit. | float | percent |
| network_bytes_rcvd | Total number of bytes received from the network (only count the usage of the main process in the container, excluding loopback). | int | B |
| network_bytes_sent | Total number of bytes send to the network (only count the usage of the main process in the container, excluding loopback). | int | B |
视图
登录观测云控制台,点击「场景」 -「新建仪表板」,输入 “docker” , 选择 “Docker 监控视图”,点击 “确定” 即可添加内置视图。

- 概览

- CPU & 内存

- IO & Network

- 日志

监控器(告警)
容器重启告警
容器启动时间小于5分钟,触发容器重启告警。

CPU 利用率告警
容器 cpu 使用率,基于宿主机总 cpu 百分比利用率进行判断触发告警。

内存利用率告警
容器内存使用率,基于容器内存限制(没有设置容器内存限制按照主机最大内存计算)进行判断触发告警。

监控效果
- 重启告警

- 监控自动恢复

总结
在观测云的助力下,一键部署 Agent,自动采集 Docker 相关的日志、指标等数据, 在平台一键开启监控 Dashboard 和监控器,实时观测容器运行情况,使容器可观测性变的方便、快捷、高效。
Contact us
Join the community
to join the community
Try Guance
Start online and pay only for what you use.
Get startedChoose a Guance plan