remote-clusters.asciidoc 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. [[remote-clusters]]
  2. == Remote clusters
  3. You can connect a local cluster to other {es} clusters, known as _remote
  4. clusters_. Remote clusters can be located in different datacenters or
  5. geographic regions, and contain indices or data streams that can be replicated
  6. with {ccr} or searched by a local cluster using {ccs}.
  7. With <<xpack-ccr,{ccr}>>, you ingest data to an index on a remote cluster. This
  8. _leader_ index is replicated to one or more read-only _follower_ indices on your local cluster. Creating a multi-cluster architecture with {ccr} enables you to
  9. configure disaster recovery, bring data closer to your users, or establish a
  10. centralized reporting cluster to process reports locally.
  11. <<modules-cross-cluster-search,{ccs-cap}>> enables you to run a search request
  12. against one or more remote clusters. This capability provides each region with a
  13. global view of all clusters, allowing you to send a search request from a local
  14. cluster and return results from all connected remote clusters. For full {ccs}
  15. capabilities, the local and remote cluster must be on the same
  16. {subscriptions}[subscription level].
  17. Enabling and configuring security is important on both local and remote
  18. clusters. When connecting a local cluster to remote clusters, an {es} superuser
  19. (such as the `elastic` user) on the local cluster gains total read access to the
  20. remote clusters. To use {ccr} and {ccs} safely,
  21. <<remote-clusters-security,enable security>> on all connected clusters
  22. and configure Transport Layer Security (TLS) on at least the transport level on
  23. every node.
  24. Furthermore, a local administrator at the operating system level
  25. with sufficient access to {es} configuration files and private keys can
  26. potentially take over a remote cluster. Ensure that your security strategy
  27. includes securing local _and_ remote clusters at the operating system level.
  28. To register a remote cluster,
  29. <<remote-clusters-connect,connect the local cluster>> to nodes in the
  30. remote cluster using sniff mode (default) or proxy mode. After registering
  31. remote clusters, <<remote-clusters-privileges,configure privileges>> for {ccr}
  32. and {ccs}.
  33. [[sniff-mode]]
  34. [discrete]
  35. === Sniff mode
  36. In sniff mode, a cluster is created using a name and a list of seed nodes. When
  37. a remote cluster is registered, its cluster state is retrieved from one of the
  38. seed nodes and up to three _gateway nodes_ are selected as part of remote
  39. cluster requests. This mode requires that the gateway node's publish addresses
  40. are accessible by the local cluster.
  41. Sniff mode is the default connection mode.
  42. [[gateway-nodes-selection]]
  43. The _gateway nodes_ selection depends on the following criteria:
  44. * *version*: Remote nodes must be compatible with the cluster they are
  45. registered to:
  46. ** Any node can communicate with another node on the same
  47. major version. For example, 7.0 can talk to any 7.x node.
  48. ** Only nodes on the last minor version of a certain major version can
  49. communicate with nodes on the following major version. In the 6.x series, 6.8
  50. can communicate with any 7.x node, while 6.7 can only communicate with 7.0.
  51. ** Version compatibility is
  52. symmetric, meaning that if 6.7 can communicate with 7.0, 7.0 can also
  53. communicate with 6.7. The following table depicts version compatibility between
  54. local and remote nodes.
  55. +
  56. [%collapsible%open]
  57. .Version compatibility table
  58. ====
  59. include::remote-clusters-shared.asciidoc[tag=remote-cluster-compatibility-matrix]
  60. ====
  61. IMPORTANT: Elastic only supports {ccs} on a subset of these configurations. See
  62. <<ccs-supported-configurations>>.
  63. * *role*: By default, any non-<<master-node,master-eligible>> node can act as a
  64. gateway node. Dedicated master nodes are never selected as gateway nodes.
  65. * *attributes*: You can define the gateway nodes for a cluster by setting
  66. <<cluster-remote-node-attr,`cluster.remote.node.attr.gateway`>> to `true`.
  67. However, such nodes still have to satisfy the two above requirements.
  68. [[proxy-mode]]
  69. [discrete]
  70. === Proxy mode
  71. In proxy mode, a cluster is created using a name and a single proxy address.
  72. When you register a remote cluster, a configurable number of socket connections
  73. are opened to the proxy address. The proxy is required to route those
  74. connections to the remote cluster. Proxy mode does not require remote cluster
  75. nodes to have accessible publish addresses.
  76. The proxy mode is not the default connection mode and must be configured.
  77. Proxy mode has the same <<gateway-nodes-selection, version compatibility
  78. requirements>> as sniff mode.
  79. [%collapsible]
  80. [[proxy-mode-version-compatibility]]
  81. .Version compatibility matrix
  82. ====
  83. include::remote-clusters-shared.asciidoc[tag=remote-cluster-compatibility-matrix]
  84. ====
  85. IMPORTANT: Elastic only supports {ccs} on a subset of these configurations. See
  86. <<ccs-supported-configurations>>.
  87. include::cluster/remote-clusters-security.asciidoc[]
  88. include::cluster/remote-clusters-connect.asciidoc[]
  89. include::../../../x-pack/docs/en/security/authentication/remote-clusters-privileges.asciidoc[]
  90. include::cluster/remote-clusters-settings.asciidoc[]