cluster-node-setting-changes.asciidoc 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938
  1. [discrete]
  2. [[breaking_80_cluster_node_setting_changes]]
  3. ==== Cluster and node setting changes
  4. //NOTE: The notable-breaking-changes tagged regions are re-used in the
  5. //Installation and Upgrade Guide
  6. //tag::notable-breaking-changes[]
  7. TIP: {ess-setting-change}
  8. .`action.destructive_requires_name` now defaults to `true`. {ess-icon}
  9. [%collapsible]
  10. ====
  11. *Details* +
  12. The default for the `action.destructive_requires_name` setting changes from `false`
  13. to `true` in {es} 8.0.0.
  14. Previously, defaulting to `false` allowed users to use wildcard
  15. patterns to delete, close, or change index blocks on indices.
  16. To prevent the accidental deletion of indices that happen to match a
  17. wildcard pattern, we now default to requiring that destructive
  18. operations explicitly name the indices to be modified.
  19. *Impact* +
  20. To use wildcard patterns for destructive actions, set
  21. `action.destructive_requires_name` to `false` using the
  22. {ref}/cluster-update-settings.html[] cluster settings API].
  23. ====
  24. .You can no longer set `xpack.searchable.snapshot.shared_cache.size` on non-frozen nodes.
  25. [%collapsible]
  26. ====
  27. *Details* +
  28. You can no longer set
  29. {ref}/searchable-snapshots.html#searchable-snapshots-shared-cache[`xpack.searchable.snapshot.shared_cache.size`]
  30. on a node that doesn't have the `data_frozen` node role. This setting reserves
  31. disk space for the shared cache of partially mounted indices. {es} only
  32. allocates partially mounted indices to nodes with the `data_frozen` role.
  33. *Impact* +
  34. Remove `xpack.searchable.snapshot.shared_cache.size` from `elasticsearch.yml`
  35. for nodes that don't have the `data_frozen` role. Specifying the setting on a
  36. non-frozen node will result in an error on startup.
  37. ====
  38. [[max_clause_count_change]]
  39. .`indices.query.bool.max_clause_count` is deprecated and has no effect.
  40. [%collapsible]
  41. ====
  42. *Details* +
  43. Elasticsearch will now dynamically set the maximum number of allowed clauses
  44. in a query, using a heuristic based on the size of the search thread pool and
  45. the size of the heap allocated to the JVM. This limit has a minimum value of
  46. 1024 and will in most cases be larger (for example, a node with 30Gb RAM and
  47. 48 CPUs will have a maximum clause count of around 27,000). Larger heaps lead
  48. to higher values, and larger thread pools result in lower values.
  49. *Impact* +
  50. Queries with many clauses should be avoided whenever possible.
  51. If you previously bumped this setting to accommodate heavy queries,
  52. you might need to increase the amount of memory available to Elasticsearch,
  53. or to reduce the size of your search thread pool so that more memory is
  54. available to each concurrent search.
  55. In previous versions of Lucene you could get around this limit by nesting
  56. boolean queries within each other, but the limit is now based on the total
  57. number of leaf queries within the query as a whole and this workaround will
  58. no longer help.
  59. Specifying `indices.query.bool.max_clause_count` will have no effect
  60. but will generate deprecation warnings. To avoid these warnings, remove the
  61. setting from `elasticsearch.yml` during an upgrade or node restart.
  62. ====
  63. [[ilm-poll-interval-limit]]
  64. .`indices.lifecycle.poll_interval` must be greater than `1s`.
  65. [%collapsible]
  66. ====
  67. *Details* +
  68. Setting `indices.lifecycle.poll_interval` too low can cause
  69. excessive load on a cluster. The poll interval must now be at least `1s` (one second).
  70. *Impact* +
  71. Set `indices.lifecycle.poll_interval` setting to `1s` or
  72. greater in `elasticsearch.yml` or through the
  73. {ref}/cluster-update-settings.html[cluster update settings API].
  74. Setting `indices.lifecycle.poll_interval` to less than `1s` in
  75. `elasticsearch.yml` will result in an error on startup.
  76. {ref}/cluster-update-settings.html[Cluster update settings API] requests that
  77. set `indices.lifecycle.poll_interval` to less than `1s` will return an error.
  78. ====
  79. .The file and native realms are now enabled unless explicitly disabled.
  80. [%collapsible]
  81. ====
  82. *Details* +
  83. The file and native realms are now enabled unless explicitly disabled. If
  84. explicitly disabled, the file and native realms remain disabled at all times.
  85. Previously, the file and native realms had the following implicit behaviors:
  86. * If the file and native realms were not configured, they were implicitly disabled
  87. if any other realm was configured.
  88. * If no other realm was available because realms were either not configured,
  89. not permitted by license, or explicitly disabled, the file and native realms
  90. were enabled, even if explicitly disabled.
  91. *Impact* +
  92. To explicitly disable the file or native realm, set the respective
  93. `file.<realm-name>.enabled` or `native.<realm-name>.enabled` setting to `false`
  94. under the `xpack.security.authc.realms` namespace in `elasticsearch.yml`.
  95. The following configuration example disables the native realm and the file realm.
  96. [source,yaml]
  97. ----
  98. xpack.security.authc.realms:
  99. native.realm1.enabled: false
  100. file.realm2.enabled: false
  101. ...
  102. ----
  103. ====
  104. .The realm `order` setting is now required.
  105. [%collapsible]
  106. ====
  107. *Details* +
  108. The `xpack.security.authc.realms.{type}.{name}.order` setting is now required and must be
  109. specified for each explicitly configured realm. Each value must be unique.
  110. *Impact* +
  111. The cluster will fail to start if the requirements are not met.
  112. For example, the following configuration is invalid:
  113. [source,yaml]
  114. --------------------------------------------------
  115. xpack.security.authc.realms.kerberos.kerb1:
  116. keytab.path: es.keytab
  117. remove_realm_name: false
  118. --------------------------------------------------
  119. And must be configured as:
  120. [source,yaml]
  121. --------------------------------------------------
  122. xpack.security.authc.realms.kerberos.kerb1:
  123. order: 0
  124. keytab.path: es.keytab
  125. remove_realm_name: false
  126. --------------------------------------------------
  127. ====
  128. [[breaking_80_allocation_change_include_relocations_removed]]
  129. .`cluster.routing.allocation.disk.include_relocations` has been removed.
  130. [%collapsible]
  131. ====
  132. *Details* +
  133. {es} now always accounts for the sizes of relocating shards when making
  134. allocation decisions based on the disk usage of the nodes in the cluster. In
  135. earlier versions, you could disable this by setting `cluster.routing.allocation.disk.include_relocations` to `false`.
  136. That could result in poor allocation decisions that could overshoot watermarks and require significant
  137. extra work to correct. The `cluster.routing.allocation.disk.include_relocations` setting has been removed.
  138. *Impact* +
  139. Remove the `cluster.routing.allocation.disk.include_relocations`
  140. setting. Specifying this setting in `elasticsearch.yml` will result in an error
  141. on startup.
  142. ====
  143. .`cluster.join.timeout` has been removed.
  144. [%collapsible]
  145. ====
  146. *Details* +
  147. The `cluster.join.timeout` setting has been removed. Join attempts no longer
  148. time out.
  149. *Impact* +
  150. Remove `cluster.join.timeout` from `elasticsearch.yml`.
  151. ====
  152. .`discovery.zen` settings have been removed.
  153. [%collapsible]
  154. ====
  155. *Details* +
  156. All settings under the `discovery.zen` namespace are no longer supported. They existed only only for BWC reasons in 7.x. This includes:
  157. - `discovery.zen.minimum_master_nodes`
  158. - `discovery.zen.no_master_block`
  159. - `discovery.zen.hosts_provider`
  160. - `discovery.zen.publish_timeout`
  161. - `discovery.zen.commit_timeout`
  162. - `discovery.zen.publish_diff.enable`
  163. - `discovery.zen.ping.unicast.concurrent_connects`
  164. - `discovery.zen.ping.unicast.hosts.resolve_timeout`
  165. - `discovery.zen.ping.unicast.hosts`
  166. - `discovery.zen.ping_timeout`
  167. - `discovery.zen.unsafe_rolling_upgrades_enabled`
  168. - `discovery.zen.fd.connect_on_network_disconnect`
  169. - `discovery.zen.fd.ping_interval`
  170. - `discovery.zen.fd.ping_timeout`
  171. - `discovery.zen.fd.ping_retries`
  172. - `discovery.zen.fd.register_connection_listener`
  173. - `discovery.zen.join_retry_attempts`
  174. - `discovery.zen.join_retry_delay`
  175. - `discovery.zen.join_timeout`
  176. - `discovery.zen.max_pings_from_another_master`
  177. - `discovery.zen.send_leave_request`
  178. - `discovery.zen.master_election.wait_for_joins_timeout`
  179. - `discovery.zen.master_election.ignore_non_master_pings`
  180. - `discovery.zen.publish.max_pending_cluster_states`
  181. - `discovery.zen.bwc_ping_timeout`
  182. *Impact* +
  183. Remove the `discovery.zen` settings from `elasticsearch.yml`. Specifying these settings will result in an error on startup.
  184. ====
  185. .`http.content_type.required` has been removed.
  186. [%collapsible]
  187. ====
  188. *Details* +
  189. The `http.content_type.required` setting was deprecated in Elasticsearch 6.0
  190. and has been removed in Elasticsearch 8.0. The setting was introduced in
  191. Elasticsearch 5.3 to prepare users for Elasticsearch 6.0, where content type
  192. auto detection was removed for HTTP requests.
  193. *Impact* +
  194. Remove the `http.content_type.required` setting from `elasticsearch.yml`. Specifying this setting will result in an error on startup.
  195. ====
  196. .`http.tcp_no_delay` has been removed.
  197. [%collapsible]
  198. ====
  199. *Details* +
  200. The `http.tcp_no_delay` setting was deprecated in 7.x and has been removed in 8.0. Use`http.tcp.no_delay` instead.
  201. *Impact* +
  202. Replace the `http.tcp_no_delay` setting with `http.tcp.no_delay`.
  203. Specifying `http.tcp_no_delay` in `elasticsearch.yml` will
  204. result in an error on startup.
  205. ====
  206. .`network.tcp.connect_timeout` has been removed.
  207. [%collapsible]
  208. ====
  209. *Details* +
  210. The `network.tcp.connect_timeout` setting was deprecated in 7.x and has been removed in 8.0. This setting
  211. was a fallback setting for `transport.connect_timeout`.
  212. *Impact* +
  213. Remove the`network.tcp.connect_timeout` setting.
  214. Use the `transport.connect_timeout` setting to change the default connection
  215. timeout for client connections. Specifying
  216. `network.tcp.connect_timeout` in `elasticsearch.yml` will result in an
  217. error on startup.
  218. ====
  219. .`node.max_local_storage_nodes` has been removed.
  220. [%collapsible]
  221. ====
  222. *Details* +
  223. The `node.max_local_storage_nodes` setting was deprecated in 7.x and
  224. has been removed in 8.0. Nodes should be run on separate data paths
  225. to ensure that each node is consistently assigned to the same data path.
  226. *Impact* +
  227. Remove the `node.max_local_storage_nodes` setting. Specifying this
  228. setting in `elasticsearch.yml` will result in an error on startup.
  229. ====
  230. [[accept-default-password-removed]]
  231. .The `accept_default_password` setting has been removed.
  232. [%collapsible]
  233. ====
  234. *Details* +
  235. The `xpack.security.authc.accept_default_password` setting has not had any affect
  236. since the 6.0 release of {es} and is no longer allowed.
  237. *Impact* +
  238. Remove the `xpack.security.authc.accept_default_password` setting from `elasticsearch.yml`.
  239. Specifying this setting will result in an error on startup.
  240. ====
  241. [[roles-index-cache-removed]]
  242. .The `roles.index.cache.*` settings have been removed.
  243. [%collapsible]
  244. ====
  245. *Details* +
  246. The `xpack.security.authz.store.roles.index.cache.max_size` and
  247. `xpack.security.authz.store.roles.index.cache.ttl` settings have
  248. been removed. These settings have been redundant and deprecated
  249. since the 5.2 release of {es}.
  250. *Impact* +
  251. Remove the `xpack.security.authz.store.roles.index.cache.max_size`
  252. and `xpack.security.authz.store.roles.index.cache.ttl` settings from `elasticsearch.yml` .
  253. Specifying these settings will result in an error on startup.
  254. ====
  255. [[separating-node-and-client-traffic]]
  256. .The `transport.profiles.*.xpack.security.type` setting has been removed.
  257. [%collapsible]
  258. ====
  259. *Details* +
  260. The `transport.profiles.*.xpack.security.type` setting is no longer supported.
  261. The Transport Client has been removed and all client traffic now uses
  262. the HTTP transport. Transport profiles using this setting should be removed.
  263. *Impact* +
  264. Remove the `transport.profiles.*.xpack.security.type` setting from `elasticsearch.yml`.
  265. Specifying this setting in a transport profile will result in an error on startup.
  266. ====
  267. [discrete]
  268. [[saml-realm-nameid-changes]]
  269. .The `nameid_format` SAML realm setting no longer has a default value.
  270. [%collapsible]
  271. ====
  272. *Details* +
  273. In SAML, Identity Providers (IdPs) can either be explicitly configured to
  274. release a `NameID` with a specific format, or configured to attempt to conform
  275. with the requirements of a Service Provider (SP). The SP declares its
  276. requirements in the `NameIDPolicy` element of a SAML Authentication Request.
  277. In {es}, the `nameid_format` SAML realm setting controls the `NameIDPolicy`
  278. value.
  279. Previously, the default value for `nameid_format` was
  280. `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`. This setting created
  281. authentication requests that required the IdP to release `NameID` with a
  282. `transient` format.
  283. The default value has been removed, which means that {es} will create SAML Authentication Requests by default that don't put this requirement on the
  284. IdP. If you want to retain the previous behavior, set `nameid_format` to
  285. `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`.
  286. *Impact* +
  287. If you currently don't configure `nameid_format` explicitly, it's possible
  288. that your IdP will reject authentication requests from {es} because the requests
  289. do not specify a `NameID` format (and your IdP is configured to expect one).
  290. This mismatch can result in a broken SAML configuration. If you're unsure whether
  291. your IdP is explicitly configured to use a certain `NameID` format and you want to retain current behavior
  292. , try setting `nameid_format` to `urn:oasis:names:tc:SAML:2.0:nameid-format:transient` explicitly.
  293. ====
  294. .The `xpack.security.transport.ssl.enabled` setting is now required to configure `xpack.security.transport.ssl` settings.
  295. [%collapsible]
  296. ====
  297. *Details* +
  298. It is now an error to configure any SSL settings for
  299. `xpack.security.transport.ssl` without also configuring
  300. `xpack.security.transport.ssl.enabled`.
  301. *Impact* +
  302. If using other `xpack.security.transport.ssl` settings, you must explicitly
  303. specify the `xpack.security.transport.ssl.enabled` setting.
  304. If you do not want to enable SSL and are currently using other
  305. `xpack.security.transport.ssl` settings, do one of the following:
  306. * Explicitly specify `xpack.security.transport.ssl.enabled` as `false`
  307. * Discontinue use of other `xpack.security.transport.ssl` settings
  308. If you want to enable SSL, follow the instructions in
  309. {ref}/configuring-tls.html#tls-transport[Encrypting communications between nodes
  310. in a cluster]. As part of this configuration, explicitly specify
  311. `xpack.security.transport.ssl.enabled` as `true`.
  312. For example, the following configuration is invalid:
  313. [source,yaml]
  314. --------------------------------------------------
  315. xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
  316. xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
  317. --------------------------------------------------
  318. And must be configured as:
  319. [source,yaml]
  320. --------------------------------------------------
  321. xpack.security.transport.ssl.enabled: true <1>
  322. xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
  323. xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
  324. --------------------------------------------------
  325. <1> or `false`.
  326. ====
  327. .The `xpack.security.http.ssl.enabled` setting is now required to configure `xpack.security.http.ssl` settings.
  328. [%collapsible]
  329. ====
  330. *Details* +
  331. It is now an error to configure any SSL settings for
  332. `xpack.security.http.ssl` without also configuring
  333. `xpack.security.http.ssl.enabled`.
  334. *Impact* +
  335. If using other `xpack.security.http.ssl` settings, you must explicitly
  336. specify the `xpack.security.http.ssl.enabled` setting.
  337. If you do not want to enable SSL and are currently using other
  338. `xpack.security.http.ssl` settings, do one of the following:
  339. * Explicitly specify `xpack.security.http.ssl.enabled` as `false`
  340. * Discontinue use of other `xpack.security.http.ssl` settings
  341. If you want to enable SSL, follow the instructions in
  342. {ref}/configuring-tls.html#tls-http[Encrypting HTTP client communications]. As part
  343. of this configuration, explicitly specify `xpack.security.http.ssl.enabled`
  344. as `true`.
  345. For example, the following configuration is invalid:
  346. [source,yaml]
  347. --------------------------------------------------
  348. xpack.security.http.ssl.certificate: elasticsearch.crt
  349. xpack.security.http.ssl.key: elasticsearch.key
  350. xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]
  351. --------------------------------------------------
  352. And must be configured as either:
  353. [source,yaml]
  354. --------------------------------------------------
  355. xpack.security.http.ssl.enabled: true <1>
  356. xpack.security.http.ssl.certificate: elasticsearch.crt
  357. xpack.security.http.ssl.key: elasticsearch.key
  358. xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]
  359. --------------------------------------------------
  360. <1> or `false`.
  361. ====
  362. .A `xpack.security.transport.ssl` certificate and key are now required to enable SSL for the transport interface.
  363. [%collapsible]
  364. ====
  365. *Details* +
  366. It is now an error to enable SSL for the transport interface without also configuring
  367. a certificate and key through use of the `xpack.security.transport.ssl.keystore.path`
  368. setting or the `xpack.security.transport.ssl.certificate` and
  369. `xpack.security.transport.ssl.key` settings.
  370. *Impact* +
  371. If `xpack.security.transport.ssl.enabled` is set to `true`, provide a
  372. certificate and key using the `xpack.security.transport.ssl.keystore.path`
  373. setting or the `xpack.security.transport.ssl.certificate` and
  374. `xpack.security.transport.ssl.key` settings. If a certificate and key is not
  375. provided, {es} will return in an error on startup.
  376. ====
  377. .A `xpack.security.http.ssl` certificate and key are now required to enable SSL for the HTTP server.
  378. [%collapsible]
  379. ====
  380. *Details* +
  381. It is now an error to enable SSL for the HTTP (Rest) server without also configuring
  382. a certificate and key through use of the `xpack.security.http.ssl.keystore.path`
  383. setting or the `xpack.security.http.ssl.certificate` and
  384. `xpack.security.http.ssl.key` settings.
  385. *Impact* +
  386. If `xpack.security.http.ssl.enabled` is set to `true`, provide a certificate and
  387. key using the `xpack.security.http.ssl.keystore.path` setting or the
  388. `xpack.security.http.ssl.certificate` and `xpack.security.http.ssl.key`
  389. settings. If certificate and key is not provided, {es} will return in an error
  390. on startup.
  391. ====
  392. .PKCS#11 keystores and trustores cannot be configured in `elasticsearch.yml`
  393. [%collapsible]
  394. ====
  395. *Details* +
  396. The settings `*.ssl.keystore.type` and `*.ssl.truststore.type` no longer accept "PKCS11" as a valid type.
  397. This applies to all SSL settings in Elasticsearch, including
  398. - `xpack.security.http.keystore.type`
  399. - `xpack.security.transport.keystore.type`
  400. - `xpack.security.http.truststore.type`
  401. - `xpack.security.transport.truststore.type`
  402. As well as SSL settings for security realms, watcher and monitoring.
  403. Use of a PKCS#11 keystore or truststore as the JRE's default store is not affected.
  404. *Impact* +
  405. If you have a PKCS#11 keystore configured within your `elasticsearch.yml` file, you must remove that
  406. configuration and switch to a supported keystore type, or configure your PKCS#11 keystore as the
  407. JRE default store.
  408. ====
  409. .The `kibana` user has been replaced by `kibana_system`.
  410. [%collapsible]
  411. ====
  412. *Details* +
  413. The `kibana` user was historically used to authenticate {kib} to {es}.
  414. The name of this user was confusing, and was often mistakenly used to login to {kib}.
  415. This has been renamed to `kibana_system` in order to reduce confusion, and to better
  416. align with other built-in system accounts.
  417. *Impact* +
  418. Replace any use of the `kibana` user with the `kibana_system` user. Specifying
  419. the `kibana` user in `kibana.yml` will result in an error on startup.
  420. If your `kibana.yml` used to contain:
  421. [source,yaml]
  422. --------------------------------------------------
  423. elasticsearch.username: kibana
  424. --------------------------------------------------
  425. then you should update to use the new `kibana_system` user instead:
  426. [source,yaml]
  427. --------------------------------------------------
  428. elasticsearch.username: kibana_system
  429. --------------------------------------------------
  430. IMPORTANT: The new `kibana_system` user does not preserve the previous `kibana`
  431. user password. You must explicitly set a password for the `kibana_system` user.
  432. ====
  433. [[search-remote-settings-removed]]
  434. .The `search.remote.*` settings have been removed.
  435. [%collapsible]
  436. ====
  437. *Details* +
  438. In 6.5 these settings were deprecated in favor of `cluster.remote`. In 7.x we
  439. provided automatic upgrading of these settings to their `cluster.remote`
  440. counterparts. In 8.0.0, these settings have been removed. Elasticsearch will
  441. refuse to start if you have these settings in your configuration or cluster
  442. state.
  443. *Impact* +
  444. Use the replacement `cluster.remote` settings. Discontinue use of the
  445. `search.remote.*` settings. Specifying these settings in `elasticsearch.yml`
  446. will result in an error on startup.
  447. ====
  448. [[remove-pidfile]]
  449. .The `pidfile` setting has been replaced by `node.pidfile`.
  450. [%collapsible]
  451. ====
  452. *Details* +
  453. To ensure that all settings are in a proper namespace, the `pidfile` setting was
  454. previously deprecated in version 7.4.0 of Elasticsearch, and is removed in
  455. version 8.0.0. Instead, use `node.pidfile`.
  456. *Impact* +
  457. Use the `node.pidfile` setting. Discontinue use of the `pidfile` setting.
  458. Specifying the `pidfile` setting in `elasticsearch.yml` will result in an error
  459. on startup.
  460. ====
  461. [[remove-processors]]
  462. .The `processors` setting has been replaced by `node.processors`.
  463. [%collapsible]
  464. ====
  465. *Details* +
  466. To ensure that all settings are in a proper namespace, the `processors` setting
  467. was previously deprecated in version 7.4.0 of Elasticsearch, and is removed in
  468. version 8.0.0. Instead, use `node.processors`.
  469. *Impact* +
  470. Use the `node.processors` setting. Discontinue use of the `processors` setting.
  471. Specifying the `processors` setting in `elasticsearch.yml` will result in an
  472. error on startup.
  473. ====
  474. .The `node.processors` setting can no longer exceed the available number of processors.
  475. [%collapsible]
  476. ====
  477. *Details* +
  478. Previously it was possible to set the number of processors used to set the
  479. default sizes for the thread pools to be more than the number of available
  480. processors. As this leads to more context switches and more threads but without
  481. an increase in the number of physical CPUs on which to schedule these additional
  482. threads, the `node.processors` setting is now bounded by the number of available
  483. processors.
  484. *Impact* +
  485. If specified, ensure the value of `node.processors` setting does not exceed the
  486. number of available processors. Setting the `node.processors` value greater than
  487. the number of available processors in `elasticsearch.yml` will result in an
  488. error on startup.
  489. ====
  490. .The `cluster.remote.connect` setting has been removed.
  491. [%collapsible]
  492. ====
  493. *Details* +
  494. In Elasticsearch 7.7.0, the setting `cluster.remote.connect` was deprecated in
  495. favor of setting `node.remote_cluster_client`. In Elasticsearch 8.0.0, the
  496. setting `cluster.remote.connect` is removed.
  497. *Impact* +
  498. Use the `node.remote_cluster_client` setting. Discontinue use of the
  499. `cluster.remote.connect` setting. Specifying the `cluster.remote.connect`
  500. setting in `elasticsearch.yml` will result in an error on startup.
  501. ====
  502. .The `node.local_storage` setting has been removed.
  503. [%collapsible]
  504. ====
  505. *Details* +
  506. In Elasticsearch 7.8.0, the setting `node.local_storage` was deprecated and
  507. beginning in Elasticsearch 8.0.0 all nodes will require local storage. Therefore,
  508. the `node.local_storage` setting has been removed.
  509. *Impact* +
  510. Discontinue use of the `node.local_storage` setting. Specifying this setting in
  511. `elasticsearch.yml` will result in an error on startup.
  512. ====
  513. .The `auth.password` setting for HTTP monitoring has been removed.
  514. [%collapsible]
  515. ====
  516. *Details* +
  517. In Elasticsearch 7.7.0, the setting `xpack.monitoring.exporters.<exporterName>.auth.password`
  518. was deprecated in favor of setting `xpack.monitoring.exporters.<exporterName>.auth.secure_password`.
  519. In Elasticsearch 8.0.0, the setting `xpack.monitoring.exporters.<exporterName>.auth.password` is
  520. removed.
  521. *Impact* +
  522. Use the `xpack.monitoring.exporters.<exporterName>.auth.secure_password`
  523. setting. Discontinue use of the
  524. `xpack.monitoring.exporters.<exporterName>.auth.password` setting. Specifying
  525. the `xpack.monitoring.exporters.<exporterName>.auth.password` setting in
  526. `elasticsearch.yml` will result in an error on startup.
  527. ====
  528. .Settings used to disable basic license features have been removed.
  529. [%collapsible]
  530. ====
  531. *Details* +
  532. The following settings were deprecated in {es} 7.8.0 and have been removed
  533. in {es} 8.0.0:
  534. * `xpack.enrich.enabled`
  535. * `xpack.flattened.enabled`
  536. * `xpack.ilm.enabled`
  537. * `xpack.monitoring.enabled`
  538. * `xpack.rollup.enabled`
  539. * `xpack.slm.enabled`
  540. * `xpack.sql.enabled`
  541. * `xpack.transform.enabled`
  542. * `xpack.vectors.enabled`
  543. These basic license features are now always enabled.
  544. If you have disabled ILM so that you can use another tool to manage Watcher
  545. indices, the newly introduced `xpack.watcher.use_ilm_index_management` setting
  546. may be set to false.
  547. *Impact* +
  548. Discontinue use of the removed settings. Specifying these settings in
  549. `elasticsearch.yml` will result in an error on startup.
  550. ====
  551. .Settings used to defer cluster recovery pending a certain number of master nodes have been removed.
  552. [%collapsible]
  553. ====
  554. *Details* +
  555. The following cluster settings have been removed:
  556. * `gateway.expected_nodes`
  557. * `gateway.expected_master_nodes`
  558. * `gateway.recover_after_nodes`
  559. * `gateway.recover_after_master_nodes`
  560. It is safe to recover the cluster as soon as a majority of master-eligible
  561. nodes have joined so there is no benefit in waiting for any additional
  562. master-eligible nodes to start.
  563. *Impact* +
  564. Discontinue use of the removed settings. If needed, use
  565. `gateway.expected_data_nodes` or `gateway.recover_after_data_nodes` to defer
  566. cluster recovery pending a certain number of data nodes.
  567. ====
  568. .Legacy role settings have been removed.
  569. [%collapsible]
  570. ====
  571. *Details* +
  572. The legacy role settings:
  573. * `node.data`
  574. * `node.ingest`
  575. * `node.master`
  576. * `node.ml`
  577. * `node.remote_cluster_client`
  578. * `node.transform`
  579. * `node.voting_only`
  580. have been removed. Instead, use the `node.roles` setting. If you were previously
  581. using the legacy role settings on a 7.13 or later cluster, you will have a
  582. deprecation log message on each of your nodes indicating the exact replacement
  583. value for `node.roles`.
  584. *Impact* +
  585. Discontinue use of the removed settings. Specifying these settings in
  586. `elasticsearch.yml` will result in an error on startup.
  587. ====
  588. [[system-call-filter-setting]]
  589. .The system call filter setting has been removed.
  590. [%collapsible]
  591. ====
  592. *Details* +
  593. Elasticsearch uses system call filters to remove its ability to fork another
  594. process. This is useful to mitigate remote code exploits. These system call
  595. filters are enabled by default, and were previously controlled via the setting
  596. `bootstrap.system_call_filter`. Starting in Elasticsearch 8.0, system call
  597. filters will be required. As such, the setting `bootstrap.system_call_filter`
  598. was deprecated in Elasticsearch 7.13.0, and is removed as of Elasticsearch
  599. 8.0.0.
  600. *Impact* +
  601. Discontinue use of the removed setting. Specifying this setting in Elasticsearch
  602. configuration will result in an error on startup.
  603. ====
  604. [[tier-filter-setting]]
  605. .Tier filtering settings have been removed.
  606. [%collapsible]
  607. ====
  608. *Details* +
  609. The cluster and index level settings ending in `._tier` used for filtering the allocation of a shard
  610. to a particular set of nodes have been removed. Instead, the
  611. {ref}/data-tier-shard-filtering.html#tier-preference-allocation-filter[tier
  612. preference setting], `index.routing.allocation.include._tier_preference` should
  613. be used. The removed settings are:
  614. Cluster level settings:
  615. - `cluster.routing.allocation.include._tier`
  616. - `cluster.routing.allocation.exclude._tier`
  617. - `cluster.routing.allocation.require._tier`
  618. Index settings:
  619. - `index.routing.allocation.include._tier`
  620. - `index.routing.allocation.exclude._tier`
  621. - `index.routing.allocation.require._tier`
  622. *Impact* +
  623. Discontinue use of the removed settings. Specifying any of these cluster settings in Elasticsearch
  624. configuration will result in an error on startup. Any indices using these settings will have the
  625. settings archived (and they will have no effect) when the index metadata is loaded.
  626. ====
  627. [[shared-data-path-setting]]
  628. .Shared data path and per index data path settings are deprecated.
  629. [%collapsible]
  630. ====
  631. *Details* +
  632. Elasticsearch uses the shared data path as the base path of per index data
  633. paths. This feature was previously used with shared replicas. Starting in
  634. 7.13.0, these settings are deprecated. Starting in 8.0 only existing
  635. indices created in 7.x will be capable of using the shared data path and
  636. per index data path settings.
  637. *Impact* +
  638. Discontinue use of the deprecated settings.
  639. ====
  640. [[single-data-node-watermark-setting]]
  641. .The single data node watermark setting is deprecated and now only accepts `true`.
  642. [%collapsible]
  643. ====
  644. *Details* +
  645. In 7.14, setting `cluster.routing.allocation.disk.watermark.enable_for_single_data_node`
  646. to false was deprecated. Starting in 8.0, the only legal value will be
  647. true. In a future release, the setting will be removed completely, with same
  648. behavior as if the setting was `true`.
  649. If the old behavior is desired for a single data node cluster, disk based
  650. allocation can be disabled by setting
  651. `cluster.routing.allocation.disk.threshold_enabled: false`
  652. *Impact* +
  653. Discontinue use of the deprecated setting.
  654. ====
  655. [[auto-import-dangling-indices-removed]]
  656. .The `gateway.auto_import_dangling_indices` setting has been removed.
  657. [%collapsible]
  658. ====
  659. *Details* +
  660. The `gateway.auto_import_dangling_indices` cluster setting has been removed.
  661. Previously, you could use this setting to automatically import
  662. {ref}/modules-gateway.html#dangling-indices[dangling indices]. However,
  663. automatically importing dangling indices is unsafe. Use the
  664. {ref}/indices.html#dangling-indices-api[dangling indices APIs] to manage and
  665. import dangling indices instead.
  666. *Impact* +
  667. Discontinue use of the removed setting. Specifying the setting in
  668. `elasticsearch.yml` will result in an error on startup.
  669. ====
  670. .The `listener` thread pool has been removed.
  671. [%collapsible]
  672. ====
  673. *Details* +
  674. Previously, the transport client used the thread pool to ensure listeners aren't
  675. called back on network threads. The transport client has been removed
  676. in 8.0, and the thread pool is no longer needed.
  677. *Impact* +
  678. Remove `listener` thread pool settings from `elasticsearch.yml` for any nodes.
  679. Specifying `listener` thread pool settings in `elasticsearch.yml` will result in
  680. an error on startup.
  681. ====
  682. .The `fixed_auto_queue_size` thread pool type has been removed.
  683. [%collapsible]
  684. ====
  685. *Details* +
  686. The `fixed_auto_queue_size` thread pool type, previously marked as an
  687. experimental feature, was deprecated in 7.x and has been removed in 8.0.
  688. The `search` and `search_throttled` thread pools have the `fixed` type now.
  689. *Impact* +
  690. No action needed.
  691. ====
  692. .Several `transport` settings have been replaced.
  693. [%collapsible]
  694. ====
  695. *Details* +
  696. The following settings have been deprecated in 7.x and removed in 8.0. Each setting has a replacement
  697. setting that was introduced in 6.7.
  698. - `transport.tcp.port` replaced by `transport.port`
  699. - `transport.tcp.compress` replaced by `transport.compress`
  700. - `transport.tcp.connect_timeout` replaced by `transport.connect_timeout`
  701. - `transport.tcp_no_delay` replaced by `transport.tcp.no_delay`
  702. - `transport.profiles.profile_name.tcp_no_delay` replaced by `transport.profiles.profile_name.tcp.no_delay`
  703. - `transport.profiles.profile_name.tcp_keep_alive` replaced by `transport.profiles.profile_name.tcp.keep_alive`
  704. - `transport.profiles.profile_name.reuse_address` replaced by `transport.profiles.profile_name.tcp.reuse_address`
  705. - `transport.profiles.profile_name.send_buffer_size` replaced by `transport.profiles.profile_name.tcp.send_buffer_size`
  706. - `transport.profiles.profile_name.receive_buffer_size` replaced by `transport.profiles.profile_name.tcp.receive_buffer_size`
  707. *Impact* +
  708. Use the replacement settings. Discontinue use of the removed settings.
  709. Specifying the removed settings in `elasticsearch.yml` will result in an error
  710. on startup.
  711. ====
  712. .Selective transport compression has been enabled by default.
  713. [%collapsible]
  714. ====
  715. *Details* +
  716. Prior to 8.0, transport compression was disabled by default. Starting in 8.0,
  717. `transport.compress` defaults to `indexing_data`. This configuration means that
  718. the propagation of raw indexing data will be compressed between nodes.
  719. *Impact* +
  720. Inter-node transit will get reduced along the indexing path. In some scenarios,
  721. CPU usage could increase.
  722. ====
  723. .Transport compression defaults to lz4.
  724. [%collapsible]
  725. ====
  726. *Details* +
  727. Prior to 8.0, the `transport.compression_scheme` setting defaulted to `deflate`. Starting in
  728. 8.0, `transport.compress_scheme` defaults to `lz4`.
  729. Prior to 8.0, the `cluster.remote.<cluster_alias>.transport.compression_scheme`
  730. setting defaulted to `deflate` when `cluster.remote.<cluster_alias>.transport.compress`
  731. was explicitly configured. Starting in 8.0,
  732. `cluster.remote.<cluster_alias>.transport.compression_scheme` will fallback to
  733. `transport.compression_scheme` by default.
  734. *Impact* +
  735. This configuration means that transport compression will produce somewhat lower
  736. compression ratios in exchange for lower CPU load.
  737. ====
  738. .The `repositories.fs.compress` node-level setting has been removed.
  739. [%collapsible]
  740. ====
  741. *Details* +
  742. For shared file system repositories (`"type": "fs"`), the node level setting `repositories.fs.compress` could
  743. previously be used to enable compression for all shared file system repositories where `compress` was not specified.
  744. The `repositories.fs.compress` setting has been removed.
  745. *Impact* +
  746. Discontinue use of the `repositories.fs.compress` node-level setting. Use the
  747. repository-specific `compress` setting to enable compression instead. Refer to
  748. {ref}/snapshots-filesystem-repository.html#filesystem-repository-settings[Shared
  749. file system repository settings].
  750. ====
  751. //end::notable-breaking-changes[]
  752. // This change is not notable because it should not have any impact on upgrades
  753. // However we document it here out of an abundance of caution
  754. [[fips-default-hash-changed]]
  755. .When FIPS mode is enabled the default password hash is now PBKDF2_STRETCH
  756. [%collapsible]
  757. ====
  758. *Details* +
  759. If `xpack.security.fips_mode.enabled` is true (see <<fips-140-compliance>>),
  760. the value of `xpack.security.authc.password_hashing.algorithm` now defaults to
  761. `pbkdf2_stretch`.
  762. In earlier versions this setting would always default to `bcrypt` and a runtime
  763. check would prevent a node from starting unless the value was explicitly set to
  764. a "pbkdf2" variant.
  765. There is no change for clusters that do not enable FIPS 140 mode.
  766. *Impact* +
  767. This change should not have any impact on upgraded nodes.
  768. Any node with an explicitly configured value for the password hashing algorithm
  769. will continue to use that configured value.
  770. Any node that did not have an explicitly configured password hashing algorithm in
  771. {es} 6.x or {es} 7.x would have failed to start.
  772. ====
  773. //tag::notable-breaking-changes[]
  774. .The `xpack.monitoring.history.duration` will not delete indices created by metricbeat or elastic agent
  775. [%collapsible]
  776. ====
  777. *Details* +
  778. Prior to 8.0, Elasticsearch would internally handle removal of all monitoring indices according to the
  779. `xpack.monitoring.history.duration` setting.
  780. When using metricbeat or elastic agent >= 8.0 to collect monitoring data, indices are managed via an ILM policy. If the setting is present, the policy will be created using the `xpack.monitoring.history.duration` as an initial retention period.
  781. If you need to customize retention settings for monitoring data collected with metricbeat, please update the `.monitoring-8-ilm-policy` ILM policy directly.
  782. The `xpack.monitoring.history.duration` setting will only apply to monitoring indices written using (legacy) internal
  783. collection, not indices created by metricbeat or agent.
  784. *Impact* +
  785. After upgrading, insure that the `.monitoring-8-ilm-policy` ILM policy aligns with your desired retention settings.
  786. If you only use
  787. metricbeat or agent to collect monitoring data, you can also remove any custom `xpack.monitoring.history.duration`
  788. settings.
  789. ====
  790. // end::notable-breaking-changes[]