
“咱们的目标不是要分离Zabbix中不一样的功能组件,并且要使之水平可扩展以适应不一样的需求和负载,在新版本研发中,咱们正在朝着这个方向努力。”javascript
——Zabbix创始人&CEO Alexei Vladishevphp
Zabbix创始人&CEO Alexei Vladishev 连续5年参加Zabbix中国峰会!今年以视频形式给你们带来精彩分享——《Zabbix5.0新功能介绍和5.2简介》,同时回答了两个“犀利”的提问,来看看有多犀利~前端
互动问答
java
社区伙伴程序员
如今看来Zabbix既想作好监控和告警,同时也想作好可视化分析。你能把二者都作好吗?正则表达式
谢谢你的问题。咱们的目标不是要分离Zabbix中不一样的功能组件,并且要使之水平可扩展以适应不一样的需求和负载,在新版本研发中,咱们正在朝着这个方向努力。redis
Zabbix 5.2将引入API和UI(用户界面)的负载平衡功能。它将使在云和容器环境中启动这些组件成为可能,以实现高可用性和更高的性能。另外,若是您查看路线图,您可能注意到咱们已经计划在Zabbix 5.4中分离数据收集和数据分析组件,咱们但愿使它们更加独立。
算法
这仅仅是转换工做的开始,咱们但愿使大多数Zabbix组件独立,而且更加模块化。它有助于更好地扩展Zabbix,并以更快的速度实现新功能。sql
Alexei数据库
社区伙伴
在将来的版本中,Zabbix是否支持多服务器管理?这对于百万级的大型实例很重要。
是的,我但愿在Zabbix的将来版本中实现它。我认为第一个重要的阶段是使Zabbix仪表盘和问题视图可以显示来自各类Zabbix服务器的信息。我不知道具体何时能够实施,但它确定在咱们的长期路线图中。
此功能将有助于使Zabbix真正成为分布式监控解决方案,而不会出现单点故障。
Alexei
从这两个问题,能看出Zabbix既仰望星空又脚踏实地。着眼当下,Zabbix5.0具体有什么新功能,它如何帮助你的工做更便捷有效?以及5.2的路线图的简介。小Z整理了Alexei长达1小时的精选文字,便于伙伴们阅读,欢迎收藏起来慢慢看。
还可点击视频观看,在路上的伙伴能够听起来。

点击跳转至Bilibili,观看完整视频
演讲正文

1024,祝程序员比我还帅~
你们早上好,很高兴可以参加这次Zabbix峰会,这是咱们在中国的第五届峰会,很高兴能参加并向你们介绍Zabbix产品。首先,我要感谢咱们的赞助商们,没有赞助商们的鼎力支持,咱们也没法成功举办,感谢各位一直伴咱们同行。固然,我还要感谢此次会议的主办方,咱们的中国的合做伙伴——上海宏时数据系统有限公司,感谢团队为这次峰会所作的努力和付出。
01- 回顾Zabbix 4.2和4.4版本
今天我想和你们分享一些关于目前Zabbix最新版本——Zabbix 5.0的功能和介绍。在正式介绍Zabbix 5.0以前,我先带着你们简单回顾一下Zabbix 4.2和4.4版本。Zabbix 4.2于去年4月份正式发布,距今已有一年半的时间。Zabbix4.2版本中也发布了一系列很是好的功能,可以使运维人员、系统管理员和开发人员更轻松地实现监控须要。
借助数据节流的功能,Zabbix可实现高频监控,实现亚秒级的数据采集,利用这一特性可实现对某些核心业务系统的实时监控。
除此以外,Zabbix 4.2还支持http agent,支持使用http协议进行数据采集。这个功能使得Zabbix能够从不一样的API采集数据,如云API,不一样的应用和服务API等等。对于业务监控,这是很是重要的一个功能。
除此以外,还引入了加强的预处理功能,引入了数据格式校验和自定义脚本预处理,使用Javascript语言进行数据处理。借助Javascript可以使预处理变得很是灵活。只要你能想象到的逻辑和处理方式,使用Javascript脚本均可以在预处理实现。任何类型的数据(二进制数据、文本数据和数字数据)均可以经过多种不一样的方式进行转换,从而使其符合数据采集的须要。同时Zabbix Proxy可对监控指标进行预处理,可有效下降Zabbix Server的压力,以上就是Zabbix4.2版本的主要功能介绍。
半年以后,去年9月份,距今也有一年多的时间了,咱们正式发布了Zabbix 4.4,在4.2版本原有的功能以外,Zabbix 4.4又推出了不少新功能,让Zabbix使用变得更加灵活、更加易用。
同时还推出了Zabbix下一代Agent,Zabbix Agent2。Zabbix Agent2目前已经获得了官方支持,Zabbix Agent2的插件和调度器等特性,我稍后会进行详细介绍。Zabbix 4.4版本可以使用Webhook发送告警和通知,我我的很是喜欢这个功能,这个功能让咱们社区的用户、合做伙伴能够直接对接其余系统,加强Zabbix的集成性,而无需对Zabbix自己进行任何代码更改,这是一个颇有价值的功能。你只需根据须要集成的接口逻辑,使用Javascript语言编写,并将其包含添加到Zabbix之中便可实现告警和消息的对接。
Zabbix 4.4也支持时序数据库,后面我会作详细介绍。刚刚提到可经过Webhook进行告警或通知,Zabbix内置了一些简单的知识库,鼠标悬停,便可在Zabbix中看到触发器和指标的一些描述性介绍。咱们还发布了Zabbix模板创建标准,以文档的形式把模板建立最佳实践分享给你们。
02- Zabbix 5.0新功能
接下来,我将向你们介绍Zabbix 5.0。该版本于今年正式发布,这是一个LTS版本,LTS 版本意味着长期的支持,Zabbix 5.0有长达五年的支持期。Zabbix5.0是今年五月份正式发布的。
在正式介绍产品功能以前,我想给你们说一下咱们当前正努力实现的目标。能够先看一下Zabbix提供的集成列表,能够看到,目前Zabbix已经集成和提供了数百个集成方案,数百个模板用于监控不一样的服务、应用和网络设备,不一样的技术平台。咱们还支持不少系统的集成,让Zabbix和其余系统互联。因此,一方面咱们能够看到,咱们提供了不少监控的模板和插件,随着Zabbix agent2的引入,插件的开发难度也下降了,使用 Zabbix采集数据将变得更加简单和快速。另外一方面,基于Webhook功能集成了众多工单管理系统,故障管理系统,事件平台等等。这就是咱们想要实现的目标:让Zabbix更加灵活可扩,使其适用于不一样的公司、不一样的行业以及不一样的企业规模等各类业务场景。
Webhook,在Zabbix 5.0中开箱即用不少集成,其中包括工单系统如OTRS,Zendesk,Jira,Redmine,ServiceNow等等。除此以外,还支持多种告警通知方式,如Slack、Pushover、Victorops、PagerDuty、Matterost、Microsoft teams等等。一旦有新的集成测试经过,咱们都会在Zabbix官网上发布给用户,发布到官网以后,你们能够搜索感兴趣的集成插件,下载 XML文件,导入Zabbix便可使用。
再来看看Zabix Agent2,咱们已开发并内置了一些插件。已经能够利用现成的插件监控不少主流的应用和服务,好比redis,NGNIX,Windows,Memcached,Elasticsearch,HAproxy,postgreSQL,MySQL等,后续咱们将会集成更多的插件。这一切不能仅仅归功于Zabbix,还要感谢咱们的合做伙伴,咱们的用户和社区成员,感谢你们的付出。所以,若是你有好想法和建议,能够随时与社区交流分享。社区能够帮你改进和提高,也能够给你助力。
03- 成为Zabbix产品的贡献者
如今,咱们发布了一个简单的流程,让用户能够成为Zabbix产品的贡献者。若是你有一个好主意,或是你写了一个插件、开发了一个模板,那么你随时能够成为Zabbix的贡献者--只需签署一份协议,很是简单易懂的贡献者协议。你就能够提出一个Pull Request,而后Zabbix团队会审核。若是综合评估下来,以为你作的功能很好,能够被不少社区成员使用,被不少Zabbix用户使用,那么咱们可能会将其归入到Zabbix产品之中,你作的功能被归入Zabbix产品的好处就是这个功能将受到咱们的全面支持,任何使用Zabbix的用户均可以避免费使用这个功能。
04- Zabbix Agent 2
Zabbix是一个免费开源通用的企业级监控解决方案,每一个人,不管身在何处,均可以在咱们的网站下载,并用于任何场景。同时,咱们也一直在努力让Zabbix尽量兼容多个平台,在多个平台上可获取,让用户可以更容易的使用。咱们一直致力于增长兼容的操做系统列表,咱们为不一样的Linux发行版(例如redhat、Centos或Debian Ubuntu)等多个平台构建了相应的软件包。除此以外,咱们还提供了Docker镜像和其余容器技术的镜像包。而且咱们还提供了能够用于不一样虚拟化平台的镜像和系统镜像。咱们在许多公有云平台以及OpenStack和Redhat OpenShift中发布了Zabbix。简而言之,一方面咱们正在尽最大努力让Zabbix尽量开放。它是免费开源的软件。另外一方面,咱们也正在努力让尽量多的用户能够更便捷的使用到Zabbix。
还有,随着Zabbix 5.0的发布,Zabbix Agent2目前已有官方支持。什么是Zabbix Agent2,这是咱们官方发布的一个新的监控agent,适用于Linux和Windows的更增强大的agent,我相信将来会支持更多的平台。
与原来的Agent相比,agent2具备许多显著的优势。至少在当前,我认为咱们开发的Agent2是市场上最早进的监控agent之一。它支持各类类型的数据采集,它支持推拉方式,同时支持主动或被动检查。Agent2支持长链接和并发检查,使数据采集更高效,在数据库等监控应用场景尤其适用。Zagent Agent2为开箱即用,可直接替换现有Agent。Zabbix Agent2是一个模块化、高性能和可拓展的监控agent,可适用于各类不一样场景。在Zabbix 5.0中, Agent2支持监控数据的本地持久化存储。是什么意思呢?这就意味着若是Zabbix agent和Zabbix server或Zabbix proxy之间链接中断,Zabbix agent会将收集到的数据存储在内存缓存中。但若是中断时间过长,采集的数据可能会丢失,由于内存缓存空间是有限的,老的数据将会丢失。
但在Zabbix 5.0中,这种状况并不会出现,咱们能够经过调整Zabbix agent2的配置文件,启用持久缓冲区, 这样Zabbix agent采集的全部数据都会持久保存至本地磁盘。如今若是Zabbix agent和Zabbix server之间链接中断,全部采集数据会被保留,并存储在本地文件系统中。链接恢复后,好比当Zabbix server和agent正常链接时,采集了1h的数据,而后Zabbix server和agent连接断了数小时以后又恢复正常,从新启用agent后,agent会将全部数据发送回Zabbix server,以此来保证监控数据是绝对安全的,永不丢失。
05- 安全性
在Zabbix5.0中,咱们针对Zabbix的安全性作了不少工做,其中不乏一些重要的改进。这展现的是一个比较的小的改进点,关于Webhook,前面提到了咱们使用Webhook方式使Zabbix与外部系统进行集成和对接。好比告警系统、故障管理系统、事件管理系统和通知系统。这时Zabbix是须要和外部系统对接,但对于一些企业客户来说,可能会顾虑安全性,因此咱们如今支持http proxy,因此若是你有云服务等须要对接,可经过Zabbix的http proxy方式,以保证传输和数据的安全,这也是对安全性的一个很好的小改进。
另外一项改进是,如今能够在Zabbix agent端限制指标采集。你能够定义采集指标的白名单或黑名单,例如,若是你只想启用与MySQL相关的采集指标,可使用特别的参数-Allow Key,而后使用通配符,就像个人示例中的Allow Key=MySQL[*],这样全部带MySQL Key的指标均可以采集,除此以外其余指标就都会被拒绝。对于黑名单,只需配置不想要采集的监控指标Key便可。这样能够大大提升Zabbix agent端的安全性,提高你监控的服务的安全性。
咱们还引入了可配置的密码,提升了加密传输的安全性,对于TLS加密通讯,用户可灵活配置各类加密方式 。在对安全性有高要求的多业务场景下,这个功能很是有用。若是安全审计部门的人员告诉你在现行标准下你使用的密码太弱,Zabbix如今可支持根据须要,来配置加密方式。
除此以外,在Zabbix5.0中,支持数据库连接加密,如MySQL数据库和Postgres数据库连接,你须要在MySQL和Postgres中配置支持并接受安全链接,在这种状况下,Zabbix与MySQL和Postgres的链接都将被加密。一样还支持数据库链接的可配置证书加密,安全性将大幅度提高。
咱们提升了Zabbix数据库中用户密码存储方面的安全性。因为历史缘由,以前咱们使用MD五、哈希算法(Hash algorithms)对用户密码进行加密,而MD5目前广泛被认为是不安全的加密算法,这也是咱们为何改用Blowfish加密算法的缘由,现今Blowfish被认为是业界标准。这就是为何咱们不用MD5的缘由,就是简单的从一个不太安全的算法切换到更加安全的算法。用户登陆过程当中,Zabbix 5.0若是发现仍然使用MD5,Zabbix会根据您在登陆表单中提供的密码进行适配,可进行无缝升级和兼容。
在Zabbix 5.0中,咱们还引入了对保密宏的支持,我认为这是一个巨大的安全性改进,这意味着,如今咱们有了两种类型的宏。一个就是已经有的文本宏,如今咱们也支持保密文本宏了。因此若是宏被配置为秘密文本,type是秘密文本的话,基本就意味着该信息只支持写入。保密宏可配置为例如密码、令牌或身份验证ID等信息,在前端它是不可见的,会显示为星号,且没法被识别,会被隐藏。对于关注宏安全性的用户这是一个很重要的功能,是一个巨大的进步。固然,它能够用于隐藏你不但愿外部系统或Zabbix其余用户看到的信息。即便在告警消息和通知中调用加密宏,也是使用星号代替显示,没法获取保密宏的数据。
因此说能够看到,在Zabbix中,一切都变的更加安全。咱们在几乎全部的地方都使用远程链接的通讯加密,好比几乎Zabbix UI和API与数据库之间的全部通讯,Zabbix server、Zabbix server之间、Zabbix proxy、Zabbix server和Proxy和agent 之间都是用了TLS。咱们还可使用白名单和黑名单,以便仅容许agent进行特定的指标采集。在告警通知中咱们支持Webhook,而且Webhook也可使用HTTPS协议。在Zabbix中目前已经再也不有明文通讯。
在Zabbix 5.0中,咱们还为单点登陆引入了SAML身份验证。是什么意思呢?如今你能够进入Zabbix界面中的配置,选择身份验证方法,选择启用SAML便可配置使用。这意味着你能够将Zabbix链接到不一样的身份提供商,如Azure或可从公共云身份提供商,或来自不一样软件供应商的身份提供商,如Microsoft、联合服务或OpenAM等。在这种状况下,单点登陆具备很大优点,只需输入密码一次,使用单向或双向因子受权,便可免输入密码。
06- 易用性
Zabbix5.0的易用性在多处都作了提高。其中一个就是Zabbix界面的外观。5.0中作了哪些改变呢,来看一下,咱们优化了5.0前端界面布局,修改成宽屏布局了。如今大多数人都使用宽屏,呈现信息并以优化的方式呈现信息很是的重要,咱们作了哪些改动呢?顶层菜单移到了左侧,能够在三种不一样的模式下使用,你能够将其隐藏,也能够根据须要将其展开。顶部菜单栏原来占用的空间如今能够用于展现信息了,这就是新的界面。
对于仪表板,咱们引入了复制粘贴功能。如今若是你想将小部件从一个仪表板复制到同一仪表板或另外一个仪表板,只需单击该小部件,按复制,而后使用粘贴功能将其粘贴到相同或不一样的仪表板。很是简单,有助于更快地构建新仪表板和/或修改现有仪表板。
如今你还能够将Dashboard中的图形导出为PNG图像,很是简单,看到须要导出的图形,单击仪表板小部件,而后点击下载便可下载图形的PNG文件,这样就能够更方便的分享你的Dashboard。
如今还能够按严重性筛选一些仪表板小部件、问题小部件,以及按标签筛选问题主机,例如,若是我想要查看单个数据中心中发生的状况,我只需选择一个数据中心,并且我能够看到哪些服务可用,在实际使用中能够看到,我这个数据中心,可能有多少问题存在,这是另一个数据中心。这里有更详细的环境信息。因此说,经过标签过滤是一个很强大的功能,我能够筛选掉我不想看的问题。
07- UI模块化、预处理、监控设备状态及批量更新
UI模块化,这是另一个扩展Zabbix的方法。以前讲了Webhooks,咱们还有Zabbix agent插件,接下来为你们介绍UI模块,它能够帮助咱们灵活扩展Zabbix前端的功能。怎么作呢?
咱们能够开发本身的模块,而后在Zabbix前端建立一个新的菜单项。也能够会建立一些新的页面,好比要开发一个新的状态报告页面、一个新的Zabbix可视化特性、一个新页面,或者是扩展示有页面的功能,这都得益于Zabbix5.0中引入的UI模块化的功能。能够去看一看,以上功能在官网在线文档中都有详细的介绍和说明,你们能够去官网文档页面查看。下面以一个小模块的制做为例,介绍如何建立自定义UI模块,能够参考这个例子,基于此代码构建你本身的功能模块。具体看下怎么作,该模块的文件结构很是简单。有几个php文件,几个json文件,这些文件可以大体描述模型的内容、版本、建立者等信息,都在json文件,module.php是整个逻辑都构建在几个php文件中来表示逻辑的数据,这样就能够实现。所以,在Zabbix的前端建立一个新页面并不须要太多编码便可实现。
08- 监控设备状态总览
在Zabbix5.0中,咱们引入了一个新视图来查看咱们监控的全部设备和服务的状态列表,称为监控设备状态总览。到Zabbix页面,单击监控-主机,就能够在列表中看到全部设备及其属性的列表。如你所见,有设备的名称、接口的IP地址、标记和有关问题的信息,以及设备问题统计。此外,此页面还能够很是轻松地导航到与主机相关的资源,所以,若是你要转到此特定设备或服务的最新数据或问题,或转到screen查看图表,只需单击,单击一下,咱们就能够当即看到这台特定的主机有多少问题,有哪些问题,很是很是容易。监控设备的列表有高级的筛选选项,若是我全部的设备都有问题,我想看灾难问题或者高优先级的问题,经过筛选过滤,能够很容易的作到这一点。如你所见,也有按标签过滤的功能,这是一个很是实用的功能。如何筛选,如何操做不一样的设备列表,具体的能够看一下,我以为这是5.0里很是很是不错的一个功能。
09- 新预处理选项
预处理功能也作了改进,引入了称为替换的新预处理选项,听起来只是小小的改变,仅仅是用一个字符串替换另外一个字符串,实际使用过程当中,有很大做用。使用替换选项能够帮助咱们在文本及其数字表示之间建立数据映射。例如,咱们能够删除或替换不一样的字符和字符串。固然,咱们可使用正则表达式来实现一样的功能,不过我认为预处理更方便也更容易实现。
10- JSON路径的新运算符
另外一个小改进是JSON路径的新运算符,增长了波浪号。它的功能是返回匹配元素的属性名。例如,若是我想要获取consul服务列表,使用API链接到consul,要求获取consul服务列表,则会返回一个服务列表。而后咱们可使用这个运算符来提取服务名称。在个人例子中,结果是consul, content, login和mail,很是容易处理。
11- 对与同一问题相关的电子邮件进行分组
Zabbix5.0还有另外一个小的易用性改进,很小,可是很是实用,那就是对与同一问题相关的电子邮件进行分组。所以,在你的电子邮件客户端中,您能够看到按事件ID和媒体类型分组的全部电子邮件。例如,若是我收到一故障告警消息,个人服务ABC有问题,而后我收到一条恢复消息,问题已恢复,此这两条消息将被纳入同一组。所以,虽然这种改进至关小,但它确实很是有用。
12- 支持IPMI用户和密码的用户宏
此外,还有支持IPMI用户和密码的用户宏新功能,很是有助于维护安全相关的信息,也更加的规范,不要忘了这里也支持保密宏,保密标记在这里也是支持的。批量更新主机和模板的用户宏,能够很是有效地对用户标签进行各类操做。咱们只需选择主机数量或更接近的一组模板,而后就能够从一组主机或一组模板添加、更新、删除或删除全部宏和用户宏。这个很是棒。还有什么?
13- 媒介消息模板
媒介消息模板,也是最新的功能之一,能够帮助咱们更高效的配置Zabbix告警,来看看怎么操做的。从Zabbix 5.0开始,在媒介类型的配置里,例如本例中的电子邮件媒介类型,将会有一个名为message templates的新选项卡。你能够为问题通知、问题恢复通知或问题更新通知、发现通知等每种消息类型定义一个消息模板。所以,如今你能够在媒体类型级别执行操做,这基本上意味着,能够看到这些消息类型,当你定义消息模板时,能够像咱们一般所作的那样定义主题,定义消息自己。以前,咱们只能在操做级别维护这些模板。若是监控大型环境,有不少用户,咱们可能会定义不少不少操做,可能会有数百数千个不一样的操做。以标准方式维护模板和全部消息将是一场噩梦。对于咱们想要发送给用户的消息类型,很难强制执行一些标准,有了媒介消息模板,这就很容易实现。
在Zabbix5.0中,增长了一个新的命令行程序,来调试Javascript脚本。在Zabbix中JavaScript语言如今用的不少了,能够用来作预处理,也能够用来建立Webhook。这个新工具能够帮助咱们测试咱们的Webhook脚本,或预处理脚本,也能够用来调试数据,了解预处理的复杂流程。命令行可执行程序的名称为Zabbix_js,若是咱们执行Zabbix_js help,你能够看到命令的帮助选项,能够指定js脚本的名称,并指定输入的参数及输入的文件。这里为你们举例,例如我有一个名为test.js的JavaScript文件。test.js只是一行js代码,内容为返回输入的对数值。在这种状况下,我能够进行很简单的测试,-p 指定输入的数据为10,便可看处处理的结果。第二个例子,在不少状况下,js脚本执行可能须要很长的时间,输入参数也可能须要不少行,固然也能够是一个1M左右的文件,为何不呢?这种状况下,能够指定从文件读取输入数据。在个人示例中,个人输入为一个my.json文件。在第三个示例中,我引入了Zabbix.log函数,来简化个人脚本的故障排除和调试,很是的简单易用。只需调用Zabbix.log函数,并指定日志级别,指定要做为输出查看的值,就能够将其用于故障排除。

恭喜你,已经看了一半啦,继续加油!
14- 触发器对文本操做的支持
5.0版本引入了触发器对文本操做的支持,因此如今触发器支持文本操做,这是个很好很好的消息!这使得以前触发器表达式不支持的许多用例如今能够支持了。让我来举几个典型的例子,来讲明何时会使用到文本触发器。有时候,咱们但愿验证软件版本是否与预期的软件版本相匹配,在许多状况下,软件版本是文本字符串。或者在日志文件监控时,咱们须要将一项的最新值与另外一项的最新值进行比较。也可能但愿将先前的值与当前的值进行比较,文本值,咱们如今指的是文本值。对于文本值可支持等于或不等于的逻辑运算,让我再来举几个例子。
正如你在第一个示例中看到的,咱们在比较期间收到的最后一个值是文本常量,如今咱们也支持文本常量了,只须要用双引号引发来就能够用来判断。如检查版本5.0.0是否等于5.0,或者是否等于定义为用户宏的Zabbix版本,能够这样来实现。因而可知将宏做为常量配置,是一种很是好的用法。咱们还能够将上一个值与前一个值进行比较,看看如今的值是否不一样。例如,有人安装了新版本的软件,咱们想要检测咱们是否有新版本的软件,校验和是否已更改或相似的状况。或者咱们也能够比较不一样项的值。例如,咱们再须要确保不一样的服务器和不一样的群集节点运行的软件版本彻底相同,在这种状况下,咱们可使用这样的触发器。
15-自动发现
自动发现,这也是多个更新中的一项,在Zabbix 5.0引入了对JMX发现的支持,对JMX计数器的发现,咱们有两个新的检查,jmx.get[]和jmx.discovery[]。这一功能可以返回JMX检查的json数组,咱们能够将其用于数据收集,或数据收集和低级发现。还有什么?咱们还引入了Windows性能计数器的发现,又是一个很是有用的功能。
例如,若是你想要了解有多少个CPU,或者在Windows注册表中有多少其余资源,那么就可使用发现性能计数器。更好的ODBC监控,在Zabbix5.0以前,为了进行ODBC监控,咱们必须在odbc.ini文件中定义和配置大量参数,并且这都是须要在Zabbix外部进行独立的文件配置,并且配置是比较麻烦的。若是配置发生变动,须要更改2个地方,一个是ODBC配置文件,另一个是监控指标配置。如今关于ODBC的配置,只须要在监控指标上配置相应的属性便可。好比定义驱动程序名称、服务器IP地址、密码、用户名等,ODBC链接所需的全部内容均可以在监控指标上配置实现,因此对于那些使用Zabbix,经过ODBC驱动程序进行数据库监控的人来讲,这是一个很是很是好的消息。
还有ipmi.get,这是新增长的IPMI传感器发现,与jmx发现的实现很是类似,它会以json格式返回IPMI传感器列表,能够将其用于自动发现和数据收集。
16- 监控指标测试
另外一个很好的功能就是能够在UI界面进行监控指标的测试。建立了一个新的监控采集项以后,具体怎么操做呢?配置参数和输入选项以后,如何判断这些指标是否配置正确,而且采集正常的呢?从Zabbix 5.0开始,咱们有一个很好的解决方案,在前端界面会有一个测试的按钮。只要点击这个测试按钮,Zabbix会当即显示从agent、SNMP agent或jmx agent采集到的内容,以及全部预处理步骤的结果,而且还会显示每一个步骤以后的数据结果,以及最后采集的数据是怎样的,这是一个很是好的功能。
在出现问题的时候,好比因地址配置错误致使主机不可用,或agent不可用,就能够收到直观的告警消息。不要忘记咱们也能够对媒介类型进行测试,在4.2或4.4中已经引入了这个功能,在媒介类型列表,点击测试按钮便可,就能够看到你的 媒介类型、集成的告警系统或者信息系统是否正常工做。
此外咱们还引入了对原型的用户宏支持,在某些状况下,这个功能颇有用。例如,当咱们在进行低级别发现时,咱们须要收到一些值,这些值可用于这些宏,我认为这是一个很是很是好的功能,特别是对于Zabbix的高级用户。
除此以外,咱们还引入了对Float 64数据类型的支持。事实上,咱们这样作的缘由有不少。首先,Float 64容许咱们保留更大的数字。第二个缘由是Float64数据类型的兼容性,你能够在不一样的数据库和不一样的系统中找到这些数据类型。例如 Prometheus也使用Float 64数据类型,所以它们如今能够兼容。为了使用新的数据类型,若是要从之前版本的Zabbix升级,须要为MySQL、Postgres和Oracle执行double.sql文件,这样你的数据库结构将升级,而且能够利用Float64的优点。
17- 可扩展性提高
此外,咱们还有大量的可扩展性方面的改进,以确保Zabbix能够支持扩展处处理数百万台设备。这些变化包括咱们去掉了下拉菜单,下拉菜单是一个UI元素,可是可扩展性不强,特别是对于那些想要显示几百台、几千台甚至几万台设备的人来讲,这是不能实现的。所以,咱们采用了一个高性能的开源工具来实现。此外,咱们有一个硬编码的最大尺寸概览网格。咱们还对监控主机的图形进行了从新设计,如引入了多选图形、显示降低曲线图、一些限制等。咱们还引入了尽量多的分页功能,因此如今全部页面、全部视图页都支持分页。因此如今若是你有数十万设备,Zabbix UI依然能很好的工做。
18- 时序数据库
能够经过压缩数据来提升效率。这是什么呢?你们已经知道Zabbix目前支持时序数据库。时序数据库实际是在PostgreSQL数据库的基础上加上一个扩展插件,TimescaleDB在PostgreSQL上安装时序数据库扩展插件便可实现。时序数据库有诸多优势,好比实现了自动分区。这个很是好,这样的话使用Zabbix和TimescaleDB的组合,TimescaleDB会自动管理与分区相关的全部事情,不须要任何人为干预和配置,全部与数据分区相关的操做都由数据库自动管理和控制,所有自动。时序数据库的另外一个巨大优点,是它是面向高性能场景的数据库。在某种意义上,不管什么数据库的大小,它均可以提供相同级别的性能。假设您有一个100G的数据库,随着数据库的大小的增加,大小到了 1TB,所能提供的性能是同样的。TimescaleDB是一个很是好的时序数据库,可扩展性很强。
19- 数据压缩功能
如今咱们还引入了对数据压缩功能的支持。这是一个很是好的消息。这意味着能够对存储的数据进行压缩。你只须要指定须要压缩的数据,在个人例子里,压缩的数据是储存时间超过7天的数据,这样超过7天的数据、趋势数据和历史数据都会被压缩。
这一功能很是不错。有什么意义呢?这意味着数据将占用更少的磁盘空间。咱们作了一些测试,在生产环境中,使用Zabbix 4.x版本的一个用户,数据为355GB。但在切换到时序数据库并启用数据压缩功能后,数据大小减小到43GB。如你所见,压缩比约为5倍多,是很是不错的一个功能。
20- 将SNMP设置项移动到主机接口配置项
除此以外,咱们在Zabbix5.0中实现的另外一个改进是将SNMP设置项移动到主机接口配置项。目前,对于SNMP类型,一个SNMP主机接口只有一种SNMP类型,而不是SNMP版本一、SNMP版本二、SNMP 版本3几个版本;对于监控指标类型,也只有一种项类型,全部SNMP相关参数都移到了Zabbix接口。SNMP版本或上下文名称、安全名称、安全级别等均可以在主机接口级别设置。那咱们为何要这么作呢?首先,这固然能够帮助简化模板配置,这样只需一个模板便可,而不是配置三个不一样SNMP版本的模板。另外一个好处就是从一个版本的SNMP切换到另外一个版本要容易得多。对于那些使用Zabbix进行网络监控,或网络设备监控的人而言,这是一个很是有用的功能。
21- proxy可用性
还有什么?可用性监控将关注proxy可用性,这是一个巨大的变化。让我向你们介绍一下具体的细节,假设咱们想要监视主机A、主机B和主机C的可用性,它们是经过Zabbix proxy监控。如今先让咱们了解Zabbix proxy如何检查主机是否不可用,可使用nodata函数,例如,若是一分钟没有收到数据,咱们就认为主机不可用,出现了问题。可是也可能有这种场景,因为咱们正在进行Zabbix proxy升级,或者Zabbix proxy因某些网络问题致使不可用。proxy不可用以后,咱们会收到什么告警消息呢?在Zabbix 4.x中,咱们将收到四条不一样的消息,主机a、主机b、主机c不可用,proxy不可用。在版本5.0中,状况大不相同,由于5.0版更加智能,知道主机A、B和C是经过Zabbix proxy代理监控的,如今没法肯定被proxy监控的主机是否不可用,但能够100%肯定该Zabbix proxy不可用。所以,Zabbix5.0会生成Zabbix proxy不可用的一条消息,对于其余主机主机的状态是没法判断的。
若是你想要监控主机可用性,咱们仍然可使用nodata函数。如今默认状况下,它反映Zabbix proxy可用性。可是,若是您想要使用nodata函数,但你不关心是Zabbix proxy不可用仍是host不可用。无论发生什么,你都但愿接收警报。那么你可使用strict选项。在这种状况下,Zabbix在使用nodata函数时判断主机可用性时不会考虑Zabbix proxy的状态。
22 -全局管理低级别发现规则
Zabbix 5.0容许咱们全局管理低级别发现规则。是什么意思呢?低级别发现规则列表,如今支持不一样选项的过滤,例如状态,例如本例中的主机组选择、主机选择等。若是你想要在一个地方看到哪些低级别发现规则不受支持,或者有一些问题,或者被禁用,咱们可使用这些过滤选项,这确实有助于咱们清楚地了解系统的总体运行状况。
23- 支持取消确认事件的功能
Zabbix5.0支持取消确认事件的功能。你们知道事件是能够确认的,可是如今能够取消确认。那么它是如何工做的呢?在问题更新页面弹出窗口,能够看到不少选项,能够更改严重性、添加一些注释,或确认问题,若是问题已确认,如今也能够取消确认。咱们为何须要这个功能?我认为有不少场景是须要的。首先,很明显,能够修复问题,因为咱们操做失误,或者因为咱们由于某些缘由确认了问题,如今咱们能够取消确认。或者,咱们可使用这个功能来建立一个可能更好、更复杂的工做流,进行对应的处理。
24- 对低级别发现规则覆盖的支持
Zabbix 5.0引入了对低级别发现规则覆盖的支持。这是一个很是强大的功能。若是你使用低级别发现规则,必定要看一看,这个功能会大大简化你的配置。具体如何操做呢?举个简单的例子,假设我发现了不一样的文件系统,可是我想以独立配置发现Oracle文件系统。那我该怎么作?首先须要建立一个覆盖规则,并指定文件系统是oradata。文件系统将Oracle数据库保存在数据文件系统上,那么在本例中,我但愿与此先关的触发器具备不一样的问题严重级别,而不是默认状况下的警告严重级别,而是将与Oracle文件系统相关的问题配置为较高严重级别。基本上是这个原理,它能覆盖监控项和触发器的特定属性。
再举一个例子,假设我不想发现临时文件系统。首先我须要定义一个筛选器,文件系统与tmp匹配。而后,若是它与tmp匹配,那么我设置Zabbix不发现那个项原型。只须要在原型操做选项里,自动发现,设置为否。这种状况下,则不会建立项,也不会发现它们。但正如你所看到的,咱们也能够更改不一样的选项,例如,能够设置特殊的更新间隔,或者设置特殊的历史存储选项,或趋势存储选项,建立默认禁用或启用。实际上有不少不一样的操做方式,容许咱们在多个场景中使用此功能。因此若是发现选项设置为否,则这个项不会被建立。
25- 其余小功能更新
好了,这就是一些主要的功能,在5.0中也引入了大量的小功能更新,这里我给你们快速的过一下。咱们增长了新的宏,如今咱们在告警通知中支持新的宏{HOST.ID},能够帮助咱们构建URL,指向Zabbix的主机地址。还支持新的宏{EVENT.TAGSJSON},支持宏事件持续时间。我很是喜欢这个功能。举个例子,一个简单的例子,恢复主题中可使用这个宏来显示事件持续时间。在个人示例中,我将收到一条消息,“设备宕机已解决,故障持续5分钟”。能够看到问题已经获得解决,那么我能够清楚地知道停机时间是何时,宕机持续了5分钟。
还有不少其余的改进,我将介绍其中的一些,javascript中支持base64编码处理。在某些场景下,这可能会颇有用。还增长了一个新的API来访问审计日志,支持监控Zabbix组件的版本。支持SNMP缓存,这对于那些使用SNMP v3监控的人很是有好处。增长了监控指标key的长度,以前是255个字符,如今已经扩展到2048个字节。
此外,咱们还删除了一些遗留问题。例如,再也不支持IE浏览器,我认为这对咱们全部人都有好处,特别是对Zabbix开发人员来讲,由于他们再也不须要支持IE11了。咱们还放弃了对IBM DB2数据库的支持,所以不能再使用DB2做为Zabbix的后端数据库了。php如今支持的最低版本是7.2,因此若是你要从之前的Zabbix版本升级到Zabbix 5.0,请确保您的系统运行的是php版本7.2或更高版本。
升级依旧很是简单,只需安装新的服务器二进制文件、代理二进制文件和前端文件便可完成。但历史数据升级到Float64可能须要一些时间,不过这只是一个可选项。正如我在前面提到的,须要提早升级php到7.2版本,数据库无需作任何升级。同时Zabbix 5.0再也不支持IBM DB2数据库,更多细节能够查看官方文档的版本发布说明。
最后- Zabbix 5.2简介

如今,我想给你们简单介绍一下Zabbix 5.2的新功能。Zabbix 5.2即将发布,咱们计划于今年10月中旬正式发布Zabbix 5.2。不过具体时间要取决于实际的进展,正常来讲的话,目前距离5.2的发布还有大约两三周的时间,所以我会作一个很是很是简短的概述,让你们知道一下版本5.2中会有什么样的功能。
首先我须要再次强调的是,产品路线图已经在Zabbix官网发布了,是的,你能够访问zabbix.com来获取相关信息,在路线图页面能够看到Zabbix 5.二、5.4和6.0的新功能的描述,其中,版本5.2的说明中包含至关详细的信息,所以你能够看到5.2中可能会实现哪些功能,用户很快就能用到哪些功能。
首先能够看到Zabbix 5.2支持智能问题异常检测,事实上,这是咱们好久之前就已经开始作的功能。咱们将这一新功能称为Zabbix Insight,它确实有助于Zabbix以一种智能的方式来比较当前状况。例如,对比上个月的状况,和一个月前的状况。是的,可以生成像平均交易数量这样的消息,好比,9月份交易增长了24%,这是一个很是强大的功能。
还有Zabbix UI和API将支持负载均衡,这很是很是好,特别是对于那些在Kubernetes或Docker Swarm环境中部署Zabbix的用户。数据、收集和触发器处理的清晰分离,我不肯定可否在5.2中作实现,但它可能会出如今Zabbix 5.4版本中。这是为了更好的提升性能和横向可扩展性。开箱便可支持监控IoT设备,支持MQTT协议和Modbus协议。
更安全的监控,咱们在Zabbix 5.0中已经投入了大量精力来提高Zabbix的安全性,5.2中咱们将引入两个有趣的功能。一个是对Zabbix用户角色的升级,能够更精细地管理Zabbix用户对Zabbix UI、API等的访问权限。此外,Zabix5.2还将支持在外部数据库中存储一些保密信息,这也是为了解决安全性的问题。好比保密宏、用户密码、token、api key都会存储到外部安全的数据库中,而再也不存储在Zabbix数据库中。我也很是喜欢这个功能。
另外将会有许多与可用性和用户体验相关的新功能。首先是在一些页面,好比监控问题,或者主机维护等页面添加筛选器,以便更好的筛选主机。另外就是会支持用户配置不一样时区,这个功能对于一些跨国公司或企业会特别有用。模版的版本,我但愿在新版中能实现这个功能,但说实在的,我目前还不可以肯定。
对于全部的导入和导出操做,咱们将从JSON和XML格式切换到YAML,并将其做为默认格式。因此,若是你想要共享模板,模版将被导出为YAML,而不是XML。所以,从Zabbix5.2开始,您能够更轻松地对其进行编辑。Zabbix5.2还有一些其余的改进,但我在这里就不做详细介绍了,由于Zabbix5.2目前尚未发布。
最后感谢你们的聆听,但愿你们在2020Zabbix中国峰会度过难忘的时光,咱们2021年见!

想听我分享什么主题,或有什么想知道的,欢迎留言,说不定我会回答你哦!
点击预报名2021Zabbix峰会
Zabbix峰会是一年一度的技术盛会,2021Zabbix中国峰会将在上海举办!传承几大固定精彩板块:演讲分享、Workshop实践操做课、圆桌晚宴和趣味活动。悄悄告诉你,如今报名确定比早鸟票还优惠~

联系咱们
电话:13817720274(微信同号)
邮箱:china@zabbix.com
网站:www.zabbix.com/cn www.grandage.cn

一键关注
关注公众号
加入社区群


点击在看,把好文章分享给你的朋友(•̀ᴗ•́)و ̑̑
▼
本文分享自微信公众号 - Zabbix开源社区(china_zabbix)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。