
Axibase时序数据库(ATSD)提供原生存储驱动,可从https://github.com/google/cadvisor%E6%94%B6%E9%9B%86Docker%E5%AE%B9%E5%99%A8%E6%8C%87%E6%A0%87%EF%BC%8C%E7%94%A8%E4%BA%8E%E9%95%BF%E6%9C%9F%E4%BF%9D%E7%95%99%E3%80%81%E5%91%8A%E8%AD%A6%E5%92%8C%E5%8F%AF%E8%A7%86%E5%8C%96%E3%80%82
Google cAdvisor是一款轻量级容器化应用,使用golang编写,可从Linux操作系统读取CPU、内存、网络和磁盘I/O计数器,并通过内置Web界面提供实时查看。cAdvisor可配置将计数器持久化到一个或多个存储系统中。
ATSD和cAdvisor均以Docker容器形式提供。
单主机
ATSD和Google cAdvisor容器可在同一服务器上启动,以收集底层Docker主机的指标。
多主机
要整合多个Docker主机的指标,可配置cAdvisor容器将数据发送到集中式ATSD实例。此部署模式支持集中式性能和可用性监控。
!分布式Docker架构
bashdocker run \ -d \ -p 8088:8088 \ -p 8081:8081 \ -p 8443:8443 \ -p 8082:8082/udp \ -h atsd \ --name=atsd \ axibase/atsd
在start.log中观察ATSD start completed消息确认启动完成。
bashdocker logs -f atsd
更多选项请参考ATSD Docker安装说明。
ATSD Web界面可通过端口84443访问。
在受监控的Docker主机上启动cAdvisor容器,将数据发送数据发送到目标ATSD服务器。
将以下命令中的{ATSD_HOSTNAME}占位符替换为ATSD服务器的主机名。
bashdocker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ axibase/cadvisor:latest \ --storage_driver=atsd \ --storage_driver_atsd_protocol=tcp \ --storage_driver_host={ATSD_HOSTNAME} \ --storage_driver_buffer_duration=15s \ --housekeeping_interval=15s
axibase/cadvisor镜像是google/cadvisor镜像的修改版本,包含ATSD存储驱动。
更改协议
默认情况下,数据通过TCP协议在端口8081传输到ATSD。如有需要,可修改启动命令以通过HTTP或HTTPS协议发送数据。
链接容器
在单主机安装情况下,添加--link参数并将上述命令中的{ATSD_HOSTNAME}占位符替换为atsd,如下所示:
bashdocker run \ ... --link atsd:atsd \ --name=cadvisor \ axibase/cadvisor:latest \ ... --storage_driver_host=atsd \
https://atsd_hostname:8443。cadvisor开头的指标。cadvisor-hosts。磁盘指标仅从带有附加卷的容器中收集。
| cAdvisor磁盘详情门户 |
|---|
| 更新间隔。必须 >= housekeeping_interval |
storage_driver_atsd_sampling_interval | housekeeping_interval 值 | 系列采样间隔。必须 >= housekeeping_interval |
storage_driver_atsd_docker_host | /rootfs/etc/hostname的输出或空字符串 | Docker主机的主机名,用作ATSD中的实体前缀。 |
storage_driver_atsd_store_user_cgroups | false | 包含用户cgroups的统计信息,例如:docker-host/user.* |
storage_driver_buffer_duration | 1m | 数据发送到ATSD前的缓冲间隔 |
storage_driver_atsd_buffer_limit | 1000000 | 发送到ATSD前缓冲区中的最大命令数 |
storage_driver_atsd_sender_thread_limit | 4 | 通过tcp/udp向ATSD发送数据时的最大线程goroutine数 |
要在同一Docker主机上快速启动ATSD和cAdvisor,可使用https://raw.githubusercontent.com/axibase/atsd-use-cases/master/integrations/cadvisor/docker-compose.yml%E6%96%87%E4%BB%B6%E3%80%82
下载docker-compose.yml文件以将ATSD和cAdvisor容器作为捆绑服务启动。
bashcurl https://raw.githubusercontent.com/axibase/atsd-use-cases/master/integrations/cadvisor/docker-compose.yml \ -o docker-compose.yml
启动容器。
bashdocker-compose up -d
检查输出以确保容器已创建。
textCreating atsd ... done Creating cadvisor ... done
来自cpuacct控制器的CPU指标。CPU使用率由容器进程生成,分为user(用户时间)和system(系统时间)。用户时间是进程直接控制CPU的时间,系统时间是CPU代表这些进程执行系统调用的时间。这些时间以1/100秒的ticks表示。
txtcpu.loadaverage cpu.loadaverage% cpu.usage.percpu cpu.usage.percpu% cpu.usage.system cpu.usage.system% cpu.usage.total cpu.usage.total% cpu.usage.user cpu.usage.user% cpu.host.usage.system% cpu.host.usage.total% cpu.host.usage.user%
I/O在blkio控制器中统计。
io_service_bytes – 表示cgroup读取和写入的字节数。每个设备有4个计数器,区分同步/异步I/O和读/写操作。
io_serviced – 执行的I/O操作数(与大小无关)。每个设备也有4个计数器。
txtdiskio.ioservicebytes.async diskio.ioservicebytes.read diskio.ioservicebytes.sync diskio.ioservicebytes.total diskio.ioservicebytes.write diskio.ioserviced.async diskio.ioserviced.read diskio.ioserviced.sync diskio.ioserviced.total diskio.ioserviced.write
内存指标位于“memory” cgroup中。
pgfault和pgmajfault – 表示cgroup进程触发页面错误和主要错误的次数。页面错误发生在进程访问其虚拟内存空间中不存在或受保护的部分时。
memory.usage – 所有已使用内存量(无论访问时间)。
memory.workingset – 进程在给定时间间隔内需要的内存量,包括最近访问的内存、脏内存和内核内存。
txtmemory.containerdata.pgfault memory.containerdata.pgmajfault memory.hierarchicaldata.pgfault memory.hierarchicaldata.pgmajfault memory.usage memory.workingset cadvisor.memory.cache cadvisor.memory.rss
网络指标跟踪接收/发送的数据包数量、流量字节数、丢包数和错误数。
network.rxbytes – 接收字节的累计计数。
network.rxpackets – 接收数据包的累计计数。
network.rxerrors – 遇到的接收错误累计计数。
network.rxdropped – 接收时丢弃的数据包累计计数。
network.txbytes – 传输字节的累计计数。
network.txpackets – 传输数据包的累计计数。
network.txerrors – 遇到的传输错误累计计数。
network.txdropped – 传输时丢弃的数据包累计计数。
taskstats.nriowait – 等待I/O的任务数。
taskstats.nrrunning – 运行中的任务数。
taskstats.nrsleeping – 睡眠中的任务数。
taskstats.nrstopped – 停止状态的任务数。
taskstats.nruninterruptible – 不可中断状态的任务数。
文件系统指标跟踪附加文件系统的读写过程。
txtfilesystem.available filesystem.ioinprogress filesystem.iotime filesystem.limit filesystem.readscompleted filesystem.readsmerged filesystem.readtime filesystem.sectorsread filesystem.sectorswritten filesystem.usage filesystem.weightediotime filesystem.writescompleted filesystem.writesmerged filesystem.writetime cadvisor.filesystem.baseusage cadvisor.filesystem.inodesfree
磁盘指标和文件系统指标仅从具有附加卷的容器中收集。
以下是 axibase/cadvisor 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务