Docker 集成 Prometheus 监控

前言

随着现代化的应用架构变得更加复杂,监控应用变得越来越重要。Prometheus 已经成为了一个流行的开源监控解决方案,能够监控容器化应用程序及其管理器。本文将介绍如何将 Docker 和 Prometheus 集成,具体包括以下内容:

  • Docker基础知识
  • Prometheus基础知识
  • 如何使用 Docker Compose 部署 Prometheus
  • 如何使用 Prometheus 监控 Docker 容器
  • 如何可视化 Prometheus 数据

Docker 基础知识

Docker 是一个强大的容器化软件平台,提供了在容器中创建、打包和运行应用程序的功能。它通过使用容器的概念来定义应用程序的生命周期,与主机操作系统分离开来,因此容器化应用程序可以在任何运行 Docker 的系统上运行,并且不会受到主机操作系统的影响。

以下是一些 Docker 常用命令:

  • docker build:用于构建 Docker 镜像
  • docker run:用于在容器中运行镜像
  • docker ps:列出正在运行的容器
  • docker stop:停止容器的运行
  • docker rm:删除容器
  • docker rmi:删除镜像

Prometheus 基础知识

Prometheus 是一种开源的全面的监控系统,用于监控和报告应用程序和系统的状态。它原本是 Google 内部应用程序的监控系统,现在已经成为维护自己的工具箱中的一种主流解决方案。一个 Prometheus 应用程序可以自动发现它监控的服务,而且不需要修改应用程序代码。

以下是一些 Prometeus 常用命令:

  • promtool:用于验证和测试规则文件
  • prometheus:Prometheus 的二进制文件,用于运行 Prometheus 服务器
  • prometheus.yml:Prometheus 配置文件,用于配置 Prometheus 的行为、目标和规则
  • promql:Prometheus 的单独的查询语言,用于查询、聚合和计算监测指标

如何使用 Docker Compose 部署 Prometheus

Docker Compose 是一个工具,用于定义和运行多个 Docker 容器。使用它可以轻松地定义 Docker 应用程序的组件,并且通过一条命令启动和停止这些组件。使用 Docker Compose 可以将 Prometheus 和其依赖项(如 Node-Exporter)一起打包和运行起来。

以下是 docker-compose.yml 的示例文件:

上面的 Docker Compose 文件包含了两个 Docker 服务:

  1. Prometheus 服务:镜像为 prom/prometheus,容器名为 prometheus,监听的端口是 9090。我们将本地 prometheus.yml 文件挂载到容器中,该文件包含了 Prometheus 的配置信息。
  2. Node Exporter 服务:镜像为 prom/node-exporter,容器名为 node-exporter,监听的端口是 9100。我们将本地 node-exporter.config 文件挂载到容器中,该文件包含了 Node Exporter 的配置信息。

其中 Prometheus 服务与 Node Exporter 服务使用了同一个网络 monitoring

要部署 Prometheus,只需使用以下命令:

执行完毕后,可以通过 http://localhost:9090 访问 Prometheus 的 Web 界面。

如何使用 Prometheus 监控 Docker 容器

为了让 Prometheus 监控 Docker 容器,我们需要在以下两个方面进行配置。

  1. Docker Daemon 配置:Docker Daemon 的默认状态下,它的监控数据被暴露在内置的 metrics API 上,而且 Prometheus 已经内置了 HTTP 客户端,可以直接访问 Docker Daemon 的监控指标。我们需要在 Docker Daemon 中启用 metrics API,才能够在 Prometheus 中监控 Docker 容器。
  2. Prometheus 配置:我们需要在 Prometheus 的配置文件中指定要监控的 Docker 容器的 IP 地址和端口号。可以通过以下两种方式设置监控指标:
    • docker-containers-exporter:这个依赖于 Docker Daemon 功能启用的指标暴露。但该方式已经不再被维护了。
    • cAdvisor:一款 Docket 仓库内最扩展、最流行的容器监控工具。它提供了收集容器资源使用情况,性能和健康信息的方法。

这里以 cAdvisor 作为示例讲解如何进行 Prometheus 配置。

添加以下内容在prometheus.yml中:

cAdvisor 的默认端口号为 8080,这里将服务的名称设置为 cadvisor

如何可视化 Prometheus 数据

Prometheus 除了提供监控指标之外,还支持对监控指标的可视化。因此,在 Prometheus 中可以使用很多的基于图形表示的数据可视化工具来实现这个任务,比如 Grafana、PromDash 等。

下面是在 Grafana 中的可视化示例:

总结

本文介绍了如何使用 Docker 和 Prometheus 监控 Docker 容器应用程序,并通过 Docker Compose 进行了完整的配置和部署。此外,还涉及到了 Prometheus 配置文件和 cAdvisor 的相关配置信息。作为前端开发者,学习如何使用 Docker 和 Prometheus 监控应用程序将是提高开发和运维效率的重要一步。这种方法可以帮助我们更快地识别和解决问题,同时提高应用程序的可靠性、性能和可伸缩性。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65336d617d4982a6eb6f5beb


纠错
反馈