cAdvisor 是谷歌公司用来分析运行中的 Docker 容器的资源占用以及性能特性的工具。
cAdvisor 是一个运行中的守护进程用来收集、聚合、处理和导出运行容器相关的信息,每个容器保持独立的参数、历史资源使用情况和完整的资源使用数据。当前支持 lmctfy 容器和 Docker 容器。
所有Docker服务器均需安装cAdvisor
cat <<'EOF'>cAdvisor.yml version: '2' services: cadvisor: restart: always image: docker.io/google/cadvisor ports: - '8080:8080' volumes: - '/:/rootfs:ro' - '/var/run:/var/run:rw' - '/sys:/sys:ro' - '/data/docker:/var/lib/docker:ro' - '/dev/disk/:/dev/disk:ro' EOF docker-compose -f cAdvisor.yml up -d
在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此,为了能够监控到某些东西,如主机的CPU使用率,需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。
Node-exporter 的作用,就是用于机器系统数据收集。我们在展示数据时,数据肯定是有来源的,监控系统,监控的数据有:CPU、内存、磁盘、I/O等信息。所以就需要部署Node-exporter,我们一起来看下部署过程。
所有Docker服务器均需安装Node-exporter:
cat <<'EOF'>node-exporter.yml version: '2' services: node-exporter: restart: always image: docker.io/prom/node-exporter ports: - '9100:9100' volumes: - "/proc:/host/proc" - "/sys:/host/sys" - "/:/rootfs" - "/etc/localtime:/etc/localtime" command: --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($$|/)" EOF docker-compose -f node-exporter.yml up -d
Prometheus配置
sudo sh -c "cat >>/etc/prometheus/prometheus.yml" <<'EOF' global: scrape_interval: 15s scrape_timeout: 10s evaluation_interval: 15s alerting: alertmanagers: - scheme: http timeout: 10s api_version: v1 static_configs: - targets: [] scrape_configs: - job_name: prometheus honor_timestamps: true scrape_interval: 15s scrape_timeout: 10s metrics_path: /metrics scheme: http static_configs: - targets: - localhost:9090 - docker-1:8080 - docker-1:9100 - docker-2:8080 - docker-2:9100 EOF
安装Prometheus:
cat <<'EOF'>prometheus.yml version: '2' services: prometheus-operator: restart: always image: docker.io/bitnami/prometheus:2 ports: - 9090:9090 volumes: - '/data/bitnami/prometheus.yml:/etc/prometheus/prometheus.yml' EOF docker-compose -f prometheus.yml up -d
安装Grafana:
cat <<'EOF'>grafana.yml version: '2' services: grafana: image: docker.io/bitnami/grafana:8 ports: - '3000:3000' environment: - 'GF_SECURITY_ADMIN_PASSWORD=bitnami' volumes: - grafana_data:/opt/bitnami/grafana/data volumes: grafana_data: driver: local EOF docker-compose -f prometheus.yml up -d
使用dashboard:
grafana dashboard import 11558 893