本节概述了配置 Zabbix 以实现最佳性能和易用性的最佳实践。 这些建议基于 Zabbix 开发人员的建议以及 Zabbix 培训讲师和技术支持工程师的实践经验。
每个 Zabbix 安装环境都是唯一的,因此其中某些指南可能不适用于您的特定配置。 但是,建议尽可能遵循这些指南,以避免常见的潜在 问题。
如果您认为本页面可以改进,请不吝赐教!请选中需要讨论的文本并按下 ctrl+Enter 来报告错误或分享您的反馈。
Zabbix中的一个主机并非物理机器或设备,而是逻辑实体。 出于监控目的,您可以为数据库或虚拟机等create独立的主机。 或者,也可以create通用型主机(如"John的笔记本电脑")并在该主机下监控所有指标。
最佳实践是为每个独立实例(如虚拟机、数据库、容器或网络交换机)create单独的主机。采用此方法将实现:
通过为每个主机设置独立的监控项、触发器和告警通知,避免监控数据混乱。
精细化用户访问级别。 您可以通过配置user-roles来限制用户仅能查看/配置特定主机。 另请参阅最小权限原则。
如果你有多个类似的主机,例如 网络交换机 1 和 网络交换机 2,Zabbix 提供了多种方式可以快速重新create 主机。
你可以通过点击 克隆 按钮简单地克隆一个主机及其所有指标,但在这种情况下,若以后要update 监控项,你需要在每个主机上手动操作。
最佳实践是create一个包含所有所需指标的模板,例如,网络交换机模板。
然后将类似的主机分组到一个主机组中,以上述为例,可以是 网络交换机。
现在,在 数据采集 -> 主机 界面中,你可以通过主机组过滤所有主机,并使用 批量更新 按钮将模板链接到你的所有网络交换机上。
为尽量减少对 target 实体的请求数量,Zabbix 允许创建主(master)和从属(dependent)监控项。 在这种情况下,主 监控项 通过单个请求收集大量信息。 然后可以配置从属 监控项,通过预处理提取该集合中的特定数据片段,并将它们作为独立指标存储。
例如,主 监控项 可以收集包含多个指标的 JSON 或 XML 响应,或者execute数据库query,该查询返回多列数据(例如:打开连接数、中止连接数、允许的最大并发连接数以及自启动以来的总连接数),而从属 监控项 将分别解析并存储每个所需值。
此配置的最佳实践是在收集完成后立即丢弃主 监控项 的历史数据,仅保留从属 监控项 的数据。
如果所有主机与Zabbix server位于相同的本地网络中,并且不存在可扩展性或性能方面的顾虑,则可能不需要使用proxy。
在更大或更复杂的环境中,使用Zabbix server直接监控主机可能并不足够。
添加一个proxy并将部分主机分配给该proxy,可以实现更均衡的负载分配。
在以下情况下,最佳实践是添加一个Zabbix proxy:
您正在防火墙之后使用多种指标收集方法监控多个主机。
proxy将从主机收集数据,并将其转发到Zabbix server,从而减少了打开多个防火墙端口的需求。
您正在监控远程位置、分支机构和/或网络。
如果Zabbix server与您的远程位置之间发生网络中断,部署在远程位置的Zabbix proxies将继续进行数据收集,并在网络连接恢复时将收集到的数据发送回Zabbix server。
您拥有大规模部署环境,并希望减少Zabbix server的负载并提升性能。
大规模部署的定义非常广泛,不仅取决于主机的数量,还取决于每秒收集的值的数量。