Skip to main content

准备 GitHub Enterprise Server 3.13 中的 Elasticsearch 升级

在将 GitHub Enterprise Server 升级到版本 3.13 或更高版本时,将升级 Elasticsearch 服务。

概述

Elasticsearch (ES) 为 GitHub Enterprise Server 实例提供搜索功能。 为了带来更好的性能和安全状况,当将实例升级到版本 3.13 或更高版本时,设备的 Elasticsearch 版本将从 5.6.16 升级到 8.7.0。

以下部分可帮助管理员准备和监视 Elasticsearch 升级。 重点是:

  • 升级将暂时降级搜索和审核日志功能的体验。
  • 如果要升级群集配置中的实例,则必须运行脚本来为 ES 升级准备群集。 请参阅“升级集群”。
  • 对于备份,所有客户都应在升级完成后拍摄其实例的快照。

对搜索和审核日志的影响

升级到 ES8 后,将重新生成所有搜索索引。 在重新生成期间,用户将体验到降级的搜索体验,但该实例应正常运行且可用。 索引重新生成过程取决于数据集大小,可能需要数小时到几天的时间。

升级后,审核日志不会立即可用,迁移所有审核日志可能需要几个小时。

强烈建议在索引重新生成完成后立即进行备份(使用 backup-utils),并将该快照用于将来的所有还原。 请参阅“在实例上配置备份”。 如果从运行 GitHub Enterprise Server 3.11 或 3.12 的实例还原备份,则依赖 ES 的任何内容只有在迁移 ES 索引并在 3.13 实例上重新生成后才可用。

监视 Elasticsearch 升级

可在站点管理员仪表板中监视 ES 升级的进度。

  1. 在任何页面的右上角,单击
  2. 在左侧边栏中,单击“搜索索引”。

索引重新生成完成后,所有搜索索引都应显示绿色和“100%”。

更改修复辅助角色数

默认情况下,索引修复辅助角色数设置为 CPU 核心数除以 8(上限为 8)。 若要加快索引重新生成速度,可以调整辅助角色计数。 但是,在这样做之前,应考虑对负载的潜在影响。

  1. 通过 SSH 连接到 你的 GitHub Enterprise Server 实例。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 将 HOSTNAME 替换为实例的主机名,或节点的主机名或 IP 地址。 有关详细信息,请参阅“访问管理 shell (SSH)”。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 若要更改辅助角色数,请输入下列命令。

    Shell
    ghe-config app.github.es-workers NUMBER-OF-WORKERS
    
  3. 运行 ghe-config-apply

还可以在站点管理员仪表板的“搜索索引”部分中调整单个索引重新生成的辅助角色计数。 请参阅“监视 Elasticsearch 升级”部分。