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 主机安装在一台机器上面,不然无法采集 docker 数据
Prometheus
用于抓取数据和存储数据,另外支持监控告警。
安装:
docker run -d \
--name=prometheus \
-p 10413:9090 \
-v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
注意:安装之前需要将 prometheus.yml 放到 tmp 目录下挂载到容器中,可以在该配置文件中做监控规则及监控主机配置。(可以网上找一下这个文件)
prometheus.yml 配置讲解:
# 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: ["localhost:port"]
- job_name: 'docker' // 分组名称,如 docker、mysql等,下面可以监控一些主机
static_configs:
- targets: ['ip:port'] //监控主机,多个可以继续在里面添加,逗号分隔,如:['ip:port','ip:port']
Grafana
数据展示可视化系统。
安装:
docker run -d \
--name=grafana \
-p 10415:3000 \
grafana/grafana
配置:
- 默认账号和密码都是 admin
- 登录成功,修改密码
- 添加数据源–选择 Prometheus
- 配置 Prometheus 地址
- 导入仪表板,这里使用 193模板,直接输入进去点击 load,数据源选择创建好的 Prometheus
这里模板的使用也可以到官网上面下载模板导入,也可以使用其他模板 id - 展示
总结
- cAdvisor: 负责采集docker数据(容器资源和使用性能信息,资源利用率),必须安装再docker主机上,不然采集不到docker主机的数据
- promettheus: 监控系统,负责数据的存储,告警也是再这里做,主机配置填写 cAdvisor 主机地址和端口
- Grafana: 负责数据的可视化展示 默认账号密码:admin 密码:admin