zabbix 集成 prometheus 数据

Posted 技术栈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix 集成 prometheus 数据相关的知识,希望对你有一定的参考价值。

一、概述

Zabbix和Prometheus都是开源监控系统,它们具有不同的特点和优势,因此很多人希望将它们集成在一起,以便充分利用它们的功能。以下是将Zabbix和Prometheus集成的一些步骤:

  1. 安装和配置Prometheus:在安装和配置Prometheus之前,需要先确定您要监控的目标。可以是主机、容器、服务等等。安装和配置Prometheus的过程可以参考其官方文档。
  2. 配置Prometheus exporter:Prometheus exporter是一个用于将应用程序指标暴露给Prometheus的代理程序。您需要配置exporter以将指标发送到Prometheus。例如,如果您要监控MySQL数据库,则可以使用mysqld_exporter。
  3. 配置Zabbix:安装并配置Zabbix服务器和代理程序。如果您已经使用Zabbix监控您的环境,则可以跳过此步骤。
  4. 安装和配置Zabbix插件:Zabbix插件是一个用于将Prometheus指标导入Zabbix的代理程序。您需要下载和安装Zabbix插件,并将其配置为将指标从Prometheus发送到Zabbix。
  5. 创建监控项:使用Zabbix创建监控项,以便显示从Prometheus收集的指标。在监控项中,您可以定义触发器、报警等等。
  6. 创建图形:使用Zabbix创建图形以显示从Prometheus收集的指标。

Zabbix 架构:

Prometheus 架构:

二、zabbix对Prometheus的支持分为两种

Zabbix对Prometheus的支持可以分为以下两种方式:

  1. Prometheus监控项:这种方式允许Zabbix直接从Prometheus获取监控指标,并将其显示在Zabbix监控仪表板中。您可以在Zabbix中创建Prometheus监控项,并定义触发器、报警等。这种方式需要在Zabbix中安装Prometheus exporter,以便将Prometheus指标暴露给Zabbix。
  2. 通过配置自动发现获取prometheus监控数据。

这两种方式都具有一定的优缺点,因此选择哪种方式取决于您的具体需求和偏好。使用Prometheus监控项可能更加简单和直接,但在性能和灵活性方面可能不如Zabbix插件。使用Zabbix插件可以在Zabbix中集中处理和管理所有监控指标,但需要更多的配置和管理工作。

三、两种方式配置

1)Prometheus 监控项

第一步:先准备Prometheus数据源(http://192.168.182.138:31672/metrics)

第二步:在zabbix页面添加主机、应用集及监控项

1、配置监控项

2、数据类型选择:浮点数

3、配置进程

参数框内输入: node_cpu_seconds_totalcpu="0",mode="system"

第一种方式配置完成,可以查看最新数据

2)Prometheus to json(通过配置自动发现获取prometheus监控数据)

1、添加监控项

2、选择数据类型(就是存储整个源数据):文本

3、添加自动发现规则

3、添加进程

  • 进程中的参数通过promeQL语法获取我们想要的数据:node_filesystem_free_bytesdevice=".*",fstype=".*",mountpoint=~".*"

4、录制宏

$.labels[\'device\']
$.labels[\'fstype\']
$[\'help\']
$[\'name\']
$.labels[\'mountpoint\']

5、新建【监控项原型】

名称:Free Bytes For #FILESYSTEM

键值:node_filesystem_free_bytes[#FILESYSTEM,#FSTYPE,#MOUNTPOINT]

6、添加【进程】

参数:node_filesystem_free_bytesdevice="#FILESYSTEM",fstype="#FSTYPE",mountpoint="#MOUNTPOINT"

第二种方式配置完成,可以查看最新数据

以上就是这两种方式的简单配置,这里只是针对部分指标采集,自己可以根据规律进行扩展,采集其它的指标数据~

这里只是简单的介绍了这两种集成方式,有任何疑问欢迎给我留言,后续会更新相关技术文章,也可关注我的公众号【大数据与云原生技术分享】加群或私信沟通~

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

来源 | Zabbix Product
译者 | 核子可乐
编辑 | 张婵
Zabbix 4.2 版本正式发布,新版本带来了很多功能,包括支持更多平台,支持 Prometheus 数据收集,利用 JavaScript 实现数据预处理等等。

4 月 2 日,Zabbix 正式发布了 Zabbix 4.2 版本。Zabbix 具备现代监控系统所应提供的一切功能,包括数据收集与处理、分布式监控、实时问题与异常检测、警报、升级、乃至可视化等等。

下面是 Zabbix4.2 版本的一些新特性。

新的官方支持平台

除了现有官方工具包与设备之外,Zabbix 4.2 版本还将适用于以下平台:

• 面向 RaspberryPi 的 Zabbix 工具包;
• 面向 SUSE Enterprise Linux Server 的 Zabbix 工具包;
• 面向 Mac OS/X 的 Zabbix 代理;
• 面向 MSI for Windows 的 Zabbix 代理;
• Zabbix Docker 镜像。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

感兴趣的朋友可以在 https://www.zabbix.com/download 查看完整的可用平台选项。

内置对 Prometheus 数据收集的支持

Zabbix 能够以多种不同方式(push/pull)从各类数据源收集数据,具体包括 JMX、SNMP、WMI、HTTP/HTTPS、RestAPI、XML Soap、SSH、Telnet、代理、脚本以及其它数据源。现在,Zabbix 开始支持 Prometheus 数据源。

现在,Zabbix 通过对 PromQL 语言原生的支持实现了对导出工具的集成。此外,依赖性指标的引入,使得 Zabbix 能够以高效方式收集大量 Prometheus 指标:我们使用单一 HTTP 调用获取所有数据,而后将其复用为对应的相关指标。

Zabbix 还能够将 Prometheus 数据转换为 JSON 格式,从而直接用于低级别发现(LLD)。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

高效的高频监控能力

我们都希望能尽快发现问题。但大多数情况下,这意味着我们必须以极为频繁的方式执行检查,最终有可能导致监控系统过载。那么我们该如何避免这种情况?非常简单——对预处理频率进行 throttling,从而帮助我们跳过递归值。

现在,我们能够以高频度方式收集数据,立即发现问题,且无需在 Zabbix 数据库当中保留过多历史数据。而在对 heartbeat 进行 throttling 后,我们可以获取漂亮的 graph。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

数据验证与错误处理

我们当然不希望收集到错误的数据。利用 Zabbix 4.2,大家可以通过内置的预处理规则解决这个问题。这些规则利用 JSONPath 或者 XMLPath 对正则表达式进行匹配,并根据结果实现数据验证。

现在,用户还能够从收集到的数据当中提取错误消息。对于来自外部 API 的错误而言,这种能力将大大简化操作流程。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

利用 JavaScript 实现数据预处理

在 Zabbix 4.2 当中,可以充分利用以 JavaScript 编写而成的用户自定义脚本来实现多种强大的功能。

对 JavaScript 的支持将大大提升用户的数据预处理自由度。事实上,用户现在可以将全部外的部脚本替换为 JavaScript 形式。

如此一来,用户将能够实现各类数据转换、聚合、筛选、算术以及逻辑运算等。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

通过 UI 测试预处理规则

随着预处理能力的快速演进,用户当然还需要一款能够验证复杂场景的工具。Zabbix 4.2 允许大家直接通过 Web UI 对这些预处理规则进行测试!

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

每秒处理数百万项指标

在 4.2 版本之前,全部预处理任务都由 Zabbix 服务器单独处理。Zabbix 4.2 的可扩展能力大大提升——一切预处理功能,都可以由代理负责执行。

将基于代理的预处理机制与 throttling 相结合,意味着大家将能够执行高频监控、每秒收集数百万个值,且完全不必担心 Zabbix 服务器发生过载。代理程序会对收集到的数据执行大量预处理操作,而服务器实际只接收其中的一小部分数据。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

轻松实现低级别发现

低级别发现(LLD)是一种非常有效的工具,用于自动发现各类资源(包括文件系统、进程、应用程序以及服务等),并自动创建与之相关的指标、触发器以及 graph。这款工具能够极大地节省用户地时间与精力,仅利用单一模板即可监控具有不同资源的目标设备。

Zabbix 4.2 支持基于任意 JSON 输入的处理方式,这反过来允许直接与外部 API 通信,并利用接收到的数据自动创建主机、指标与触发器。

与 JavaScript 的预处理功能相结合,Zabbix 4.2 现在得以创造出多种多样的模板选项,从而轻松应对云 API、应用程序 API、XML 内数据、JSON 或者其它格式下的外部数据源。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

支持 TimescaleDB

凭借着更高效的算法与面向性能的数据结构设计,TimescaleDB 的性能更加出色。

TimescaleDB 的另一大重要优势在于自动表分区,这将显著提高性能并(与 Zabbix 结合使用)对历史数据进行全自动管理。然而,必须承认的是,Zabbix 团队一直没有对此进行过任何严格的基准测试。此外,在生产环境下运行 TimescaleDB 所带来的具体性能提升,也一直难以量化。

因此就目前来讲,TimescaleDB 仍是一个快速发展且相当年轻的项目,请大家谨慎加以使用。

简化标签管理

在 Zabbix 4.2 版本之前,用户只能为各独立 trigger 设置标签。现在,随着对模板及主机标签的支持能力成为现实,Zabbix 的标签管理效率也将得到提升。

所有检测到的问题不仅会从 trigger 当中获取标签信息,同时亦能够从主机与相应的模板内获取标签信息,从而确保判断的正确性。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

更灵活的自动注册机制

Zabbix 4.2 自动注册选项使我们能够根据正则表达式过滤主机名称。在需要为各种主机集合创建不同的自动注册场景时,这项功能至关重要。另外,如果大家的设备采用非常复杂的命名约定,则可使用正则表达式进行匹配,从而提升管理效率。

控制主机名称以实现自动发现

另一项改进与自动发现期间的主机命名有关。Zabbix 4.2 允许用户将接收到的指标数据分配为主机名称与可见名称。

这项功能意义重大,能够帮助大家实现网络发现的高度自动化,且特别适合于使用 Zabbix 或者 SNMP 代理的场景。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

通过 Web UI 测试媒体类型

Zabbix 4.2 允许大家立足前端发送测试消息或者检查已经选定的警报方法,从而判断其是否能够如预期般正常运作。在对接入外部警报与帮助台系统的集成脚本进行检查时,这项功能可谓意义重大。

对 Zabbix 组件进行远程监控

Zabbix 4.2 引入了对 Zabbix 服务器与代理的内部性能与可用性指标的远程监控。不仅如此,这项功能还允许用户发现与 Zabbix 相关的问题并在组件过载情况下发布提醒,例如代理中的本地缓冲区内已经存储了大量数据。

电子邮件格式良好

Zabbix 4.2 在邮件消息当中支持 HTML 格式。这意味着大家不再局限于纯文本,而可以利用 HTML 及 CSS 的所有功能发布更好、更易于阅读的警报消息。

通过网络映射访问远程服务

现在,网络映射支持一组新的宏选项,用于创建指向外部系统的、由用户定义的 URL,允许大家立足服务台或者配置管理系统要开外部提交申报,或者仅使用一到两次鼠标点击即执行任何其它操作。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

将 LLD 规则作为依赖性指标

此项功能允许我们同时利用主指标的接收值作为数据收集与 LLD 规则。如果从 Prometheus 导出工具收集数据,则 Zabbix 将只执行一次 HTTP 查询,而查询结果将立即被用于所有相关指标标准(LLD 规则与指标值)。

映射动画

Zabbix 4.2 提供 GIF 动图支持功能,从而使映射中的问题更易于发现。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

从 HTTP 标头中提取数据

Web 监控使用户能够从 HTTP 标头当中提取数据。

凭借这一功能,我们现在可以利用从过程中某一步骤收取到的身价验证令牌为 Web 监控及外部 API 创建多步骤场景。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

Zabbix Sender 数据推送
触发器配置过滤器

现在,触发器页面配置迎来了一款出色的扩展过滤器,能够根据指定标准快速困难地选择对应的触发器。

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

在 graph 工具提示中显示确切时间

这是一项重要性不那么突出,但却效果拔群的改进。Zabbix 将能够在 graph 工具提示中显示时间戳。

其它重要改进

• 对仪表板中的小工具进行非破坏性尺寸调整与重新排序。
• item 原型的批量更新。
• DNS 相关检查已支持 IPv6(“net.dns”与“new.dns.record”)。
• 用于 VMware 事件日志检查“vmware.eventlog”的“skip”参数。
• 经过扩展的预处理错误消息,将中间步骤结果纳入其中。

Zabbix 使用手册当中提供一份完整清单,其中列举出扩展信息以及与 Zabbix 4.2 版本相关的开发、改进与最新功能:https://www.zabbix.com/documentation/4.2/manual/introduction/whatsnew420

原文链接:https://www.zabbix.com/whats_new_4_2


活动推荐

年前经历了几场面试,发现对于运维人才的招聘要求也增加了很多。那么如何判断哪些技术技能才是企业重点关注?运维工程师的价值和成长路径是什么?

这里整理了从 Kubernetes 到 Nginx、持续交付到运维体系管理的干货课程,带你解读从运维小工到专家的实战心法,高效解决 80% 的开发难题。(通过极客时间企业账号学习还有更多福利优惠~)

以上是关于zabbix 集成 prometheus 数据的主要内容,如果未能解决你的问题,请参考以下文章

zabbix集成prometheusnode_exporter数据

Zabbix 4.2 发布!支持Prometheus数据收集,可扩展性大大提升

监控工具 Prometheus 和 Zabbix 哪种更容易掌握?二者有何区别?

prometheus比zabbix好在哪点

prometheus比zabbix好在哪点

从Zabbix到Prometheus,同程艺龙数据库监控系统的实践