【问题标题】:Prometheus - how to monitor other docker containersPrometheus - 如何监控其他 docker 容器
【发布时间】:2017-05-16 10:50:16
【问题描述】:

我想使用 Prometheus 来监控我的 docker 容器。我可以使用 Grafana 运行 Prometheus,但我不知道如何指示它监控其他 docker 容器。 如果可能的话,我想看一些例子。例如,我的主机上运行了 Ubuntu 容器以及 Gentoo 容器。我如何告诉 Prometheus 监视它们,或者监视其中运行的某些应用程序? 提前感谢您对我的耐心和耐心。

【问题讨论】:

    标签: docker prometheus


    【解决方案1】:

    您可以使用cadvisor,它让容器用户了解他们正在运行的容器的资源使用情况和性能特征。

    关于设置 Prometheus 以监控 Dockervery good article 正在使用此架构:

    简单地说,这个想法是使用 cAdvisor 收集有关容器的信息,并将它们放入 Prometheus 数据库中。 Grafana 将查询 Prometheus 数据库并渲染监控图表/值。

    要从 cAdvisorPrometheus 收集数据,您必须编辑 configuration file (prometheus.yml):

    scrape_configs:
      - job_name: 'cadvisor'
        scrape_interval: 5s
        static_configs:
          - targets: ['cadvisor:8080']
    

    当您在 Prometheus 中有一些数据时,您必须使用 Grafana 来查看它。可以导入 Grafana 的监控 json 查询的(简短)示例如下:

    获取用户 CPU 的百分比:

      "targets": [
        {
          "expr": "sum(rate(container_cpu_user_seconds_total{image!=\"\"}[1m])) / count(node_cpu{mode=\"system\"}) * 100",
          "interval": "10s",
          "intervalFactor": 1,
          "legendFormat": "",
          "refId": "A",
          "step": 10
        }
      ]
    

    获取已用 RAM 的百分比:

      "targets": [
        {
          "expr": "(sum(node_memory_MemTotal) - sum(node_memory_MemFree+node_memory_Buffers+node_memory_Cached) ) / sum(node_memory_MemTotal) * 100",
          "interval": "10s",
          "intervalFactor": 2,
          "legendFormat": "",
          "refId": "A",
          "step": 20
        }
      ]
    

    对于完整的json数据(这里太长无法发布),您可以克隆此存储库:

    git clone https://github.com/stefanprodan/dockprom
    

    并尝试导入这个Grafana json

    我目前正在使用此架构来监控生产中的 docker swarm mode 集群,这是您可以在 github 存储库中找到的监控输出。

    【讨论】:

    • 谢谢!!!我会检查它,尝试一下,然后告诉你。我正在寻找简单但足够强大的东西,并相信 Prometheus 是一个不错的选择。
    • 不客气,我在全球 3 个生产站点使用这个堆栈(+节点导出器/警报管理器),我真的很欣赏只需部署 collectors 容器(cAdvisor / 节点)的简单性exporter) 在主机中,然后像魔术一样看到图表!
    • 感谢您分享这个答案。在我的用例中也帮助了我
    • 所以,我已经设法根据需要进行配置。只是我很困惑,需要弄清楚当某些事件(警报)被触发时如何配置电子邮件通知 - 例如,某些 docker 容器因任何原因而关闭。
    • 您应该为此在 StackOverflow 中提出另一个问题,以便任何人都可以回答您(如果有用,请不要忘记接受此答案)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 2023-02-17
    • 2017-03-30
    • 1970-01-01
    • 2022-01-13
    • 2021-08-18
    相关资源
    最近更新 更多