2 配置最佳实践

概述

本节概述了配置 Zabbix 以实现最佳性能和易用性的最佳实践。
这些建议基于 Zabbix 开发人员的意见,以及 Zabbix 培训师和支持工程师的实际经验。

每个 Zabbix 安装环境都是独特的,其中一些指导原则可能并不适用于您的特定配置。
不过,仍建议尽可能遵循这些指导原则,以避免常见的潜在问题。

如果您认为此页面还有改进空间,我们非常希望听到您的意见!请高亮有问题的文本,然后按 ctrl+Enter 报告错误或分享您的反馈。

主机和监控项

定义主机

Zabbix 中的主机并不是物理机器或设备,而是一个逻辑实体。
出于监控目的,您可以为数据库或例如虚拟机创建单独的主机。
或者,您也可以创建一个通用主机 John's laptop,并在该主机下监控所有指标。

最佳实践是为每个独立实例创建单独的主机,例如虚拟机、数据库、容器或网络交换机。采用这种方法,您将能够:

  1. 通过为每个主机分别设置独立的监控项、触发器和告警通知,避免监控数据混乱。

  2. 更精细地调整用户访问级别。
    您可以配置 user-roles,以授予仅查看和/或配置特定主机的访问权限。
    另请参见最小权限原则

具有重复监控项的主机

如果您有多个相似的主机,例如 Network switch 1Network switch 2,Zabbix 提供了多种方式来快速重新创建该主机。 您只需按下 Clone 按钮,即可克隆一个包含其所有指标的主机;但在这种情况下,如果之后需要更新某个监控项,您将需要在每个主机上手动进行更新。

最佳实践是创建一个包含所有必需指标的模板,例如 Network switch template。 然后将这些相似的主机分组到一个主机组中,对于上述示例,可以命名为 Network switches。 现在,在 Data Collection -> Hosts 部分中,您可以按主机组筛选所有主机,并使用 Mass update 按钮将该模板链接到您的所有网络交换机。

依赖监控项

为了尽量减少对目标实体的请求次数,Zabbix 允许创建主监控项和依赖监控项。
在这种情况下,主监控项通过一次请求收集一大组信息。
然后,可以配置依赖监控项,通过预处理从该数据集中提取特定的数据片段,并将其作为单独的指标存储。

例如,主监控项可能会收集一个包含多个指标的 JSON 或 XML 响应,或者执行一个返回多列数据的数据库查询(例如:打开连接数、中止连接数、允许的最大并发连接数,以及自启动以来的累计总连接数),而依赖监控项将分别解析并存储每个所需的值。

此类配置的最佳实践是:在主监控项采集完成后立即丢弃其历史数据,只保留依赖监控项的数据。

服务器和 proxies

如果所有主机都与 Zabbix 服务器位于同一本地网络中,并且不存在可扩展性或性能方面的顾虑,则可能不需要 proxy。
在更大或更复杂的环境中,直接使用 Zabbix 服务器监控主机可能并不充分。
添加一个 proxy 并将部分主机分配给该 proxy,可以使负载分布更加均衡。

最佳实践是在以下情况下添加 Zabbix proxy:

  1. 您正在通过多种指标采集方法监控位于防火墙后的多台主机。
    proxy 将从这些主机收集数据并将其转发到 Zabbix 服务器,从而减少开放多个防火墙端口的需要。

  2. 您正在监控远程位置、分支机构和/或网络。
    如果 Zabbix 服务器与远程位置之间的网络中断,部署在远程位置的 Zabbix proxies 将继续收集数据,并在网络连接恢复后将收集到的数据发送回 Zabbix 服务器。

  3. 您拥有大规模部署,并希望降低 Zabbix 服务器的负载并提升性能。
    大规模部署的定义非常宽泛,不仅取决于主机数量,还取决于每秒收集的值的数量。

密钥宏

您可能希望将密钥用户宏用作密文文本宏或密钥保管库宏。

为在使用密钥保管库宏时增强安全性,建议配置宏值由 Zabbix 服务器和 Zabbix proxies 分别独立获取。默认情况下,密钥宏值由 Zabbix 服务器获取并传播到 Zabbix proxies。