使用docker run命令在Prometheus中获取cAdvisor的指标
首先
在研究 Kubernetes 监控时,我觉得可能需要用到 cAdvisor,但由于对 cAdvisor 不太了解,我一直以为它是与 Kubernetes 一起启动的东西。为了解决这个问题,我开始从 cAdvisor 的使用方法进行了调查。在这里,我们将至少配置 cAdvisor,以便在 Prometheus(+ Grafana)中获取指标。
cAdvisor是什么
启动cAdvisor
由于cAdvisor以docker容器镜像提供,因此可以使用docker命令或配置管理文件来启动。这里介绍使用docker run直接启动的方法。
执行环境
请从这个页面上查看有关Prometheus和Grafana的用法等类似的文章。
操作系统:CentOS7
Kubernetes版本:1.13.1
用户:以下操作都是以root用户执行的。
执行 Docker run 命令
我在参考GitHub上的页面后,按照以下方式输入命令,启动了容器。
[root@k8s-master ~]# docker run --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor:latest
20fea528ac6bca0f2dd7b0d71a077920cdc770634af34a3da0e6f898938a9617
[root@k8s-master ~]# docker ps --filter "name=cadvisor"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
20fea528ac6b google/cadvisor:latest "/usr/bin/cadvisor..." 17 minutes ago Up 17 minutes 0.0.0.0:8080->8080/tcp cadvisor
[root@k8s-master ~]#
从Prometheus(+Grafana)获取指标
由于 cAdvisor 已启动,我们可以从 Prometheus 获取度量信息。在 Prometheus 的官方网页中有介绍如何操作。
编辑配置文件
编辑 Prometheus 的配置文件 prometheus.yml,添加一个 cAdvisor 的目标。
# 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']
# ここからcAdvisorの部分に該当する
- job_name: cadvisor
scrape_interval: 5s
static_configs:
- targets: ['localhost:8080']
使用GUI从Prometheus进行访问。
从GUI登录Grafana。
总结
如果只是无思考地启动cAdvisor,可以这样简单地做。从Prometheus(+Grafana)获取指标也不是太困难。
然而,由于cAdvisor无法长时间保存数据,所以通常与InfluxDB等结合使用。此外,本次使用docker run命令进行启动,但也可以通过创建yaml文件来启动。官方页面介绍了使用kustomize进行部署的方法。
请提供参考链接。
使用cAdvisor监控Docker容器的方法 [第1部分]
使用cAdvisor监控Docker容器的方法 [第2部分]