草庐IT

Zabbix6.0使用教程 (一)—zabbix新增功能介绍1

乐维社区 2023-03-28 原文

使用zabbix的小伙伴应该都有关注到目前zabbix的大版本已经更新到了6.0,后面乐乐将会对如何使用zabbix6.0做一个使用教程的系列,大家可以持续关注,这篇我们主要聊聊zabbix6.0新增的一些功能介绍。

一、Zabbix server 的高可用集群

新版本附带了针对 Zabbix server 的原生高可用解决方案。该解决方案由多个zabbix_server 实例或节点组成,其中一次只能有一个节点处于活动状态(工作),而其他节点处于待机状态,准备好在当前节点停止或故障时接管。

另请参阅:[高可用集群]

1.1 服务

对服务的监控进行了一些更新。服务监控提供了 Zabbix 中受监控基础设施的高级视图。

Zabbix 现在有一个新的服务菜单,包含四个菜单组件:

 

下面概述了对服务功能的其他主要改进。

1.2 基于标签的服务到问题的映射

以前版本中 [服务(services)] 的可用性取决于触发器及其状态。在新版本中,它被相应服务的基于标签的问题映射所取代。

服务的配置和查看合并在 Monitoring → Services 中,并且在 Configuration → Services 中不再存在用于服务配置的单独部分。

在服务配置中,不再存在硬依赖和软依赖。相反,一个服务可以有多个父服务。

状态计算和传播规则

有新的状态计算规则和灵活的附加规则,用于基于直接子服务的状态和权重计算父服务的状态。现在还可以设置灵活的规则来将服务状态传播到父服务。

1.3 服务权限

在 [用户角色] 级别实现了对服务的灵活权限。可以向所有、无或选定的服务授予读写或只读访问权限(基于名称或标签)。

根本原因分析:

一个新的根本原因(Root cause) 列显示了直接或间接影响服务状态的潜在问题。

 

如果您单击问题名称,您可以在Monitoring → Problems中查看有关它的更多详细信息。

1.4 服务状态变化告警

现在可以接收有关服务状态更改的自动警报,类似于有关触发器状态更改的警报。

添加了一种新的 [服务动作] 类型,类似于 Zabbix 中的其他动作。服务可能动作包括与服务相关的问题、恢复和更新动作的步骤。可以配置两种类型的动作:向指定的收件人发送消息和在 Zabbix server 上执行远程命令。与触发动作类似,服务动作支持问题 [升级]场景。

新的消息模板 Service、Service recovery 和 Service update 已添加到 [媒体类型] 中,应该定义为能够正确发送服务动作的通知。

1.5 服务克隆

可以支持克隆服务。克隆按钮已添加到服务的[配置表单]中。克隆服务时,会保留其父链接,而不会保留子链接。

二、主键

主键现在用于新安装中的所有表,包括历史表。

现有安装不会自动升级主键。在现有安装中 手动升级 历史表主键的说明适用于[MySQL/MariaDB]、[PostgreSQL]、[TimescaleDB v1] 和 [v2] 以及 [Oracle]。

三、新增小部件

新版本中添加了以下几个仪表板小部件。

3.1 Top 主机

Top hosts 小部件被添加到仪表板小部件中。此小部件旨在替换弃用的 数据概览 小部件。

Top hosts 小部件允许为数据概览创建自定义表格,这对用于容量规划的类似 Top N 类报告和条形进度报告很有用。

 

 

有关更多信息,请参阅 [Top 主机小部件]

3.2 监控项值

监控项值(Item value)小部件被添加到仪表盘小部件中。

这种类型的小部件对于突出显示单个监控项的值很有用。不同的视觉风格的显示成为可能:

 

有关详细信息,请参阅 [Item value 小部件]

四、宏

4.1 新增宏

新增用于触发器表达式调试和内部动作的宏。

表达式调试宏简化了触发器表达式的调试过程:

内部动作的宏包含监控项、LLD 规则或触发器变得不受支持的原因:

有关更多详细信息,请参阅[支持的宏]

4.2 由表达式宏替换的简单宏

[Zabbix 5.4]中引入了触发器和可计算监控项的新表达式语法。然而,旧的语法仍然在简单的宏中使用。在新版本中,简单宏的功能已转移到表达式宏中,并使用了新的表达式语法。有关更改的详细信息,请参见下面的比较:

Zabbix 6.0 | Zabbix 6.0 之前
{?avg(/host/key,1h)}新版本中的表达式宏示例。 | {host.avg(1h)}之前版本中的简单宏示例。

现有的简单宏将在升级过程中转换为表达式宏。表达式宏的范围与简单宏提供的范围相同。因此,表达式宏可用于:

4.3 不再支持位置宏

自 Zabbix 4.0 起已弃用的监控项名称 ($1, $2...$9) 中对位置宏的支持已被完全删除。

不再支持监控项名称中的用户宏

自 Zabbix 4.0 起已弃用的监控项名称(包括发现规则名称)中对用户宏的支持已被完全删除。

4.4 Prometheus 指标的批量处理

在预处理队列中引入了依赖监控项的批量处理,以提高检索 Prometheus 指标的性能。

有关详细信息,请参阅 [Prometheus 检查] for more details。

###4.5 Prometheus 模式的结果处理

预处理中的 Prometheus 模式步骤会产生匹配多行的结果。为了处理这种情况,Prometheus 模式预处理步骤中添加了一个新的结果处理 [参数],该参数允许通过引入 sum、min、max、avg 和 count 等函数来聚合潜在的多个匹配行的数据。

五、函数

Prometheus 直方图的函数

在 Zabbix 中收集 [Prometheus指标] 已经有一段时间了,但有些指标很难使用。具体来说,直方图类型的指标可以在 Zabbix 中呈现为具有相同键值名称但参数不同的多个监控项。然而,即使这些监控项在逻辑上相关并代表相同的数据,如果没有专门的功能,很难分析收集到的数据。为了弥补新版本中的这一功能空白,添加了 rate() 和 histogram_quantile() 函数,产生与 PromQL 对应的相同结果。

补充此功能的其他新增功能是bucket_rate_foreach() 和 bucket_percentile() 函数。有关更多信息,请参阅:

5.1 单调变化

现在可以使用新的 monoinc() 或 monodec() [历史函数] 检查监控项值的单调增加或减少。

5.2 更改计数

添加了一个新的 [历史函数]changecount() ,允许计算相邻值之间的更改次数。该函数支持三种不同的模式:计算所有变化,只减少,或者只增加。例如,它可用于跟踪用户数量的变化或系统正常运行时间的减少。

5.3 实体计数

添加了新的 [函数]来简化由 [foreach函数] 返回的特定主机、监控项或值的计数。

聚合函数:

Foreach 函数:

5.4 异常检测

Zabbix 5.2 引入了对基线监控有用的新趋势函数。但是,它们仍然需要定义相对阈值(例如,检查 2021 年 9 月的网络流量是否比 2020 年 9 月高出不到 2 倍)。存在难以定义此类阈值的用例。例如,一个新的但非常受欢迎的网站的网络流量可以在一年内自然增长很多倍,但增长速度是未知的。然而,无论自然流量增长如何,由于 DDOS 攻击导致的突然流量激增都必须生成警报。

异常检测算法正是这样做的——在其他值的上下文中查找看起来不正常的数据(异常值)。

添加了新的 [历史函数] trendstl(),它使用 '分解' 方法来计算异常率。它将单个时间序列拆分为其他三个序列:

 

 

[字符串函数] concat 允许连接两个以上的参数。它可用于以不同的组合组合字符串和值,或将两个或多个值相互附加。还支持数字数据类型。

由于新功能介绍篇幅较长,乐乐将会在zabbix新增功能介绍2为大家详细介绍其余新增功能,技术交流欢迎加入Q群617295020。

 
 
 

 

 

 

有关Zabbix6.0使用教程 (一)—zabbix新增功能介绍1的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  7. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  8. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  9. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  10. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

随机推荐