cAdvisor (Container Advisor) :用于收集正在运行的容器资源使用和性能信息。
https://github.com/google/cadvisor
Prometheus(普罗米修斯):容器监控系统。
https://prometheus.io
https://github.com/prometheus
Grafana:是一个开源的度量分析和可视化系统。
https://grafana.com/grafana/download
https://grafana.com/dashboards/193 (监控Docker主机模板)
Docker部署cAdvisor
docker run -d --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor:latest
cAdvisor 每台主机都需要部署
Docker部署Grafana
docker run -d --name=grafana -p 3000:3000 grafana/grafana
监控docker 模版 选择193
Docker部署Prometheus
docker run -d --name=prometheus -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
prometheus.yml
# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['10.0.0.70:9090'] - job_name: 'docker-container' static_configs: - targets: ['10.0.0.80:8080',"10.0.0.60:8080","10.0.0.70:8080"]