菜单
文档breadcrumb arrow Grafana 文档breadcrumb arrow 设置breadcrumb arrow 设置高可用性
企业版 开源

设置 Grafana 以实现高可用性

注意

为避免在 Grafana 高可用性中出现重复告警,需要额外的步骤。

详细信息请参考告警高可用性

Grafana 默认使用嵌入式 sqlite3 数据库来存储用户、仪表盘和其他持久数据。为了实现高可用性,您必须使用一个共享数据库来存储这些数据。该共享数据库可以是 MySQL 或 Postgres。

架构

您的 Grafana 高可用性环境将包含两个或多个 Grafana 服务器(集群节点),由负载均衡反向代理提供服务。该集群采用主动-主动(active-active)架构,负载均衡器负责在节点之间分配流量,并在发生故障时将流量重新分配给幸存节点。您需要为负载均衡器配置一个监听器,该监听器响应共享的集群主机名。共享名称是用户访问 Grafana 时使用的主机名。

为了便于使用,我们建议您将负载均衡器配置为提供 SSL 终结。共享的 Grafana 数据库跟踪会话信息,因此您的负载均衡器无需提供会话亲和性服务。有关负载均衡器配置和操作的详细信息,请参阅其文档。

开始之前

在完成以下任务之前,请配置一个高可用性的 MySQL 或 Postgres 数据库。配置 MySQL 或 Postgres 数据库以实现高可用性超出了本指南的范围,但您可以在线查找每个数据库的说明。

配置多个 Grafana 服务器使用同一数据库

一旦您拥有可用的 Postgres 或 MySQL 数据库,您就可以配置您的多个 Grafana 实例使用一个共享后端数据库。Grafana 有默认和自定义配置文件,您可以通过更新您的自定义配置文件来更新数据库设置,具体如[database]所示。配置为使用共享数据库后,您的多个 Grafana 实例将所有长期数据持久存储在该数据库中。

仅限 Grafana Enterprise:授权您的 Grafana 服务器

如果您正在使用 Grafana Enterprise

  1. 获取以集群共享主机名命名的许可证令牌。
  2. 编辑每个节点的grafana.ini配置文件中的host_url设置,以反映集群的共享主机名。
  3. 正常安装许可证密钥。有关安装许可证密钥的更多信息,请参考将您的许可证添加到 Grafana 实例

告警高可用性

Grafana 告警提供高可用性模式。它通过在每个服务器上执行所有告警并仅针对每个告警发送一次通知来保留传统仪表盘告警的语义。目前不支持服务器之间的负载分配。

有关设置告警高可用性的更多信息和说明,请参考启用告警高可用性

传统仪表盘告警

传统 Grafana 告警支持有限形式的高可用性。在此模式下,当运行多个服务器时,告警通知会被去重。这意味着所有告警都在每个服务器上执行,但每个告警通知仅发送一次。Grafana 目前不支持服务器之间的负载分配。

Grafana Live

Grafana Live 在高可用性设置下存在限制。详细信息请参考配置 Grafana Live 高可用性设置

用户会话

Grafana 默认使用基于数据库的 auth token 策略。这意味着负载均衡器可以将用户发送到任何 Grafana 服务器,而无需在每个服务器上重新登录。