(一)Cadvisor产品简介
Cadvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行Cadvisor用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。
被监控主机上部署Cadvisor容器
[root@docker3 ~]# docker pull google/cadvisor
[root@docker3 ~]# 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
2、访问cAdvisor页面
访问http://192.168.100.103:8080 cAdvisor页面可以看到收集到的数据
(二)Prometheus产品简介
Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包。
自2012年成立以来,很多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。 它现在是一个独立的开源项目,可以独立于任何公司进行维护。 为了强调这一点,并阐明项目的治理结构,Prometheus于2016年加入Cloud Native Computing Foundation(云原生基金会),作为继Kubernetes之后的第二个托管项目。
Prometheus的主要特征有:
多维度数据模型-由指标键值对标识的时间序列数据组成;
PromQL,一种灵活的查询语言;
不依赖分布式存储; 单个服务器节点是自治的;
以HTTP方式,通过pull模型拉取时间序列数据;
支持通过中间网关推送时间序列数据;
通过服务发现或者静态配置,来发现目标服务对象;
支持多种多样的图表和界面展示。
[root@docker3 ~]# docker pull prom/prometheus
2、先准备配置,修改配置文件
[root@docker3 ~]# vim /tmp/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: ['localhost:9090']
- job_name: 'docker' ##定义一个叫docker的组
static_configs:
- targets: ['192.168.100.103:8080'] ##填写一个或多个cadvisor的主机地址用>逗号隔开
[root@docker3 ~]# docker run -d --name=prometheus -p 9090:9090 -v /tmp/prometh
eus.yml:/etc/prometheus/prometheus.yml -v /etc/localtime:/etc/localtime prom/prometheus
看到docker组状态up为正常
查询项是可以查到数据的
(三)部署Granfana
1、下载grafana并运行
[root@docker3 ~]# docker pull grafana/grafana
[root@docker3 ~]# docker run -d \
--name=grafana \
-p 3000:3000 \
grafana/grafana
访问http://192.168.100.103:3000默认账户admin 密码 admin首次登陆需要修改密码!
3、配置数据源
4、导入模板
5、选择对应的数据源,点击导入,就可以看到被监控主机的数据
6、准备测试容器
[root@docker3 ~]# docker run -d --name=nginx -p 80:80 nginx
7、WEB操作,如下:(新建+编+保存)
8、结果如下:
到此Cadvisor +Prometheus+Grafana基本架构部署完毕