在 windows 个服务器中使用正确的设置和配置设置 Elasticsearch 以供生产使用

Setting up Elasticsearch with right settings and configurations in windows servers for production use

我是 Elasticsearch 的新手。我已经使用默认 ES 设置在 dev(c# -NEST 库)中实现了 Elasticsearch。 我的问题是关于使用正确的配置迁移到生产环境。 一些事实:

问题:

  1. 我想知道我需要多少分片和副本 配置。体面的性能和高可靠性和 可用性。
  2. 每个服务器上推荐的节点配置是什么(在主节点、客户端、数据节点等方面)
  3. 使用windows中的配置进行部署的推荐方法是什么,手动步骤更少。
  4. 请分享您在 windows 环境中部署和维护的 good/bad 经验(以及技巧和经验教训)。
  5. 实际上,关于转向生产,我不知道我不知道什么。我可能错过了一些琐碎的设置。

注意:我已经阅读了有关如何配置系统和 Elasticsearch 设置的指南。 https://www.elastic.co/guide/en/elasticsearch/reference/current/system-config.html.

但我不知道要配置的推荐值。 提前致谢。

我会尝试给你一些一般性的答案,让你开始:

  1. I would like to know how many shards and replicas i need to configure. for decent performance and high reliability and availability.

体面的表现是什么意思?一个主分片应该足以容纳 25,000 个项目和 25Mb。整个索引可以有效地存在于这个大小的 RAM 中!

您可以添加一个副本,这样两个节点都可以为搜索请求提供服务。

注意: 两个符合主节点资格的节点对于生产目的来说不是一个好的数量,因为在主节点选举过程中,有一个 insufficient number of votes to have a quorum 和 [=54= 】 新主人,导致脑裂的场景。为了实现高可用性,您需要至少三个符合主节点条件的节点,最好也在一个区域内的不同可用性区域中,以便节点位置是隔离的。

  1. What is the recommended node configuration on each server (in terms master, client, data node etc)

对于您要处理的数据量,三个符合主节点条件的节点就足够了,并且可以满足高可用性。并非所有节点都必须是数据节点,但假设一个主分片和一个副本,至少有两个节点需要是数据节点。第三个节点可以是唯一的主节点,并有效地充当主节点选举的仲裁者。

  1. What is the recommended way of deploying with configuration in windows with less manual steps.

这是一个非常开放的问题,充满了自以为是的答案!您可能会在 Windows 环境中使用的一些示例可能是

  • PowerShell DSC
  • 人偶
  • Ansible
  • 地形
  • 云特定部署解决方案,例如CloudFormation、Azure 资源管理器
  1. Please share your good/bad experiences (also tips and lesson learnt) in deploying and maintaining in windows environment.
  • 从 Elasticsearch 的默认配置开始,阅读 Configuring Elasticsearch。不要更改默认设置 除非 您真的知道自己在做什么!
  • 对于 25Mb 的数据,快照的需求可能并不重要,因为重建具有 25,000 个项目的索引不会花费很长时间。
  • 假设这是一个搜索用例,将 Index Aliases 与版本化索引一起使用。您的应用程序将使用别名,允许您迭代满足您的信息检索需求的索引和搜索策略。