在生产环境中使用 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 Legacy Provider编辑

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