prometheus 监控

电视直播网365 ⌚ 2025-08-18 09:44:16 👤 admin 👁️ 9760 ❤️ 804
prometheus 监控

prometheus 介绍

Prometheus 是一个开源的系统监控和警报工具,广泛用于监视和度量应用程序、服务和基础设施的性能和可用性。它最初由SoundCloud开发并开源,现在是一个独立的开源项目,由Cloud Native Computing Foundation(CNCF)托管。以下是关于 Prometheus 的一些主要特点和功能:

多维数据模型:Prometheus 使用多维数据模型来存储和查询监控数据。每个数据样本都包括时间戳和一组标签(labels),这允许用户对数据进行高度维度化的查询和分析。PromQL 查询语言:Prometheus 提供了强大的查询语言,称为 PromQL,用于执行各种复杂的数据查询、聚合和变换操作。PromQL 支持范围查询、集合运算、数学运算和聚合等功能。灵活的数据收集:Prometheus 支持多种数据收集方式,包括主动拉取(pull)和被动推送(push)模式。它可以通过各种数据源(如HTTP、Exposition格式的端点、JMX、Node Exporter等)获取监控数据。动态发现和自动注册:Prometheus 支持服务发现,可以自动发现和注册新的监控目标,特别适合在容器化环境中动态添加和移除应用程序和服务。警报和通知:Prometheus 具有内置的警报管理系统,允许用户定义和配置警报规则。当警报触发时,它可以通过各种渠道发送通知,如电子邮件、Slack、PagerDuty等。可扩展性:Prometheus 可以通过联邦(Federation)和远程写入功能轻松扩展,以支持多个 Prometheus 实例的集成和数据汇总。内置 Web UI:Prometheus 提供一个内置的Web界面,允许用户查询和可视化监控数据,查看警报规则以及检查目标的状态。生态系统和插件:Prometheus 生态系统非常丰富,包括各种导出器、Grafana仪表板、Alertmanager、Pushgateway 等工具,可以扩展和增强 Prometheus 的功能。云原生支持:Prometheus 适合在云原生环境中运行,特别是在Kubernetes集群中。它能够轻松地与云原生工具和平台集成。

Prometheus 被广泛用于监控微服务架构、容器化应用、云基础设施和传统的物理服务器。它是一个功能强大、灵活且可扩展的监控工具,广受社区欢迎,用于监视生产环境中的各种应用程序和服务。

prometheus 对比 zabbix

Prometheus 的优势:

云原生和容器友好:Prometheus 被设计为云原生和容器化环境的监控解决方案。它支持动态发现和监控Kubernetes和Docker等容器化环境中的应用程序和服务。强大的多维数据模型:Prometheus 使用标签(labels)来对监控数据进行多维度的分类和查询,这使得数据分析和告警配置更加灵活和强大。强大的查询语言:Prometheus Query Language(PromQL)非常适合对时间序列数据进行查询和分析,可以执行复杂的数据分析操作。开源和活跃的社区:Prometheus 是一个开源项目,拥有庞大的社区支持和活跃的开发。这意味着有大量的插件、导出器和仪表板可供使用。性能和扩展性:Prometheus 的性能非常出色,能够高效地处理大量的时间序列数据。它还支持联邦(Federation)和远程写入等功能,以支持多个 Prometheus 实例的集成和扩展。

Prometheus 的劣势:

长期存储:Prometheus 的默认存储系统不适合长期存储,因此通常需要与其他长期存储方案集成,如 Thanos 或 Cortex。复杂性:Prometheus 配置可能需要更多的手动设置,尤其是在大型环境中,这可能会导致一些复杂性。

Zabbix 的优势:

综合性:Zabbix 提供了全面的监控功能,包括主机性能监控、网络监控、应用程序监控、日志监控等。它是一个综合性的监控解决方案。可视化和仪表板:Zabbix 提供了丰富的仪表板和可视化工具,帮助用户更容易地分析监控数据。通知和告警:Zabbix 具有强大的通知和告警功能,可以通过多种渠道(如电子邮件、SMS、Slack等)通知管理员和运维人员。长期存储:Zabbix 具有内置的数据库用于长期存储监控数据,因此可以长期保留历史数据。

Zabbix 的劣势:

配置复杂性:Zabbix 的配置可能较为复杂,特别是在大型环境中,需要耗费较多的时间和精力来进行配置和维护。不太适合云原生环境:Zabbix 通常需要较多的手动配置来适应云原生和容器化环境,与容器编排平台(如Kubernetes)的集成可能需要额外的工作。

总的来说,Prometheus 更适合云原生、容器化环境,具有强大的多维数据模型和灵活的查询语言。Zabbix 则更适合那些需要全面监控功能、可视化和长期存储的传统监控需求。选择哪个系统通常会取决于您的具体需求、环境和技术栈。您也可以考虑将它们结合使用,以满足不同方面的监控需求。

prometheus 监控插件

还包括一些其他的插件未列出

官网插件列表

Node Exporter:

Node Exporter 用于监控主机级别的系统性能和资源利用情况,包括 CPU、内存、磁盘、网络、负载等。 Blackbox Exporter:

Blackbox Exporter 用于执行网络探测,监控网络服务的可用性和性能。它可以执行HTTP、TCP、ICMP等类型的探测。 JMX Exporter:

JMX Exporter 用于监控Java应用程序,通过JMX接口暴露Java应用程序内部的性能数据。 cAdvisor (Container Advisor):

cAdvisor 用于监控容器的性能和资源利用情况,包括Docker容器和Kubernetes容器。 PostgreSQL Exporter:

PostgreSQL Exporter 用于监控PostgreSQL数据库的性能和查询统计信息。 MySQL Exporter:

MySQL Exporter 用于监控MySQL数据库的性能和查询统计信息。 Redis Exporter:

Redis Exporter 用于监控Redis数据库的性能和统计信息。 Nginx Exporter:

Nginx Exporter 用于监控Nginx Web服务器的性能和请求统计信息。 Apache Exporter:

Apache Exporter 用于监控Apache HTTP服务器的性能和请求统计信息。 Prometheus MySQL Exporter:

这个Exporter用于监控Prometheus自身的性能和状态,包括Prometheus的TSDB状态和查询性能。

prometheus 服务配置解析

主配置文件

# 这是 Prometheus 配置文件示例

# 全局配置部分

global:

# 设置数据抓取的时间间隔为每15秒。默认为每1分钟。

scrape_interval: 15s

# 设置规则评估的时间间隔为每15秒。默认为每1分钟。

evaluation_interval: 15s

# 警报配置部分

alerting:

# 配置警报管理器的地址。警报管理器用于接收和处理警报信息。

alertmanagers:

- static_configs:

- targets:

# 这里应该配置警报管理器的地址和端口。当前示例中被注释掉,因此没有激活警报通知。

# 规则文件部分

rule_files:

# 在这里可以列出要加载的规则文件。每个规则文件定义了监控规则和警报规则。

# 例如:

# - "first_rules.yml"

# - "second_rules.yml"

# 数据抓取配置部分

scrape_configs:

- job_name: "prometheus"

# 这是一个抓取任务的名称,将作为标签添加到抓取的时间序列数据中。

static_configs:

- targets: ["192.168.75.149:9090"]

# 指定要抓取的目标的地址。在这个示例中,Prometheus自身是监控目标。

# 如果还需要添加其他配置,可以在下方编写

- job_name: "node_exporter"

static_configs:

- targets: ["192.168.75.149:9100"]

scrape_configs 配置块

# 定义一个抓取任务的名称,可以根据需要命名

- job_name: "example_job"

# 使用静态配置,指定抓取目标的地址

static_configs:

- targets: ["example-target:8080"]

# 在这里,您需要指定要监控的目标的地址和端口,例如 "example-target" 主机的端口 8080

# 指定要抓取的 metrics 路径,通常是监控数据的 HTTP 路径

metrics_path: "/custom_metrics"

# 这里定义了要从目标服务中获取监控数据的路径。默认情况下,Prometheus 使用 /metrics。

# 添加参数,可用于过滤或改变抓取的数据

params:

param1: ["value1", "value2"]

# 这些参数用于向抓取请求添加额外的参数。参数可以用于过滤或限定要获取的监控数据。

# 重新定义标签,将 __address__ 标签的值替换为 "example_instance"

relabel_configs:

- source_labels: [__address__]

target_label: instance

replacement: "example_instance"

# 在这里,对抓取的时间序列数据进行标签重命名或过滤。这个示例将 "__address__" 标签的值替换为 "example_instance"。

# 指定抓取时间间隔为每30秒

scrape_interval: 30s

# 这里设置了从目标服务获取数据的频率。每30秒,Prometheus将尝试从目标获取数据。

# 指定抓取任务的超时时间为10秒

scrape_timeout: 10s

# 这定义了每次抓取请求的最大持续时间。如果在10秒内无法获取数据,抓取任务将超时。

static_configs 配置块

static_configs:

- targets: ["example-target:8080"]

# 这是要监控的目标的地址和端口。在这个示例中,"example-target" 主机的端口 8080。

# 可选配置选项:

# labels:为抓取的时间序列数据添加自定义标签。这些标签可以用于数据的维度划分。

# 例如:

# labels:

# environment: "production"

# service: "web"

# metric_relabel_configs:允许您在抓取时修改或重命名指标名称。

# 例如:

# metric_relabel_configs:

# - source_labels: [__name__]

# target_label: new_metric_name

# replacement: "renamed_metric"

# relabel_configs:除了 metric_relabel_configs,您还可以使用 relabel_configs 来对抓取的数据的标签进行重命名、过滤或修改。

# 例如:

# relabel_configs:

# - source_labels: [instance]

# target_label: my_instance

# replacement: "renamed_instance"

# params:可用于过滤或改变抓取的数据的参数。

# 例如:

# params:

# param1: ["value1", "value2"]

告警规则配置

groups:

- name: 'disk-usage-alerts'

# 这是告警组的名称

rules:

- alert: DiskSpaceUsageHigh

# 这是告警规则的名称

expr: 100 - (node_filesystem_avail_bytes / node_filesystem_size_bytes * 100) > 50

# 告警表达式检查磁盘使用率是否超过50%

for: 5m

# 如果条件持续5分钟,则触发告警

labels:

severity: 'warning'

# 为告警添加标签,指定严重性为“警告”

annotations:

summary: '磁盘使用率过高 {{ $labels.instance }}'

# 摘要注释,描述告警的内容,包括实例名称

规则配置符号

数学操作符:

+:加法

-:减法

*:乘法

/:除法

%:取余

比较操作符:

==:等于

!=:不等于

>:大于

<:小于

>=:大于等于

<=:小于等于

逻辑操作符:

and:逻辑与

or:逻辑或

unless:逻辑非

括号:

( 和 ):用于分组表达式,改变运算的优先级。

内置函数:

PromQL还支持许多内置函数,如 sum()、avg()、min()、max() 等,以进行聚合和处理时间序列数据。

矢量选择器:

PromQL允许您选择时间序列数据,例如 up{job="api"} 选择了job标签为"api"的时间序列数据。

向量操作符:

PromQL提供一些用于处理时间序列向量的操作符,例如 offset, on, ignoring, group_left, group_right 等。

时间操作符:

offset:用于偏移时间序列数据。

time():用于获取当前时间戳。

timestamp():用于获取时间戳。

配置alertmanager

alertmanager.yml

# 定义邮件通知模板的路径,可以是模板文件的目录,支持通配符 *.tmpl

global:

resolve_timeout: 5m

smtp_from: 'xxxxx' # 发件⼈

smtp_smarthost: 'smtp.163.com:465' # 邮箱服务器的POP3/SMTP 主机配置 smtp.qq.com

smtp_auth_username: 'xxxxxxxxx' # ⽤⼾名

smtp_auth_password: 'xxxxxxxxxx' # 授权码

smtp_require_tls: false

templates:

- /opt/alertmanager/tmpl/*.tmpl

# 设置路由规则,指定如何分组和发送警报

route:

group_by: ['alertname'] # 根据警报名称进行分组,确保同一类型的警报被归为一组

group_wait: 30s # 当一个警报组内的警报发生后,等待 30 秒,以便将它们一起发送

group_interval: 5m # 每 5 分钟发送一次警报组

repeat_interval: 1h # 如果警报仍然处于活动状态,每小时重复发送一次

receiver: 'email-notifications' # 默认使用 'email-notifications' 接收者来发送警报通知

# 定义接收者配置,包括电子邮件通知设置

receivers:

- name: 'email-notifications' # 接收者名称,用于路由规则中的指定

email_configs:

- to: 'newrain_wang@163.com' # 收件人的电子邮件地址

from: 'newrain_wang@163.com' # 发件人的电子邮件地址

smarthost: 'smtp.163.com:25' # SMTP 服务器地址和端口

auth_username: 'newrain_wang@163.com' # SMTP 服务器的用户名

auth_password: 'UWYNCPQOBQFCDLIW' # SMTP 服务器的密码

html: '{{ template "email.html" . }}' # 使用指定的邮件模板

# 定义抑制规则,用于控制警报的触发和抑制

inhibit_rules:

- source_match:

severity: 'critical' # 匹配来自严重性为 'critical' 的警报

target_match:

severity: 'warning' # 匹配目标严重性为 'warning' 的警报

equal: ['alertname', 'dev', 'instance'] # 仅当警报名称、标签 'dev' 和 'instance' 均匹配时抑制

tmpl 模板

{{ define "email.html" }}

监控报警通知

{{ range $i, $alert := .Alerts }}

{{ end }}

告警状态 告警级别 告警类型 告警应用 告警主机 告警详情 触发阀值 告警时间
{{ .Status }} {{ $alert.Labels.severity }} {{ $alert.Labels.alertname }} {{ $alert.Annotations.summary }} {{ $alert.Labels.instance }} {{ $alert.Annotations.description }} {{ $alert.Annotations.value }} {{ $alert.StartsAt.Format "2006-01-02 15:04:05" }}

{{ end }}

配置node_exporter

node_exporter 指标详解

配置mysql_exporter

mysql_exporter

PQL 详解

PromQL 讲解

相关数据

关于世界杯球队,你可能不知道的一些外号

关于世界杯球队,你可能不知道的一些外号

每当我们看世界杯比赛,主持人在介绍一支球队时,总会提到他们的外号,现如今,球迷们耳熟能详的外号有桑巴军团巴西、三狮卷团英格兰、

07-01 电视直播网365
峯字的意思和解釋

峯字的意思和解釋

峯字的意思和解釋 峯 fēng ⼭部 共10畫 上下結構 U+5CEF CJK 基本漢字 部首 ⼭ 部 總筆畫 10 畫 部外筆畫 7 畫 結構 上下結構 筆順 2523541112 拚音 fēng

08-15 电视直播网365
你们的卡巴,全盘扫描要多长时间?

你们的卡巴,全盘扫描要多长时间?

手机版|杀毒软件|软件论坛| 卡饭论坛 Copyright © KaFan KaFan.cn All Rights Reserved. Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-7-22 03:47 , Processed in 0

07-21 mobile3656
2014年世界杯瑞典队

2014年世界杯瑞典队

所有文档均可在线免费浏览,需要的朋友请看好是否是自己需要的文档。所有资料来源于网络,仅供大家参考学习,版权归原作者。若有侵权,敬

07-27 天天365彩票软件官方下载3D
青春的解释及意思

青春的解释及意思

①春天:白日放歌须纵酒,青春作伴好还乡。 ②比喻年轻时期:青春年少|欲并老容羞白发,每看儿戏忆青春。 ③岁数(只用于年轻时):青春几

07-26 mobile3656
联通流量卡办理全攻略:2025年最新入口+避坑指南,一文读懂!

联通流量卡办理全攻略:2025年最新入口+避坑指南,一文读懂!

“流量不够用”“套餐太复杂”“办理渠道难选”……这些痛点是否让你对流量卡望而却步?别急!本文将用最接地气的方式,带你拆解联通流

07-22 天天365彩票软件官方下载3D