本节概述了配置Zabbix以实现最佳性能和易用性的最佳实践。 这些建议基于Zabbix开发者的建议以及Zabbix培训师和支持工程师的实际经验。
每个Zabbix安装都是独一无二的,这些指导原则中有些可能并不适合您的特定配置。 然而,我们建议尽可能遵循这些指导原则,以避免常见的潜在问题。
如果您认为本页面可以改进,我们非常乐意听取您的意见!请高亮显示您认为有问题的文本,然后按ctrl+Enter来报告错误或分享您的反馈。
在Zabbix中,主机并非指物理机器或设备,而是一个逻辑实体。 出于监控目的,您可以为数据库或例如虚拟机创建单独的主机。 或者,您可以创建一个通用主机 John的笔记本电脑,并在该主机下监控所有指标。
最佳实践是为每个独立实例创建单独的主机,如虚拟机、数据库、容器或网络交换机。采用这种方法,您将:
如果您有多个相似的主机,例如 Network switch 1 和 Network switch 2,Zabbix 提供了多种快速重新创建主机的方法。 您可以通过按下 Clone 按钮简单地克隆带有所有监控项的主机,但在这种情况下,要稍后更新监控项,您将需要在每个主机上手动进行。
最佳实践是创建一个包含所有所需监控项的模板,例如,Network switch template。 然后将相似的主机分组到主机组中,对于上面的例子,它可以是 Network switches。 现在,在 数据收集 -> 主机 部分,您可以按主机组过滤所有主机,并使用 批量更新 按钮将模板链接到所有网络交换机。
为了减少对目标实体的请求次数,Zabbix 允许创建主监控项和依赖项监控项。 在这种情况下,主监控项通过单一请求收集大量信息。 然后,依赖项监控项可以通过预处理从该集合中提取特定的数据片段,并将它们存储为单独的指标。
例如,主监控项可能收集包含多个指标的 JSON 或 XML 响应,或执行返回多列数据的数据库查询(例如,打开的连接数、中断的连接数、允许的最大同时连接数,以及自启动以来的总累积连接数),而依赖项监控项将分别解析和存储每个所需值。
这种配置的最佳实践是在收集后立即丢弃主监控项的历史记录,仅保留依赖项监控项的数据。
如果所有hosts都与Zabbix server位于同一本地网络中,并且没有可扩展性或性能担忧,您可能不需要proxy。 在更大或更复杂的环境中,仅使用Zabbix server直接监控hosts可能不足以应对需求。 添加proxy并将部分hosts分配给该proxy,可以实现更均衡的负载分布。
最佳实践是在以下情况下添加Zabbix proxy:
您正在通过防火墙使用多种metric collection方法监控多个hosts。 proxy将从hosts收集数据并转发给Zabbix server,从而减少需要打开的多个防火墙端口。
您正在监控远程地点、分支或网络。 在Zabbix server与远程地点之间的网络中断时,部署在远程地点的Zabbix proxies将继续数据收集,并在网络连接恢复后将收集的数据发送回Zabbix server。
您有大规模部署,并希望减轻Zabbix server的负载并提高性能。 大规模部署的定义非常广泛,不仅取决于hosts的数量,还取决于每秒收集的values数量。