侧边栏壁纸
博主头像
张种恩的技术小栈博主等级

行动起来,活在当下

  • 累计撰写 748 篇文章
  • 累计创建 65 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录

Prometheus+Grafana+CAdvisor快速监控容器

zze
zze
2020-10-02 / 0 评论 / 0 点赞 / 624 阅读 / 3092 字

Prometheus 和 Grafana 是啥就不多说了,这里就提一嘴 CAdvisor。

CAdvisor 是 Google 开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行 CAdvisor 用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。

同时,CAdvisor 还提供了兼容 Prometheus 的 exporter 的接口,Prometheus 可以无缝(不需要做任何修改)集成 CAdvisor 来完成采集 metrics 的动作。

下面就来演示一下如何通过 CAdvisor + Prometheus + Grafana 完成宿主机上容器信息数据的采集与绘图展示。


CAdvisor

CAdvisor 需要部署在被监控的宿主机上,这里既然已经使用容器了那我们就直接使用 Docker 启动一个 Cadvisor 容器就行了,CAdvisor 不需要任何配置,仅需要将宿主机中几个存在容器状态数据的目录映射到 Cadvisor 容器即可。

执行下面命令在被监控的宿主机上运行一个 CAdvisor 容器:

$ docker run -d \
-v /:/rootfs:ro \
-v /var/run:/var/run:ro \
-v /sys:/sys:ro \
-v /var/lib/docker:/var/lib/docker:ro \
-v /dev/disk:/dev/disk:ro \
-p 8080:8080 \
--detach=true \
--name cadvisor google/cadvisor:latest

运行成功后可使用浏览器访问 <宿主机 IP>:8080 的方式查看到 CAdvisor 提供的监控状态 Web 页,如:

image.png

Prometheus

上面可以看到其实 Cadvisor 本身就可以完成容器数据的采集与展示了,那为啥我们还需要 Prometheus 呢?

因为在实际的实践中,我们要监控的数据通常不仅仅只有容器相关数据,所以我们还需要其它的监控工具如 Zabbix、Prometheus 来完成其它数据的采集。

在完成数据采集之后,为方便运维人员的查看与管理,我们通常将采集的数据统一到一个平台下进行展示,这里就是我们待会儿要使用的 Grafana 了。

好了,那现在就部署一下 Prometheus。


先编辑一下 Prometheus 的配置文件待会儿直接映射到容器里,内容如下:

$ vim /tmp/prometheus.yml
global:
  scrape_interval:     15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
  - static_configs:
    - targets:

rule_files:

scrape_configs:
  - job_name: 'prometheus'


    static_configs:
    # 这里的地址为部署有 CAdvisor 服务宿主机 IP + CAdvisor 暴露的端口
    - targets: ['10.0.1.202:8080']

启动 Prometheus 容器:

docker run -d \
--name=prometheus \
-p 9090:9090 \
-v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus

启动完成后可以访问 http://<Prometheus 服务所在宿主机的 IP>:9090/targets 查看当前是否可正常采集 CAdvisor 的数据:

image.png

Grafana

就剩最后一步了,数据已经被 Prometheus 从 CAdvisor 采集并持久化了,现在就是要使用 Grafana 来展示采集到的监控项。


启动 Grafana 容器,不需要任何配置:

$ docker run -d \
--name=grafana \
-p 3000:3000 \
grafana/grafana

使用浏览器访问 http://<Grafana 服务所在宿主机的 IP>:3000 会出现一个登录页,默认用户名密码为 admin/admin,修改密码后可进入管理页。

先添加一个 Promethues 数据源:

image.png

Grafana 的官网为我们提供了容器监控的 Dashboard,所以这里不需要我们手动编写 PromQL 进行绘图,其 ID 为 193,所以这里我们直接导入就行了:

image.png

然后就可以在监控面板中查看到如下 Dashboard 了:
image.png

0

评论区