在生产环境中使用 Kibana

编辑

在生产环境中使用 Kibana

编辑

您如何部署 Kibana 在很大程度上取决于您的用例。如果您是唯一的用户,您可以在本地计算机上运行 Kibana,并将其配置为指向您想要与之交互的任何 Elasticsearch 实例。相反,如果您有大量 Kibana 重度用户,您可能需要在连接到同一个 Elasticsearch 实例的多个 Kibana 实例之间进行负载均衡。

虽然 Kibana 不是非常消耗资源,但我们仍然建议将 Kibana 与您的 Elasticsearch 数据或主节点分开运行。要将 Kibana 流量分配到 Elasticsearch 集群中的各个节点,您可以配置 Kibana 以使用 Elasticsearch 主机列表。

Kibana 不支持滚动升级,部署混合版本的 Kibana 可能会导致数据丢失或升级失败。请在执行升级之前关闭所有 Kibana 实例,并确保所有正在运行的 Kibana 实例具有匹配的版本。

跨多个 Kibana 实例进行负载均衡

编辑

要在负载均衡器后面提供多个 Kibana 安装,您必须更改配置。有关每个设置的详细信息,请参阅 配置 Kibana

这些设置在每个 Kibana 实例中必须是唯一的

server.uuid // if not provided, this is autogenerated
server.name
path.data
pid.file
server.port

当使用文件追加器时,目标文件也必须是唯一的

logging:
  appenders:
    default:
      type: file
      fileName: /unique/path/per/instance

必须相同的设置

xpack.security.encryptionKey //decrypting session information
xpack.security.authc.* // authentication configuration
xpack.security.session.* // session configuration
xpack.reporting.encryptionKey //decrypting reports
xpack.encryptedSavedObjects.encryptionKey // decrypting saved objects
xpack.encryptedSavedObjects.keyRotation.decryptionOnlyKeys // saved objects encryption key rotation, if any

如果身份验证配置不匹配,则每个 Kibana 实例中来自未识别提供程序的会话将在该实例的常规会话清理期间被删除。同样,会话配置中的不一致也可能导致不希望的会话注销。这也适用于任何由同一 Elasticsearch 实例支持并共享相同 kibana.index 的 Kibana 实例,即使它们不在同一个负载均衡器后面。

可以通过使用 -c 标志从命令行使用单独的配置文件

bin/kibana -c config/instance1.yml
bin/kibana -c config/instance2.yml

访问多个负载均衡的 Kibana 集群

编辑

要从同一浏览器访问多个负载均衡的 Kibana 集群,请在每个 Kibana 实例的 Kibana 配置中显式地将 xpack.security.cookieName 设置为相同的值。

每个 Kibana 集群必须具有不同的 xpack.security.cookieName 值。

这避免了来自不同 Kibana 实例的 Cookie 之间的冲突。

这将实现无缝的高可用性,并在当前使用的实例发生故障时保持会话处于活动状态。

跨多个 Elasticsearch 节点实现高可用性

编辑

可以将 Kibana 配置为连接到同一集群中的多个 Elasticsearch 节点。在节点不可用的情况下,Kibana 将透明地连接到可用的节点并继续运行。对可用主机的请求将以循环方式路由。

在 kibana.yml 中

elasticsearch.hosts:
  - http://elasticsearch1:9200
  - http://elasticsearch2:9200

相关配置包括 elasticsearch.sniffIntervalelasticsearch.sniffOnStartelasticsearch.sniffOnConnectionFault。这些可以用于在调整集群大小时自动更新主机列表。参数可以在 设置页面 上找到。

内存

编辑

Kibana 具有基于可用总内存进行缩放的默认内存限制。在某些情况下,例如大型报告作业,调整限制以满足更具体的要求可能是有意义的。

可以通过在 kibana/config 文件夹内或使用环境变量 KBN_PATH_CONF 配置的任何其他文件夹中找到的 node.options 配置文件中设置 --max-old-space-size 来定义限制。例如,在基于 Debian 的系统中,该文件夹是 /etc/kibana

该选项接受以 MB 为单位的限制

--max-old-space-size=2048

OpenSSL 旧版提供程序

编辑

从 8.10.0 开始,Kibana 已将其运行时环境 Node.js 从版本 16 升级到版本 18,并随之将其底层 OpenSSL 版本升级到版本 3。OpenSSL 3 认为已过时的算法已被重新启用,以避免在 Kibana 的次要版本发布中出现潜在的重大更改。如果为 Kibana 配置的 SSL 证书未使用 OpenSSL 旧版提供程序文档 中提到的任何旧版算法,我们建议通过删除 node.options 配置文件中的 --openssl-legacy-provider 来禁用此设置。