容器化部署Prometheus普罗米修斯 Monitor介绍1架构图2Prometheus Server介绍Prometheus Server 是整个监控系统的核心它负责从各个被监控的目标targets中以 pull拉取的方式收集时序数据。数据通常采用 HTTP 协议的 REST API 格式暴露Prometheus 通过配置抓取间隔scrape interval定期请求这些数据并将采集到的数据存储到本地时间序列数据库中。默认端口为9090。工作原理抓取数据Prometheus 根据配置文件中定义的目标地址周期性地向目标发送 HTTP 请求以采集指标数据。数据存储采集到的数据以时间序列的形式存储到本地存储中支持高效的时序数据存储和查询。查询语言提供强大的 PromQLPrometheus Query Language方便用户通过查询语言对数据进行实时分析、聚合和告警判断。告警规则用户可以在配置文件中定义告警规则当数据满足特定条件时Prometheus 会生成告警信息并发送到 Alertmanager。3NodeExporter介绍NodeExporter 是一个运行在被监控主机上的小型守护进程专门用于收集操作系统及硬件相关指标如 CPU 使用率、内存使用、磁盘 I/O、网络流量等。其默认暴露的端口为9100。工作原理数据导出NodeExporter 定期采集主机的各项硬件和系统指标并通过 HTTP 接口以预定格式暴露这些数据。无状态设计该组件主要负责数据采集不涉及数据存储和复杂计算。与 Prometheus 的配合Prometheus Server 按照预先配置的抓取规则通过 HTTP 请求获取 NodeExporter 导出的指标数据。4cAdvisor介绍cAdvisorContainer Advisor主要用于监控运行在主机上的容器。它可以实时收集容器的资源使用情况、性能指标以及运行状态等信息并通过 HTTP 接口提供这些数据。默认端口为8080。工作原理容器监控cAdvisor 定期收集每个容器的 CPU、内存、网络和磁盘等资源使用数据同时记录容器的生命周期信息。数据展示除了暴露数据接口供 Prometheus 抓取外cAdvisor 也提供一个基本的 Web UI 来直观展示容器的实时状态。与 Prometheus 的配合Prometheus Server 可根据配置抓取 cAdvisor 提供的接口数据从而将容器级别的监控数据纳入到整体监控系统中。5Grafana介绍Grafana 是一款功能强大的开源数据可视化和仪表盘展示工具。它并不直接负责数据采集而是通过连接到 Prometheus Server或其他数据源来查询数据并进行图形化展示。默认端口为3000。工作原理数据查询Grafana 利用 PromQL或其他查询语言从 Prometheus 中查询数据。可视化配置用户可以使用 Grafana 提供的各种图表、表格和仪表盘模板来自定义数据展示方式。实时监控Grafana 支持实时刷新数据为运维人员提供直观的监控界面从而及时了解系统运行状况。6Alertmanager介绍Alertmanager 负责管理和处理 Prometheus Server 发送过来的告警信息。它的主要任务是对告警进行去重、分组、抑制以及路由将经过处理的告警信息通过邮件、短信、IM 等方式发送给最终的接收人。工作原理告警接收当 Prometheus 根据告警规则检测到异常状态时会将告警信息发送到 Alertmanager。告警处理Alertmanager 对收到的告警信息进行分组根据告警标签、去重和抑制等处理避免相同问题产生大量重复告警。告警路由根据预先配置的路由规则将处理后的告警转发到不同的通知渠道如邮件、Slack、微信等确保相关人员能及时收到警报信息。7整体工作流程数据采集阶段Prometheus Server 根据配置定期向各个被监控目标发起 HTTP 抓取请求。NodeExporter 提供主机级的系统和硬件数据cAdvisor 提供容器级的运行状态和资源使用数据。数据存储与查询阶段采集到的数据被 Prometheus 存储在其时序数据库中。用户或 Grafana 可以使用 PromQL 对数据进行查询、聚合和分析。告警生成与处理阶段基于定义好的告警规则Prometheus 对采集到的数据进行监控和评估。当检测到异常时Prometheus 生成告警信息并发送到 Alertmanager。告警通知阶段Alertmanager 对告警信息进行分组、去重和路由然后将最终的告警通知发送给预先定义的接收人例如运维人员。数据展示阶段Grafana 通过与 Prometheus 连接实时查询监控数据并将数据以图表、仪表盘等形式展示出来方便用户直观地了解系统运行情况。2. 容器化部署Node-Exporter编写 Dockerfile 文件构建exporter镜像要求基于centos完成Node-Exporter服务的安装与配置,并设置服务开机自启。(需要的包在Technology_packageV1.0.iso 中 Monitor.tar.gz.1 基础镜像:centos:centos7.9.20092 使用二进制包 node_exporter-0.18.1.linux-amd64.tar.gz 安装node-exporter 服务3 声明端口:91004 设置服务开机自启请使用docker build命令进行构建镜像并使用 docker run命令运行该容器将 docker run -d --name exporter-test monitor-exporter:v1.0 sleep 5 docker exec exporter-test ps -aux docker rm -f exporter-test 命令的返回结果提交到答题框1基础环境准备[rootk8s-master ~]# tar -zxvf Monitor.tar.gz[rootk8s-master ~]# cd Monitor/[rootk8s-master ~]# for i in ls *.tar.gz; do tar xf $i; done[rootk8s-master Monitor]# docker load -i CentOS_7.9.2009.tarLoaded image: centos:centos7.9.20092编写Node启动脚本[rootk8s-master Monitor]# vim exporter.sh#!/bin/bash./node_exporter3编写Dockerfile文件[rootk8s-master Monitor]# vim Dockerfile-exporter