1. 程式人生 > >Docker容器效能監控工具google/cadvisor

Docker容器效能監控工具google/cadvisor

原文地址:https://hub.docker.com/r/google/cadvisor/

cAdvisor(Container Advisor)為容器使用者提供了對其執行容器的資源使用和效能特徵的理解。 它是一個執行守護程式,用於收集,聚合,處理和匯出有關正在執行的容器的資訊。 具體而言,對於每個容器,它保留資源隔離引數,歷史資源使用和完整歷史資源使用的直方圖。 此資料按容器和機器範圍匯出。

https://github.com/google/cadvisor

 

官方cAdvisor版本基於Linux構建,並通過臨時影象匯出,這保證了映象大小更小。

 Dockefile:

https://github.com/google/cadvisor/blob/master/deploy/Dockerfile

FROM alpine:3.7
MAINTAINER [email protected] [email protected] [email protected] [email protected] [email protected]

ENV GLIBC_VERSION "2.28-r0"

RUN apk --no-cache add ca-certificates wget device-mapper findutils && \
    apk --no-cache add zfs --repository http://dl-3.alpinelinux.org/alpine/edge/main/ && \
    apk --no-cache add thin-provisioning-tools --repository http://dl-3.alpinelinux.org/alpine/edge/main/ && \
    wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
    wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk && \
    wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-bin-${GLIBC_VERSION}.apk && \
    apk add glibc-${GLIBC_VERSION}.apk glibc-bin-${GLIBC_VERSION}.apk && \
    /usr/glibc-compat/sbin/ldconfig /lib /usr/glibc-compat/lib && \
    echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf && \
    rm -rf /var/cache/apk/*

# Grab cadvisor from the staging directory.
ADD cadvisor /usr/bin/cadvisor

EXPOSE 8080
ENTRYPOINT ["/usr/bin/cadvisor", "-logtostderr"]

注:在linux系統下才能很好的執行不支援windows.

每個cAdvisor版本都有標記。 我們還有2個用於測試和穩定音軌的標籤:

  •      latest:最新穩定版本,這是最新官方支援的版本。
  •      canary:定期從HEAD構建的影象。 潛在的不穩定!

 我們還有一個自動構建的cAdvisor版本的cAdvisor,它是從HEAD不斷構建的。 這可以在google / cadvisor-canary映象中找到。 由於其大小和易變性,不建議用於生產。

補充快速操作:

# 獲取映象
docker pull google/cadvisor

# 執行容器
docker 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 --privileged=true --name=cadvisor --restart=always google/cadvisor:latest

# 執行容器簡寫方式
docker run -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro -p 8080:8080 --detach=true --privileged=true --name=cadvisor --restart=always google/cadvisor:latest

# 檢視容器日誌
docker logs -f cadvisor

# 訪問說明
#curl http://host:8080