Skip to content

Prometheus监控系统部署应用实战

Prometheus 监控系统部署应用实战

简介

PrometheusGrafanaNode Exporter 三者结合,构建了一个强大的监控体系,专门用于 Linux 主机和容器的监控。这个体系能够实时收集、分析和可视化各种系统指标,帮助运维人员快速定位问题,确保系统的稳定性和性能。

Prometheus是这个监控体系的核心,负责收集和存储来自各个目标的指标数据

Node Exporter是一个部署在被监控服务器上的轻量级程序,它负责收集服务器的各种指标数据,如 CPU 使用率、内存占用、磁盘空间等。Node Exporter 将这些数据暴露为 Prometheus 可以抓取的 HTTP 端点,以便 Prometheus 能够定期拉取并存储这些数据。

Grafana则是一个开源的数据可视化工具,它可以从 Prometheus 等数据源中读取数据,并将其展示为各种图表和仪表盘。

应用场景

  1. 云原生和容器化环境监控:在云原生和容器化环境中,服务数量众多且动态变化,Prometheus 能够实时收集容器的各种指标数据,如 CPU 使用率、内存占用等。Grafana 将这些数据可视化,使得运维人员能够直观地了解容器的运行状态和性能。Node Exporter 部署在每个容器所在的节点上,负责收集节点的性能指标。

  2. 微服务架构监控:在微服务架构中,每个服务都是独立的,但服务之间又存在复杂的调用关系。Prometheus 能够监控每个服务的性能指标,并通过 Grafana 展示服务之间的调用关系和性能瓶颈。Node Exporter 则可以监控服务所在节点的状态。

  3. 基础设施监控PrometheusGrafanaNode Exporter 可以监控各种基础设施组件,如服务器、网络设备、数据库等。通过收集这些组件的性能指标和状态信息,运维人员可以及时了解基础设施的运行状况,并进行必要的优化和调整。

  4. 业务应用监控:除了基础设施外,这个监控体系还可以监控业务应用的关键指标,如用户访问量、响应时间、错误率等。通过 Grafana 的图表展示,业务团队可以直观地了解应用的运行状态,并根据数据进行业务决策。

  5. 告警和通知:基于 Prometheus 的告警规则和 Grafana 的告警通知功能,当系统出现异常情况或性能指标超过预设阈值时,运维人员可以及时收到告警通知,以便快速定位并处理问题。

性能监控体系的优点

PrometheusGrafanaNode Exporter 的监控体系适用于各种需要实时监控和管理的场景,无论是云原生环境、微服务架构还是传统的基础设施和业务应用,都可以通过这个体系实现高效、灵活的监控。

如何搭建基于 prometheus 的性能监控服务

  1. 创建prometheus服务,见前面章节,已有部署prometheus的完整教程。
  2. 创建并启动node_exporter服务
  • 下载镜像 docker pull prom/node-exporter
  • 生成容器 docker run -d --name node_exporter -p 9100:9100 prom/node-exporter
  • 检验容器是否启动成功
    • 输入docker ps判断容器是否被启动
    • 通过打开虚拟机浏览器:输入localhost:9100查看是否有数据

alt text

  1. 创建grafana服务
  • 下载镜像 docker pull grafana/grafana
  • 创建容器 docker run -d -p 3000:3000 --name=<docker name> -v <your local folder>:/var/lib/grafana grafana/grafana
  • 检验容器
    • 通过docker ps判断容器是否启动成功
    • 通过虚拟机上浏览器输入localhost:3000判断能进入grafana管理页面

alt text

4.配置grafana数据源

alt text alt text alt text alt text alt text alt text alt text alt text

常见指标

  1. CPU 使用率 (CPU Usage):反映 CPU 的繁忙程度,是评估系统性能的重要指标之一。
  2. 内存使用率 (Memory Usage):显示系统内存的使用情况,高内存使用率可能导致性能下降。
  3. 磁盘 I/O (Disk I/O):衡量磁盘读写操作的效率,对于存储密集型应用至关重要。
  4. 网络带宽 (Network Bandwidth):反映网络传输数据的能力,对于网络应用来说是一个关键指标。
  5. 响应时间 (Response Time):衡量系统或应用对请求的处理速度,直接影响用户体验。
  6. 并发连接数 (Concurrent Connections):表示同时与服务器建立连接的客户端数量,对于评估服务器负载很重要。
  7. 错误率 (Error Rate):记录系统或应用运行过程中发生的错误数量或比例,有助于识别并解决潜在问题。
  8. 吞吐量 (Throughput):衡量系统在单位时间内处理的事务数量或数据传输量,反映系统的处理能力。
  9. 资源利用率 (Resource Utilization):综合评估各种资源(如 CPU、内存、磁盘和网络)的使用情况,以判断系统是否得到有效利用。

总结

PrometheusGrafanaNode Exporter 的监控体系适用于各种需要实时监控和管理的场景,无论是云原生环境、微服务架构还是传统的基础设施和业务应用,都可以通过这个体系实现高效、灵活的监控。