我在单个节点上尝试将cAdvisor和Prometheus协同工作

最近我在寻找有关Docker监控等方面的信息,看到了cAdvisor(1)。

似乎可以将InfluxDB与Grafana连接起来,以实现可视化。

我在想要使用InfluxDB,但最近我想要熟悉一下Prometheus,所以我查看了一下它们之间是否可以进行集成。
通过Google搜索,我发现已经有人实现了这个功能。

    https://www.ctl.io/developers/blog/post/monitoring-docker-services-with-prometheus/

我打算真诚地去抄写经文。

进行顺序

1. 启动 cAdvisor 容器

sudo docker run -d \
  -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro \
  -p 8080:8080 --privileged --name=cadvisor_with_influxdb \
  google/cadvisor:latest

只需要一种选项的话,可以这样翻译:
2. 准备prometheus.yml。

Prometheus设置了用于收集指标的端点。由于在AWS环境中使用,因此指定了VPC的私有IP地址以及第一步中指定的cAdvisor的8080端口。

然后,似乎会将从[私有IP:8080/metrics]收集的信息存储和可视化。


global:
  scrape_interval: 15s # By default, scrape targets every 15 seconds.
  evaluation_interval: 15s # By default, scrape targets every 15 seconds.
  # scrape_timeout is set to the global default (10s).

  # Attach these extra labels to all time-series collected by this Prometheus instance.
  #labels:
    #monitor: 'panamax-monitor'

rule_files:
  - '/etc/prometheus/alert.rules'

# A scrape configuration containing exactly one endpoint to scrape:
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.

  # Panamax
  - job_name: 'panamax'
    scrape_interval: 5s

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s
    scrape_timeout:  3s

    target_groups:
      - targets: ['プライベートIP:8080']
        labels:
          group: 'development'

3. 添加 alert.rule

这里还没有深入研究。我只是简单地复制粘贴了下面的内容。

ALERT pmx_down
  IF up == 0
  FOR 5m

4. 启动 Prometheus 服务器

以以下方式启动。
在alertmanager.url中指定了公共IP。如果指定[0.0.0.0]或[localhost],会产生错误提示。真是相当聪明呢。。

docker run -i -p 9090:9090 \
              -v $PWD/prometheus.yml:/etc/prometheus/prometheus.yml \
              -v $PWD/alert.rules:/etc/prometheus/alert.rules \
              prom/prometheus \
              -config.file=/etc/prometheus/prometheus.yml \
              -alertmanager.url=http://${AWSのパブリックIP}:9093

我看了UI界面。

通过引用在第四点中指定的用户界面,可以查看收集到的度量结果如下。

Screenshot from 2016-04-21 14-58-54.png

参考(或者说需要TODO)

    • cAdvisorじゃできないこと(マルチホストの収集と可視化)を実装

 

    • prometheusのデータ層等の隔離

 

    • alert設定の方法の確認。https://prometheus.io/docs/alerting/rules/

exporterという概念もあり、下記のようなコマンドが紹介されています。

docker run -d --name PROM_CON_EXP \
  -p 9104:9104 \
  -v /sys/fs/cgroup:/cgroup -v /var/run/docker.sock:/var/run/docker.sock \
  prom/container-exporter
    https://prometheus.io/docs/instrumenting/exporters/

查看上述网站,似乎有许多与其他第三方集团兼容的选项。
如果能理解概念并且看起来可用,我也想坚决引入它们。

想要尝试使用InfluxDB。

    http://davidanguita.name/articles/simple-data-visualization-stack-with-docker-influxdb-and-grafana/

请提供更多上下文信息以便进行准确的翻译。

使用cAdvisor,InfluxDB和Grafana来监控Docker容器的资源。
广告
将在 10 秒后关闭
bannerAds