目录
Zabbix高级特性14. SNMP发现和批量数据采集速度和性能的提升
Zabbix高级特性16. 通过HTTP实现指标和事件的实时流式传输
Zabbix高级特性18. 用于创建 Zabbix 小部件的开发框架
Zabbix高级特性19. Server 发起的检查的可选接口
Zabbix高级特性20. 简化多个电子邮件服务提供商的媒介类型配置
Zabbix是一个功能强大的开源监控系统,它不仅可以监控服务器的基本指标,还可以实现更高级的功能。在本文中,我们将详细总结2023 Zabbix的高级特性及其实现原理,以及部分特性的优缺点。后面的文章中将给出各个特性的实战案例。
注意:后续技术分享,第一时间更新,以及更多更及时的技术资讯和学习技术资料,将在公众号CTO Plus发布,请关注公众号:CTO Plus
原文地址: Zabbix之2023 Zabbix6.4最新高级特性、优缺点及其实现原理总结
Zabbix高级特性1. 自动发现
Zabbix可以自动发现网络中的设备、主机和应用程序、服务等,并根据需要添加监控项,这使得系统管理员可以轻松地管理大型网络。
其实现原理是通过定期执行预定义的自动发现规则,扫描网络上的主机和服务,然后将其添加到监控系统中。自动发现规则可以根据IP地址范围、SNMP OID、端口号等多种方式进行定义。
Zabbix高级特性2. 分布式监控
Zabbix支持分布式监控,可以通过代理服务器来扩展监控范围和提高监控效率, 在多个地理位置监控设备和应用程序,这使得系统管理员可以轻松地监控全球各地的设备和应用程序。
其实现原理是通过在代理服务器上安装Zabbix代理程序,将监控数据收集和处理的任务分配给代理服务器。代理服务器将收集到的监控数据发送给Zabbix服务器进行存储和分析。
Zabbix高级特性3. 高级报警
Zabbix提供多种报警方式,包括电子邮件、短信、声音和webhook页面通知,以及脚本(集成第三方告警系统)等,管理员可以根据自己的需要选择最合适的报警方式。
Zabbix支持基于阈值、时间段、触发器等多种方式进行自定义报警。
其实现原理是通过触发器监控指标的变化并发送报警信息。当触发器状态从“OK”变为“PROBLEM”时,Zabbix会触发报警动作,将报警信息发送给指定的用户或用户组。
Zabbix高级特性4. 可视化
Zabbix可以生成丰富的性能可视化图表,包括图表、地图和仪表板等,帮助用户快速了解监控数据的变化趋势,和更好地理解和分析监控数据。
其实现原理是将收集到的监控数据存储在数据库中,然后通过图表生成工具将数据可视化。用户可以通过自定义时间范围、指标等方式来生成不同类型的性能图表。
Zabbix高级特性5. API
Zabbix提供了完整的API,可以与其他系统集成,例如自动化工具和自定义脚本等。API是在Zabbix 1.8中引入的,并且已经被广泛使用。所有Zabbix移动客户端都基于API,甚至本地WEB前端也部分建立在API之上。API中间件使架构更加模块化,有助于避免直接调用数据库。
Zabbix API是一个用于管理和监控Zabbix系统的接口。它允许用户通过编程方式访问和操作Zabbix系统的各种功能,如创建和修改主机、触发器和图表,以及检索历史数据和事件,批量操作,第三方软件集成以及其他作用提供可编程接口。
详细的API开发实践,请参考文章:Zabbix API开发实战,创建报警媒介和代码示例(付源码)
Zabbix高级特性6. 高可用性
Zabbix支持多个服务器和数据库实例,可以实现高可用性和负载均衡。
Zabbix支持高可用性配置,可以通过设置主备服务器、数据库集群等方式来保证监控系统的稳定性和可用性。其实现原理是在主备服务器之间同步监控数据,当主服务器故障时,备份服务器可以立即接管监控任务。
Zabbix高级特性7. 安全性
Zabbix提供了多种安全功能,包括SSL / TLS加密、基于角色的访问控制、防火墙和审计日志等。
Zabbix高级特性8. 无代理监控
Zabbix可以通过SNMP、JMX、IPMI等协议直接监控设备,而不需要安装代理。这个功能使得管理员可以更加方便地监控网络设备和虚拟化平台。
SNMP
SNMP也就是简单网络管理协议(Simple Network Management Protocol,是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议);通常需要结合设备的MIB(Management Information Base)文件使用。在网络设备,如交换机、路由器、防火墙、行为管理器、AP、AC、加密设备、防毒墙等,以及物理服务器、存储等支持snmp功能的都可以通过开启snmp相关的服务和配置(不同设备的snmp开启方法,建议参考帮助文档或者官方文档操作),用zabbix进行简单的数据监控。
当然,操作系统也可以使用snmp方式监控,但只能是监控到系统层面的运行情况,如cpu、内存、系统分区、网络流量,支持自定义oid,但是配置麻烦。
有点:
1、适用性广,主要应用在物理设备,snmp使用的设备性能可以忽略不计;
2、配置简单,在管理页面操作几下或者执行6条左右命令即可配置;
3、数据简洁,snmp功能的数据可读性比较简洁,通常一个oid对应一个数据。
缺点:
1、设备太多,需要根据厂家的帮助手册来配置;
2、每个厂家的mib文件大多私有,部分厂家不向外开放;
3、需要根据设备定制化snmp模板;
4、可监控性比较基础,基本上出厂内置,不易拓展性。
IPMI
IPMI(智能平台管理接口),Intelligent Platform Management Interface 的缩写。原本是一种Intel架构的企业系统的周边设备所采用的一种工业标准。通常是在物理服务器、存储设备最常见,用户可以通过IPMI进行设备的常规配置及管理,例如修改管理口IP、修改管理员账号信息、重启设备等操作,在zabbix还可以使用IPMI获取设备组件的运行状态,如主板、电源、风扇、传感器的运行状态、运行温度等,一般是在只支持IPMI的情况下使用,而且指标比较少,同一厂家不同型号之间的命令也不通用,用的比较少。
JMX
JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架 ,从Java5.0开始引入到标准Java技术平台中。也就是只适用于java语言开发的中间件,像Tomact、Jboss、Resin、Weblogic、IBM WAS、ActiveMQ等,国产的像中创、金蝶、东方通等都支持使用jmx获取运行数据,非国产的中间件多数可以在网络上找得到jmx的开启方式,国产的一般需要厂家的支持。JMX做为java类应用的一种监控方式,能通过开启jmx功能支持获取中间件的jvm运行状态、jvm的内存池、线程池、老年代青年代的垃圾回收、节点运行状态、会话数等信息。另外,JMX配置都有固定的格式,同时也支持加密方式,可以参考网上的案例或者官网文档自行配置。
Zabbix高级特性9. Agent
需要在被监控的操作系统安装agent,通过agent和server端通讯传输数据。
优点:
1、占用系统资源少,每个系统以200个监控项计算,平均占用资源不到0.5%,网络带宽不到10k/s;
2、支持被动、主动的方式传输数据;
3、支持接收远程执行命令,可配置关联触发器执行某些进程、服务重启操作;
4、支持自定义监控键值,根据监控需求自定义键值、脚本获取某些监控数据;
5、保留监控日志,如监控报错可通日志排查。
缺点:
需要逐台安装配置,解决办法,可在已下载免编译版本或者rpm安装包,编写安装脚本,一般安装方法是使用命令安装后,修改对应的参数,通常只需要修改Server、ServerActive、Hostname,如需要自动注册则另外配置Hostmetadata=system.name;后续可在zabbix server安装nginx,使用nginx做文件服务器,直接在linux上使用命令安装即可
Zabbix高级特性10. JIT即时用户预配
使用LDAP和SAML新的即时用户预配功能,自动创建和更新您的Zabbix用户:
- 简化用户管理 - 将LDAP和SAML用户组映射到Zabbix用户组
- 企业级安全性 - 自动分配用户组和用户角色给LDAP和SAML用户
- 根据他们的LDAP/SAML属性自动分配媒介类型给Zabbix用户
- SAML认证支持JIT和SCIM用户预配
Configure JIT user provisioning for LDAP and SAML
Zabbix高级特性11. 原因和症状事件
为了获得更好的问题概述和选项筛选,并识别根因问题,可以将问题事件标记为原因事件或症状事件:
- 可以将事件标记为原因事件或症状事件
- 默认情况下,所有新问题都被视为原因事件
- 可以将单个或多个症状事件链接到一个原因事件
- 引入了多个新的 {EVENT.CAUSE} 宏以呈现原因事件数据
- 多个与事件相关的 API 调用现在支持按原因和症状事件进行筛选
Group, filter and view cause and symptom events
Zabbix高级特性12. 配置更改的即时传播
即时同步主动或被动 Zabbix proxy 和 agent 更改的配置。
主动和被动 Zabbix proxy 可以几乎实时地获取 Zabbix 实例中所做的任何配置更改:
- ProxyConfigFrequency 参数支持最快1秒的时间间隔
- Zabbix proxy 只接收配置增量-在配置更新间隔期间执行的配置更改
- 在 Zabbix proxy 配置更新期间同步增量配置的设计显著提升了性能
主动 Zabbix agent 仅在配置同步间隔期间有配置更改时才会收到完整的配置副本:
- 可以即时传播配置更改至主动 Zabbix agent
- RefreshActiveChecks 参数支持1-86400 范围内的值
- Zabbix agent 和 Zabbix agent2 均支持此行为
Configure 1 second sync intervals for agents and proxies
Zabbix高级特性13. 零停机 Zabbix 升级
为了改进 Zabbix 组件升级流程(特别是针对大型环境),Zabbix proxy 现在在同一LTS版本周期内向后兼容:
- 如果 Zabbix proxy 与 Zabbix server 具有相同的主版本,则 Zabbix proxy 得到完全支持
- 对于非LTS版本(例如:Zabbix server 6.4),如果 Zabbix proxy 的主版本早于 Zabbix server 但在同一LTS发布中(例如:Zabbix proxy6.0/6.2),则标记 Zabbix proxy 已过时
- 对于LTS版本(例如:Zabbix server 7.0),如果 Zabbix proxy 的主版本早于 Zabbix server 但不早于上一个LTS版本(例如:Zabbix proxy 6.0),则标记 Zabbix proxy 已过时
- 过时的 Zabbix proxy 仍支持数据采集和远程命令执行
- 在其他情况下,Zabbix proxy 不受支持
Verify your proxy version compatibility directly from the frontend
Zabbix高级特性14. SNMP发现和批量数据采集速度和性能的提升
GetBulk 请求是一种新的可以在对监控终端的性能影响最小的情况下批量采集大量SNMP指标的方法:
- 引入了一个新的 walk[OID1,OID2,...] 监控项
- 使用 GetBulk 请求批量轮询SNMP索引的监控项
- 新的 SNMP 预处理步骤将采集的SNMP批量数据转换为JSON格式
- Zabbix 将重新设计官方模板以使用新的SNMP批量采集
- Zabbix 6.4 之前存在的传统样式大量请求已更名为组合请求
Use the new walk item to discover SNMP metrics in bulk
Zabbix高级特性15. 新的菜单布局
重新设计了 Zabbix 的菜单布局。新的菜单布局的目标是提供 Zabbix 主要功能的逻辑性和一致性访问:
- 仪表盘已移动到一级菜单
- 新的告警一级菜单已添加,包含与告警相关的子菜单
- 新的用户一级菜单已添加,包含与用户管理相关的子菜单
- 新的数据采集一级菜单取代了配置一级菜单,并包含与配置数据采集相关的子菜单
New menu layout enables more consistent frontend workflows
Zabbix高级特性16. 通过HTTP实现指标和事件的实时流式传输
通过HTTP将指标和事件从 Zabbix 流式传输到外部系统:
- 通过将指标和事件流式传输到消息代理(如Kafka,RabbitMQ或Amazon Kinesis)中,将 Zabbix 作为数据流水线的一部分,并根据实时采集的数据调整系统行为
- 从应用程序和微服务中流式传输关键指标和事件到数据湖或数据仓库进行长期存储
- 将指标和事件流式传输到外部AI引擎,获得更多的洞察力
- 在【管理】– 【一般】菜单下引入了一个新的 Connectors 子菜单
- • Connectors 子菜单允许用户定义可以将监控项值和事件推送到的外部系统
- Zabbix server 作为客户端,并将数据推送到远程端点
- 通过 REST API 以HTTP方式进行流式传输
- 可以选择流式传输监控项值或触发器事件
- 可以仅流式传输与标签过滤器匹配的数据
Enable real-time metric and event streaming by specifying an HTTP endpoint
Zabbix高级特性17. 模板版本控制
引入模板版本控制以改进模板管理和使用的便捷性:
- 模板版本控制可用于优化您的 CI/CD 流程,并自动使用 Zabbix API 保持模板最新状态
- 模板列表中有新的字段 - Vendor 和 Version
- 最新的 Zabbix 6.4 模板已更新为具有 Vendor 和 Version 字段
- 现有模板将具有空的 Vendor 和 Version 字段
Template vendor and version are displayed in Zabbix frontend
Zabbix高级特性18. 用于创建 Zabbix 小部件的开发框架
为了简化创建自定义小部件的工作流程,引入了多个设计更改:
- 小部件已转换为前端模块
- 模块现在完全是自包含的 - 不需要修改现有文件
- 公开的开发文档包含小部件创建框架的指南和详细概述
- 内置小部件已移动到 ui/widgets 目录
- 自定义小部件应驻留在 ui/modules/ 目录中
- 前端模块可以加载自定义 JavaScript/CSS/Images
Follow step-by-step development guides in the Developer Center documentation section
Zabbix高级特性19. Server 发起的检查的可选接口
直接从 Zabbix server 或 Zabbix proxy 发起的检查相关的监控项类型不再需要主机接口:
- Simple check
- External check
- SSH agent
- Telnet agent
Simple checks now do not require having a predefined host interface
Zabbix高级特性20. 简化多个电子邮件服务提供商的媒介类型配置
Zabbix 6.4 通过允许您从多个预配置的电子邮件服务提供商中进行选择,简化了配置新电子邮件媒介类型的工作流程:
- 可从Gmail、Gmail中继、O365、O365中继或通用SMPT中选择
- 这些电子邮件服务提供商的SMTP和安全设置已预先配置
- 通用SMTP配置对应于旧的默认电子邮件媒介类型配置
Select from preconfigured Gmail and Office365 email providers
Zabbix高级特性21. 新增模板和集成
Zabbix 6.4 新增了很多流行厂商和云提供商的预配置模板,包括:
- Microsoft Azure MySQL servers
- Microsoft Azure PostgreSQL servers
- Microsoft Azure virtual machines
- Low-level discovery improvements in AWS by HTTP template
- Veeam Backup Enterprise Manager
- Veeam Backup and Replication
- Cisco Nexus 9000 Series
- BMC Control-M
- Cisco Meraki dashboard
- 官方Zabbix OS模板中文件系统自动发现的改进
- 官方Zabbix OS模板中文件系统自动发现的改进
Zabbix 6.4 引入了针对 Line 消息应用程序的 Webhook 集成,允许将 Zabbix 事件转发到 Line Messenger。
Zabbix高级特性22. 其他的更改和改进
- 新增 Zabbix agent/agent 2 监控项:
- System.sw.packages.get - 返回JSON格式的已安装软件包信息
- System.sw.os.get - 返回JSON格式的操作系统信息
- System.sw.os.get - 返回JSON格式的操作系统信息
- 触发器URL现在可以标记
- 通过在告警-脚本下创建URL脚本,可以将自定义标记的URL映射到主机和事件上下文菜单中
- SQLite3 Zabbix proxy 现在在升级过程中会自动重新创建SQLite3数据库文件
- 配置导入已重新设计,旨在避免实体缺少UUID和UUID不匹配的情况
- 在【数据采集】-【主机】菜单添加了主机状态筛选器(启用/禁用)
- 在动作日志中添加了其他筛选选项
- 动作日志现在支持导出为CSV
- 对主机、监控项和事件上下文菜单进行了多项改进
- 当更改内部Zabbix用户密码时,现在需要进行旧密码验证
- 配置图表小部件时,现在可以通过自定义数据集标签来重命名数据集
- 在处理更新频率低于每天一次的指标时,增加了值缓存性能的改进
- 删除了 Zabbix proxy 心跳检测
- 大大提升了预处理性能,特别是在预处理大型结构化数据(如JSON/XML)
- 添加了命令以启用 rwlocks/mutexes 的分析(用于调试)
总之,Zabbix具有诸多高级特性,可以帮助管理员轻松地监控和管理大型网络,并提供全面的可视化和报警功能。
更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。
关于公众号的描述访问如下链接
推荐阅读:
Docker容器系列
云主机-生产环境下离线安装Docker部署应用 https://blog.youkuaiyun.com/zhouruifu2015/article/details/77850885 一、Docker:Linux/Windows在线安装Docker与命令大全总结. https://blog.youkuaiyun.com/zhouruifu2015/article/details/129630908 二、Docker:Dockerfile的使用、指令详解和示例 https://blog.youkuaiyun.com/zhouruifu2015/article/details/129630891 三、Docker:Compose安装、使用、文件结构、配置参数与命令详解 https://blog.youkuaiyun.com/zhouruifu2015/article/details/129631372
Kubernetes系列
四、Kubernetes(K8S):kubectl概述、安装、设置 https://blog.youkuaiyun.com/zhouruifu2015/article/details/130057847 五、Kubernetes(K8S):Kubectl常用命令详解 https://blog.youkuaiyun.com/zhouruifu2015/article/details/130056507
Prometheus监控系列
一、Prometheus:配置、导航栏、Template和启动参数详解 https://blog.youkuaiyun.com/zhouruifu2015/article/details/129558351 二、Prometheus:告警特性、配置与绑定Alertmanager详解(1) https://blog.youkuaiyun.com/zhouruifu2015/article/details/129583555 三、Prometheus:告警规则集、告警接收器、Alertmanager启动参数详解(2) https://blog.youkuaiyun.com/zhouruifu2015/article/details/129626005 四、Prometheus:使用Exporter监控Windows和Linux以及配置加密认证 https://blog.youkuaiyun.com/zhouruifu2015/article/details/129626349 六、 Prometheus:使用Grafana拖拽式创建可视化Dashboard监控平台 https://blog.youkuaiyun.com/zhouruifu2015/article/details/130081266 七、 Prometheus:结合Grafana实现MySQL监控平台 https://blog.youkuaiyun.com/zhouruifu2015/article/details/130081302
Zabbix监控系列
Zabbix之2023 Zabbix6.4最新高级特性、优缺点及其实现原理总结 https://mp.weixin.qq.com/s/rPjlcZtv1pSXwyH62QGHjQ Zabbix API开发实战,创建报警媒介和代码示例(付源码) https://mp.weixin.qq.com/s/pSePfSmjMrTb1uTEBL0RBQ