Docker Container 可观测性最佳实践
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
视图
登录观测云控制台,点击「场景」 -「新建仪表板」,输入 “docker” , 选择 “Docker 监控视图”,点击 “确定” 即可添加内置视图。
概览
CPU & 内存
IO & Network
日志
监控器(告警)
容器重启告警
容器启动时间小于 5 分钟,触发容器重启告警。
CPU 利用率告警
容器 cpu 使用率,基于宿主机总 cpu 百分比利用率进行判断触发告警。
内存利用率告警
容器内存使用率,基于容器内存限制(没有设置容器内存限制按照主机最大内存计算)进行判断触发告警。
监控效果
重启告警
监控自动恢复
总结
在观测云的助力下,一键部署 Agent,自动采集 Docker 相关的日志、指标等数据, 在平台一键开启监控 Dashboard 和监控器,实时观测容器运行情况,使容器可观测性变的方便、快捷、高效。
评论