在Zabbix大会·上海、深圳场,Zabbix创始人分享了以“着眼当下,放眼未来,Zabbix7.0新功能揭秘”为主题的演讲,强调Zabbix结合当下用户需求,对新增功能深思熟虑,透露目前7.0设计的重要功能。
以下为分享实录。
Zabbix创始人4年后来到中国非常激动,也诚挚邀请中国朋友到Zabbix欧洲总部参加Zabbix全球峰会!精彩行程如下:
通用的免费的开源监控解决方案
大家早上好,上次我来这里大概是4年前,所以我非常高兴回到舞台上介绍Zabbix的最新信息。Zabbix在许多不同的行业中都被应用,比如零售、农业、金融、银行、汽车、运输、航空航天等。
目前,财富500强公司中有100多家都使用Zabbix。这些都是世界上最大的企业,最大的银行,最大的零售网络,最大型的航空航天公司。我真的很高兴Zabbix是一个非常通用的解决方案,一个开源解决方案,免费的开源解决方案,适合所有行业的不同用例,所监控的对象不一定与IT基础架构相关。
我们有140位Zabbix的全职开发人员,以确保我们提供最好的产品,提供Zabbix这款免费开源产品能和建立可持续业务之间找到了一个很好的平衡,让我们整个团队成长,持续打造更好的产品。
Zabbix 6.4 最新版本的功能
现在我要慢慢开始讲技术部分。目前,我们有两个最新的主要版本。一个是6.0 LTS,LTS意思是长期支持。LTS版本支持5年。如果你更喜欢稳定性,也许不是最新的功能,但稳定,你可以选6.0LTS解决方案。而6.4是最新的主要版本。
现在,我们的团队正在开发7.0 LTS,我们希望7.0 LTS将很快发布。让我们来回顾一下最新的版本6.4。我只想提几个功能,6.4的这些功能非常重要。
一 Proxy升级几乎是0宕机时间
这是什么意思呢?6.4出来之前,如果您需要升级Zabbix server和proxy,必须在同一时间进行升级。proxy和server需要同时升级。
当然,在很多情况下,这确实很难实现,尤其是在高度分布式的环境中。我们所做的在6.4版本中的改进就是,让proxy数据收集方面具有某种向后兼容性。
当你想升级到7.0,当7.0推出的时候,proxy的版本肯定还是旧的,可能还是6.0,6.2的proxy仍将与7.0的server一起工作,我们会有更长的proxy升级窗口。您可以先升级server。然后,可能在几个小时、几天或几周内,您可以逐步升级所有proxy。我觉得这确实是一个很好的功能,可以显著减少不必要的停机时间。
二 原因和症状事件
例如,我们有一个交换机及其支持的网络。如果交换机停机了,这意味着我它会造成很多主机先后停机,但这只是因为这个交换机停机了。所以交换机停机是根本原因,其它都只是症状。
现在Zabbix可以将一些问题标记为症状。我们在异常清单里标注哪些是症状。症状可以在异常清单上被隐藏。可以将选定的异常标记为症状。这些症状事件就会被隐藏。它们会在根本原因异常下不再显示。对事件这样的分类非常重要。目前,这一切都是手动完成的。在未来。我们将对Zabbix进行扩展,以便基于拓扑信息或事件关联规则来进行自动分类。这是一个非常好的功能。
三 即时配置升级
这是什么意思?如果有一个更大的Zabbix设置,比如Zabbix server,由许多proxy组成的分布式环境,安装了许多agent,也许是城市级别或者国家级别。有时,当我们在Zabbix中进行一些配置更改时,需要花费一些时间将配置更改分发到proxy,再需要花费一些时间才能将配置更改分发到agent。在Zabbix 6.4版本我们引入了即时配置更新。
这意味着,一旦我们在Zabbix前端或API中进行了一些更改,该更改就会立即写入Zabbix数据库。然后很快,Zabbix server发现了这个更改,例如有关新主机或新监控项的信息,把它发送给proxy,再把它发给agent,很快就开始接收数据。这是一个很好的改进,特别是对于更大的Zabbix监控范围来说。在我们实际发布整个配置更改之前,可能需要一些时间,这确实影响了Zabbix的性能。
但现在我们只发送变化的增量,由变化创建一个新的指标,关于这个新指标的信息将很快分发到Zabbix的所有组件。
四 是Just in Time,JIT即时用户配置。
这是一个很好的功能,特别是对于更大的企业来说。它允许我们管理Zabbix以外的用户。例如,您可以将旧用户信息保存在LDAP或SAML或活动目录中。你根本没有在Zabbix中保存用户信息。我们为您的用户提供了集中目录。您不再需要在Zabbix中添加或维护用户。所有的用户权限基本上都是自动管理的。一旦新用户连接到Zabbix,对SAML进行授权,如果身份验证成功,那么用户会在Zabbix中自动创建。
用户的创建绝对是自动的,这确实大大增加了安全性。用户管理不在Zabbix中,而是在Zabbix之外的活动目录或LDAP中进行。
五 实时数据流
这是什么意思?例如,Zabbix收集大量信息、指标和事件数据。然后我们想把这些信息推送到其他目的地,可能是外部的Redis, Kafka,也许我们想用使用机器学习或人工智能工具来分析或度量数据或事件数据。
现在就能做到了。我们创建了连接器,指定数据类型,即要推送哪种信息,是指标数据还是事件数据。我们指定了端点URL,Zabbix将开始按照您的目标将数据实时推送到外部系统。您还可以使用标记过滤。您可能不想推送所有信息,而只想推送信息的子集,是可以对其进行过滤的。
六 模板版本化
现在我们可以指定模板相关供应商和版本的信息,以一种清晰的方式展示了我们正在运行的模板的版本以及是谁创建了这个模板。例如,我们可以在Git存储库中保存模板,然后使用一些CI/CD管道将配置更改推送到Zabbix,这是管理模板的好方法。
Zabbix7.0新功能揭秘
好的,终于来到主要话题。我们现在正在做的工作是Zabbix7.0。再说一次,7.0 LTS将会是Zabbix的下一个主要版本,我们要非常谨慎地考虑想要包含的功能。
当然,我们想把Zabbix的LTS版本做的尽可能稳定,因为我们需要对其提供5年支持。
那么7.0到底会带来什么新功能呢?我们自然是有很多优先事项要去完成的。我们一直致力于提高Zabbix的可用性。我们希望确保Zabbix真正易于使用。
⚫
⚫ 第二,复杂事件处理。
⚫
⚫
⚫
一 同步数据收集
我们正在引入的新功能具有重要意义。我们正在为(如Zabbix proxy和Zabbix server)所有进程进行同步数据收集。您可能知道Zabbix是一个多处理器进程应用程序。如果你想运行更多的轮询器,Zabbix将运行更多的进程,一个轮询器进程,另一个轮询器进程,一个捕捉器,另一个捕捉器,这么多不同的进程。我们正在从每一种多进程应用程序转向多线程应用程序。我们正在转向线程,正在转向同步数据收集。
这意味着什么?现在,如果您希望从两台主机并行收集数据,实际上需要执行两次轮询,一次轮询一个进程,另一次轮询则是另一个进程。这就是它的工作原理。但从7.0版本开始,只会有一个过程,一个轮询器将能够自己维护数千个或者十万个个连接器。它确实为我们提供了更好的垂直可扩展性。如果你有一个强大的硬件比如64 CPU,128内核或CPU, Zabbix可以通过我们系统中的CPU数量进行线性扩展。这确实加快了数据收集。在未来它还将根据负载在该Zabbix配置上启用自动缩放。如果你在系统上有较低的负载,一切工作正常;如果系统上的负载突然变得更高,Zabbix就会自动扩展,我们不需要更改任何配置参数、Zabbix server配置文件或Zabbix proxy配置文件。这将真正使Zabbix更容易维护。
二 性能优化
下一个性能改进是对非超级管理员进行更快的权限检查。也许你在运行的是更大的Zabbix安装,也许你会注意到,如果我是超级管理员,那么前端真的很快。如果我是一个普通用户,有时我们会看到Zabbix前端响应速度较慢。这是因为我们需要验证用户权限,必须验证用户岗位,这需要时间。
现在,我们找到了另一种更有效的方法。这就是为什么我们的目标是将Zabbix前端的响应时间至少提高10倍。另一个功能特点是proxy的内存数据收集。这是什么意思?这意味着此处有一些数据, 有一个proxy,通常proxy会在本地数据库中存储所有信息。所以proxy收集数据,将所有信息保存在本地数据库中。但在很多情况下,我们并不需要存储这些信息。我们其实是想把这些信息推送到Zabbix server上。因此,将数据保存在内存中是可能的。我们将为Zabbix proxy添加另一种模式,可以将数据保存在内存中。
如果内存正常,我们指定了最大内存量,如果超过这个最大内存量,信息仍将存储在数据库中。它为我们提供了更好的proxy性能,proxy的性能将提到很高的水平。同时,它也会减少IOPS、输入输出操作。它将切实降低运行proxy的成本,尤其是在云环境中,当我们需要为IOPS付费时,费用就会大幅降低。因此,我们获得了更好的性能而且Zabbix proxy的操作成本也要低得多。如果我们关闭proxy,内存中的所有信息都将写入数据库。所以我们不会丢失proxy收集的任何信息。
三 高级事件关联
不仅性能更好,事件关联也更先进。目前,Zabbix在涉及到指标的处理时是个很好的工具,Zabbix会收集监控指标数据和监控项值,进行预处理。我们可以用许多不同的方式进行预处理,比如JavaScript预处理或者正则表达式等等。但目前,我们还没有先进的方法来处理事件。我真的希望Zabbix也能成为用于事件管理的伟大工具。为了实现这一点,我们将引入用于复杂事件处理的高级事件关联。这其实是收集事件的能力,不仅收集监控指标的信息,还有来自外部系统事件。我们可以进行标准化、过滤、复制和丰富,也许可以根据旧事件生成新事件。所以这一切将会在Zabbix 7.0版本中出现。此外,还可以自动对异常进行分类,并查看根本原因在哪里,症状问题在哪里?
这种分类将根据事件关联规则自动发生,并可能基于外部来源,如拓扑信息或配置管理工具或资产管理工具,我们还可以根据来自外部系统的信息丰富事件数据。这些都是很快就会和大家见面的新功能。
四 Proxy负载平衡
然后设定我的所有主机都将由1号高可用性组的proxy来监控。Zabbix将自动为主机分配proxy, 我们不需要手动设置了。这组主机将由proxy 1监控, 这组代将由proxy 2,proxy3监控。这将是自动分配。如果其中一个proxy不可用,会发生什么情况?例如,proxy 1不可用,而让它负责监控这些主机的,这组有九台主机。所以现在Proxy 1是不可用的,这意味着这些主机无法被监控。好的,Zabbix会自动检测到这种情况,将在三种可用的proxy之间重新分配主机。它会让proxy 2来监控几台主机,另几台由proxy 3监控。有些将由proxy 4监控,有些将由proxy 2监控。
这意味着我们正在实现负载平衡,proxy越多,我们可以监控的主机也越多。
特别是在云自动伸缩组中,可以实现很好的自动化来根据负载运行更多或更少的proxy。此外,我们还获得了高可用性,因为实际上,如果proxy 1出现故障,也没有问题。Proxy 1一旦关闭,其负责的主机将自动被重新分配给所有其他proxy。这很棒,因为在数据收集过程中绝对不会有停机时间了。这个功能真的很好很强大。很快就会面世。我们所做的就是创建高可用性的proxy组,可以是我们想要的任何数目的组。
然后,我们指定该组主机将由这组高可用性proxy来监控。
我们以此可以实现proxy的自动重新分配、负载平衡和高可用性。所以我们实现了高可用性,还可以自动分配proxy,完全不需要手动操作,而且每台主机仍然可以被一台proxy监控。如果你想的话,我们仍然支持较旧的功能,仍然可以将主机分配给单个proxy, 或者我们可以将其分配给高可用的proxy组。
五 数据可视化
另一些改进是关于数据可视化。我们想确保Zabbix是一个很好的数据可视化工具。Zabbix将带来一些很好的功能,比如只需点击一下鼠标就可以在不同的仪表板之间切换,就可以从一个仪表板切换到另一个仪表板。此外,我们正在引入一种框架,一种开发新widget组件的稳定框架。
例如,如果您的公司中有开发人员,并且您希望有一些新的可视化方式用于Zabbix,您希望创建一个新的组件。这将是可能的,因为我们将有一个关于如何创建一个新的小部件的文档化的方法和框架。它将真正加快新组件的开发,并允许第三方开发人员为Zabbix创造一个新的组件。此外,我们将引入所谓的仪表盘内浏览功能。
例如,我们有一个单一的仪表盘,通常是相当静态的,有一个仪表板,上面显示了一些信息。这就是静态的仪表板。但从7.0版本开始,当您可以从一个仪表板切换,可以制作更多动态的仪表板。例如,您在仪表盘上有一个主机列表,对于所选主机有不同的图形。因此,您可以单击一台主机并查看该主机的图形。单击另一台主机。将显示这台主机的图形。实际上,它将创建出非常动态且灵活的仪表盘,让我们可以为Zabbix创建自定义的用户界面,具有所有浏览功能。这是一个非常强大的工具。这真的让我们可以为Zabbix创建一个自定义视图。
六 实时报告的新组件
我们将在7.0版本中引入新的组件,用于实时数据分析,数据的可视化,并进行报告,如饼图、圈图、图表、量规图表。它们将在接下来的7.0的alpha版本中实现。如果你感兴趣,你可以去看一看。我们正在引入用于容量规划的其他报告。
你可以查看是哪些在产生大多数事件,你就能清晰地看到排名。我们正在推出组件导航器,我之前提到过的成本导航,监控项导航,很快还会有更高级的组件。这就是我们现在正在开发的。
七 关于超时的集中管理
另一个重要的改进是关于超时的集中管理,看起来可能不是那么重要,但仍然非常有用。如果您正在收集不同的监控项信息的时候,我们会指定一个全局超时,如Zabbix配置文件中的3秒。
但有时我们需要把有些监控项延长到30秒,也许是1分钟。如果您有一些大型SNMP发现,或者正在接收大量的Json或XML数据。此时此刻,要做到这一点并不容易。我们在全局一级有一个配置,从Zabbix 7.0开始,可以在全局级别上指定超时,即全局超时,此外我们可以在proxy级别上覆盖它,还可以在监控项级别上覆盖它。这真的很重要。现在我们也可以在监控项级别上指定超时。如果已经知道我需要1分钟来收集特定监控项的数据,我就绝对可以设置1分钟。例如,这里是监控项配置表单,我可以指定任何超时,它是在Zabbix用户界面集中管理的,我们不需要在Zabbix proxy配置文件或Zabbix agent 配置文件里进行任何更改。这也使得Zabbix更容易使用,并且大大降低了Zabbix的维护成本。
八 实时数据摄取
另一项改进,是关于Zabbix的实时数据摄取。我之前提到了数据流,将数据流传输到外部系统。
但现在是关于从外部系统接收数据的能力。例如,我们有使用kafka, Rabbit MQ, Redis或者云服务。我们希望收到来自这些服务的信息,就可以创建连接器从外部系统接收数据,这是一种非常好的方法。因此,可以从不同的连接器获取数据到Zabbix,也可以将数据从Zabbix推送到其他工具。所以Zabbix成为了一个很好的整合工具。
Zabbix路线图是公开的。如果你想知道接下来会发生什么,我们正在做什么,不同的开发项目的状态如何?可以上官网查看。
例如,我们的开发状态有“New”新的, “In Design”设计中,这意味着我们在开发中设计此功能。“In Development”开发中意味着此功能已经在开发中,“Ready”准备就绪意思是准备好了,你可以尝试一下。所以如果你登录Zabbix.com/roadmap,你可以看到Zabbix软件开发的最新状态。是的,请上去看一看。上面还有有关于7.0, 7.2,7.4以及8.0的信息。
Zabbix 8.0展望
现在让我们看看未来,这是我最后一张幻灯片关于8.0。这是可能一年半后才会推出的版本,也许会在2年内推出。
⚫ 我们非常期待引入APM应用程序性能监控功能,最有可能与开放遥测数据进行集成。
⚫ 我们希望让Zabbix成为日志管理的强大工具。可以通过开放遥测技术收集跟踪信息,也可以记录信息。
⚫
⚫
立即体验Zabbix 7.0
Zabbix 7.0.0alpha3 已发布,立即体验
标签:主机,7.0,揭秘,Zabbix,Zabbix7.0,proxy,监控,我们 From: https://blog.51cto.com/u_15094852/8298866