Commit Graph

674 Commits

Author SHA1 Message Date
Adam Locke b2e196fe91
[DOCS] Replace mentions of tls_auto_config directory (#83856)
Updates directory mentions of `config/tls_auto_config_<timestamp>` to `config/certs`.
2022-02-11 15:16:58 -05:00
Fabio Busatto ba95c87b50
Fix version variable in docker-compose.yml (#83823) 2022-02-11 21:02:45 +01:00
David Turner 4e525d9a1a
Note libffi error message in tmpdir docs (#83662)
In #80617 we upgraded to a version of JNA which would report the message
`Failed to allocate closure` if the temp dir for `libffi` did not permit
executables (rather than crashing with a segfault). This commit extends
the docs to mention this message.
2022-02-08 17:36:17 +00:00
Fabio Busatto 54cfbabe42
[Docs] Delete Elasticsearch Homebrew 8.x docs (#83446)
* Delete Elasticsearch brew install page

* Remove brew references

* Remove brew mentions

* Remove brew references

* Remove brew references

* Remove trailing newline

* Removing trailing newline
2022-02-03 13:05:22 -08:00
Adam Locke e182067f1f
Clarify commands shown for "permanently" setting max_map_count (#82345) (#83227)
* Clarify commands shown for "permanently" setting max_map_count

The current text shows a grep, which of course does not set the value at all.  I've clarified why it's offered (to CHECK the value).

I've also moved the command for setting the value temporarily to above that discussion, to make it more clear to readers that that's what it does.

* Reorder commands, add headings, and fix typos

Co-authored-by: Adam Locke <adam.locke@elastic.co>

Co-authored-by: Charlie Arehart <charlie@carehart.org>
2022-01-27 13:45:30 -05:00
Toby Sutor 30b8cdc184
[DOCS] Add note to that log4j customization is outside the support scope (#82668)
* [docs] Add note to Elasticsearch logging that log4j customization is out of support scope

* Update language for default logging recommendation

Co-authored-by: Adam Locke <adam.locke@elastic.co>

Co-authored-by: Quin Hoxie <qhoxie@gmail.com>
Co-authored-by: Adam Locke <adam.locke@elastic.co>
2022-01-25 17:03:16 -05:00
Adam Locke 2684b97c73
[DOCS] Remove unused tag from rolling restart docs (#82967) 2022-01-24 12:54:23 -05:00
Rory Hunter 997880f518
Mention bind-mounting plugins dir in Docker docs (#82622)
Closes #69533.

The Docker docs mention bind-mounting the `config`, `data` and
`logs` directories when using an arbitrary UID / GID, but they fail
to mention that the `plugins` dir must also be mounted in order to
install plugins.
2022-01-24 17:10:29 +00:00
Alex Perrin db9fb02267
Rolling restart instructions (#82387)
* Rolling restart instructions

In a rolling restart scenario, indexing do not need to be stopped. This step is optional. I have updated Rolling restart/ step 2.

Note: I am not sure how to check if the doc, once generated, will keep the numbering as section 1 and 3 are references to the full restart, can you check this detail?

* Clarify that shard recovery can be faster

Co-authored-by: Adam Locke <adam.locke@elastic.co>
2022-01-24 11:56:13 -05:00
Adam Locke c098af1172
[DOCS] Update enrollment token docs for multi-node configuration (#82829)
* [DOCS] Update enrollment token docs for multi-node configuration

* Update transport.host guidance based on review feedback

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2022-01-20 13:00:57 -05:00
James Rodewig b32476c22b
[DOCS] Remove duplicated text (#82637) (#82880)
(cherry picked from commit 376e500e9c)

Co-authored-by: Daeho Ro <lamanus@outlook.kr>
2022-01-20 12:48:46 -05:00
Adam Locke 943a12e4fb
[DOCS] Fix typo (extra +) (#82823) 2022-01-19 16:28:20 -05:00
Adam Locke 12d47983e4
[DOCS] Remove extraneous Elasticsearch Docker image information (#82821)
* [DOCS] Remove extraneous Elasticsearch Docker image information

In the step for starting Elasticsearch with the generated enrollment token, `docker.elastic.co/elasticsearch/elasticsearch:` was included in conjunction with the `{docker-image}` variable. This include led to a duplicate Docker image that displayed as `ocker.elastic.co/elasticsearch/elasticsearch:docker.elastic.co/elasticsearch/elasticsearch:8.0.0-rc1`. This PR removes the duplicate image information.

* Update ifeval statements and add sub-heading for setting JVM heap size
2022-01-19 14:59:31 -05:00
James Rodewig e21a9a0711
[DOCS] Re-add cluster settings precedence (#82738)
Adds some tags and an include statement to re-add cluster settings precedence information to the cluster update settings API page. This should aid with discoverability.

Closes https://github.com/elastic/elasticsearch/issues/82634

Relates to https://github.com/elastic/elasticsearch/pull/79579
2022-01-18 12:32:43 -05:00
Rory Hunter d2dbef5063
Convert repository plugins to modules (#81870)
Closes #81652.

Convert the `repository-azure`, `repository-gcs` and `repository-s3`
plugins into modules, so that they are always included in the
Elasticsearch distribution. Also change plugin installation, removal
and syncing so that attempting to add or remove these plugins still
succeeds but is now a no-op.
2022-01-10 10:45:42 +00:00
Albert Zaharovits 9e9a8cc7d0
Auto-generated TLS files under fixed config path (#81547)
We (mostly I) were initially advocating for the auto-generated files to
use unique names (the name containing a timestamp particle), in order to
avoid that subsequent invocations of the config step conflict with
itself. Moreover, I was wishing that these files will not have to be
handled directly by admins (that the enrollment process was to be used).
However, experience proved us otherwise, admins have to manipulate these
files, and unique configuration names are hard to deal with in scripts
and docs, so this PR is all about using a fixed name for all the
generated files. _Labeling as a bug fix because the feedback is that it
very negatively impacts usabilty._ Closes
https://github.com/elastic/elasticsearch/issues/81057
2021-12-29 12:56:29 -05:00
James Rodewig ff89ee0beb
[DOCS] Remove Windows MSI installer package (#81952) (#81957)
After 7.16.2, we'll no longer produce Windows MSI installer packages for Elasticsearch. These packages were previously released in beta and didn't receive widespread adoption.

### Changes:

* Adds a related 7.17 breaking change.
* Adds a related 7.16 deprecation.
* Removes the MSI installation instructions.
* Removes references to the MSI installer.

I plan to port the applicable changes to 8.1 (main), 8.0, 7.17, and 7.16. In the 7.16 ports, I'll leave in the MSI install docs and add related deprecation notes to them instead.
2021-12-20 13:49:32 -05:00
James Rodewig 78e2e14404
[DOCS] Remove configuration management tools (#81938)
Removes a section covering configuration management tools from the
installation instructions.

After 7.16.2, Elastic will no longer maintain these tools. Previously,
the tools were only supported on a "best effort" basis.
2021-12-20 11:31:03 -05:00
Adam Locke bf60ce68c6
[DOCS] Update Docker Compose installation with simplified configuration (#81835)
* [DOCS] Update Docker Compose installation with simplified configuration

* Change heading to fix link issue
2021-12-16 19:42:41 -05:00
Adam Locke dd47e68ce1
[DOCS] Enroll additional nodes on Docker (#81787)
* [DOCS] Enroll additional nodes on Docker

* Remove -p option for second node

Co-authored-by: Fabio Busatto <52658645+bytebilly@users.noreply.github.com>

* Rename nodes to align with other Docker docs

* Add elastic network to first node docker run command

* Remove hyphen from node names

Co-authored-by: Fabio Busatto <52658645+bytebilly@users.noreply.github.com>
2021-12-16 12:42:16 -05:00
Adam Locke 1bd0561a91
[DOCS] Add docs for verifying CA fingerprint (#81279)
* [DOCS] Add docs for verifying CA fingerprint

* Update openssl command and explanatory text

* Explain copying CA cert if fingerprint validation isn't possible

* Incorporate new section into the main security config page

* Clarify how cert is used

Co-authored-by: Ioannis Kakavas <ikakavas@protonmail.com>

* Split into two, separate sections

* Rename file and update text based on feedback

* Update ref to use new filename

* Remove extra word

Co-authored-by: Ioannis Kakavas <ikakavas@protonmail.com>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2021-12-15 14:08:20 -05:00
Adam Locke b9ae8fdb13
[DOCS] Fix elasticsearch-reset-password typo (#80919) 2021-11-23 07:42:56 -05:00
Adam Locke 2d83013fe8
[DOCS] Update Docker commands with variables (#80885)
* [DOCS' Update Docker commands with variables

* Modify "VERSION" to lowercase

Co-authored-by: James Rodewig <james.rodewig@elastic.co>

* Remove errant + icons

Co-authored-by: James Rodewig <james.rodewig@elastic.co>
2021-11-19 16:16:09 -05:00
Adam Locke 247d124666
[DOCS] Update ES quick start for security ON by default (#80735)
* [DOCS] Update ES quick start for security ON by default

* Remove code.asciidoc, which is part of the overall doc build now

* Update node names for cleanup

* Add note with links to tools

* Add --net elastic network

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2021-11-17 17:48:07 -05:00
Adam Locke a72a26696c
[DOCS] Update Windows .zip install instructions for security ON by default (#80552)
* [DOCS] Update Windows .zip install instructions for security ON by default

* Rework instructions for running as a service on Windows

* Update wording and add variable for back/forward slashes

* Relocating enroll nodes steps and introducing variables

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2021-11-17 17:35:09 -05:00
James Rodewig 2f4143267e
[DOCS] Un-deprecate transient cluster settings (#80766) (#80780)
#80556 reverted the deprecation of transient cluster settings. This replaces deprecation language in the docs with a warning/recommendation to avoid transient settings.

Closes #80557
# Conflicts:
#	docs/reference/migration/migrate_7_16.asciidoc
2021-11-16 16:00:13 -05:00
James Rodewig 659e0d3fd3
[DOCS] Overhaul snapshot and restore docs (#79081)
Makes several changes to consolidate snapshot and backup-related docs.

Highlights:

* Adds info about supported ESS snapshot repository types
* Adds docs for Kibana's Snapshot and Restore feature
* Combines tutorial pages related to taking and managing snapshots
* Consolidates explanations of the snapshot process
* Incorporates SLM into the snapshot tutorial
* Removes duplicate "back up a cluster" pages
2021-11-15 12:45:07 -05:00
David Turner 57dbefe4fb
Set LIBFFI_TMPDIR at startup (#80651)
Today if `libffi` cannot allocate pages of memory which are both
writeable and executable then it will attempt to write code to a
temporary file. Elasticsearch configures itself a suitable temporary
directory for use by JNA but by default `libffi` won't find this
directory and will try various other places. In certain configurations,
none of the other places that `libffi` tries are suitable. With older
versions of JNA this would result in a `SIGSEGV`; since #80617 the JVM
will exit with an exception.

With this commit we use the `LIBFFI_TMPDIR` environment variable to
configure `libffi` to use the same directory as JNA for its temporary
files if they are needed.

Closes #18272
Closes #73309
Closes #74545
Closes #77014
Closes #77053
Relates #77285

Co-authored-by: Rory Hunter <roryhunter2@gmail.com>
2021-11-15 08:18:58 +00:00
Rory Hunter ba87234f51
Use almalinux as the Docker base image (#80524)
Closes #76681. Our approach to using `scratch` for building Docker
images has caused problems at Docker Hub. Fix this situation by
removing the whole process of using scratch and instead bases the
default distribution on `almalinux:8.4-minimal`. Alma Linux is
binary-compatible with RHEL, and therefore very similar to UBI.
2021-11-10 13:04:56 +00:00
David Turner 8cf4c7b6fb
Remove last few mentions of Zen discovery (#80410)
We have a few leftover mentions of `zen` discovery, mostly for
historical/BwC reasons, which this commit removes.

Prior to this commit the default value for `discovery.type` was `zen`
but this was not written down anywhere or officially supported: the two
options were to set it to `single-node` or to omit it entirely. This
commit changes the default to `multi-node` and documents this.

Co-authored-by: Adam Locke <adam.locke@elastic.co>
2021-11-09 09:52:06 +01:00
James Rodewig a4ab7f9d03
[DOCS] Docker configs should set `network.host` to `0.0.0.0` (#80042)
The `elasticsearch.yml` file that ships with our Docker image includes the
`network.host: 0.0.0.0` setting by default. If a user bind-mounts a custom
config file, it should include this setting to ensure Elasticsearch is reachable.

Closes #77937.
2021-11-05 18:37:46 -04:00
Adam Locke b13df02d83
[DOCS] Update archive install docs for security ON by default (#80375)
* [DOCS] Update archive install docs for security ON by default

* Remove extra attribute references that aren't needed

* Incorporate security info into start page

* Update heading
2021-11-05 13:56:54 -04:00
Ioannis Kakavas 5434ca1b41
[DOCS] Adjust packaged installation docs for security on by default (#80195)
* Adjust packaged installation docs for security on by default

This commit introduces necessary changes to guide users through
the installation of our DEB/RPM packages, now that security is
enabled and configured by default.

* Update security docs and configure includes

* Update wording in check-running.asciidoc

* Adding hidden GET request

* Update heading

* Updated reconfigure heading

Co-authored-by: Adam Locke <adam.locke@elastic.co>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2021-11-04 11:39:37 -04:00
Kyle.K.Zhao 127667c596
[DOCS] Fix HOSTNAME quotes (#80115)
error: export HOSTNAME=“host1,host2"
2021-11-03 14:02:34 -04:00
James Rodewig cb6347b3da
[DOCS] Add transient settings migration guide (#80091) (#80272)
Changes:

* Adds a transient settings migration guide to the 7.16 docs.
* Updates the related deprecation docs to link to the guide.

Closes #80055

Relates to #79167.
2021-11-03 09:23:25 -04:00
Adam Locke 902f0527a4
[DOCS] Update Docker for security ON by default (#80113)
* [DOCS] Update Elasticsearch Docker security instructions

* Adding source files for secure Docker environment

* Updating install instructions and removing security page

* Update instructions for starting a single-node cluster with security

* Add NOTCONSOLE to curl command

* Incorporating reviewer feedback

* Update commands

* Fix link, update structure, other edits

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2021-11-02 14:43:11 -04:00
James Rodewig f758648762
[DOCS] Fix formatting for Docker mem lock example (#79963)
This places the example in a code snippet block rather than just using monospace.
2021-10-27 17:32:50 -04:00
James Rodewig c0487e5471 [DOCS] Minor grammar fix 2021-10-26 12:14:11 -04:00
Adam Locke ca9d8f638d
[DOCS] Add missing system config entry (#79830)
* [DOCS] Add missing system config entry

* Save and commit my actual changes
2021-10-26 12:04:58 -04:00
James Rodewig 8f23448870
[DOCS] Update ESS best practice for dynamic cluster settings (#79579)
Changes:

* Updates a tip in the configuration docs to point Cloud users to the [edit user settings](https://www.elastic.co/guide/en/cloud/current/ec-add-user-settings.html) feature.
* Removes some duplicate content from the cluster update settings API docs.

Relates to https://github.com/elastic/cloud/pull/90394

Co-authored-by: David Kilfoyle <41695641+kilfoyle@users.noreply.github.com>
2021-10-26 11:57:42 -04:00
David Turner 6cc0a41af0
Expand warning about modifying data path contents (#79649)
Today we have a short note in one place in the docs saying not to touch
the contents of the data path. This commit expands the warning to
describe more precisely what is forbidden, and to give some more detail
of the consequences, and also duplicates the warning to the other
location that documents the `path.data` setting.
2021-10-21 16:28:43 -04:00
Nikola Grcevski 055c770083
Deprecation of transient cluster settings (#78794)
This PR changes uses of transient cluster settings to
persistent cluster settings. 

The PR also deprecates the transient settings usage.

Relates to #49540
2021-10-15 13:00:52 -04:00
Przemyslaw Gomulka f5e4228bb3
Setting to disable x-opaque-id in logs throttling (#78911)
Introduces a setting cluster.deprecation_indexing.x_opaque_id_used.enabled to disable use of
x-opaque-id in RateLimitingFilter. This will be used for deprecation
logs indexing and will not affect logging to files (it uses different
instance of RateLimitingFilter with this flag enabled by default)

Changes the indices backing a deprecation log data stream to be hidden.

Refactors DeprecationHttpIT to be more reliable

relates #76292
closes #77936
2021-10-12 12:55:28 +02:00
James Rodewig 485e7deaa0
[DOCS] Re-add docs for multiple data paths (MDP) (#78342)
We deprecated support for multiple data paths (MDP) in 7.13. However,
we won't remove support until after 8.0.

Changes:

* Reverts PR #72267, which removed MDP docs
* Removes a related item from the 8.0 breaking changes.
2021-09-28 09:20:45 -04:00
Przemyslaw Gomulka 8c0d7fa2fa
[doc] Improve documentation for deprecation logging (#78326)
adding a section on WARN messages

relates #77030
2021-09-27 16:56:26 +02:00
Adam Locke 6940673e8a
[DOCS] Update remote cluster docs (#77043)
* [DOCS] Update remote cluster docs

* Add files, rename files, write new stuff

* Plethora of changes

* Add test and update snippets

* Redirects, moved files, and test updates

* Moved file to x-pack for tests

* Remove older CCS page and add redirects

* Cleanup, link updates, and some rewrites

* Update image

* Incorporating user feedback and rewriting much of the remote clusters page

* More changes from review feedback

* Numerous updates, including request examples for CCS and Kibana

* More changes from review feedback

* Minor clarifications on security for remote clusters

* Incorporate review feedback

Co-authored-by: Yang Wang <ywangd@gmail.com>

* Some review feedback and some editorial changes

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Yang Wang <ywangd@gmail.com>
2021-09-22 16:02:33 -04:00
James Rodewig 5ccb1b4c62
[DOCS] Fix ESS install lead-in (#77887)
Replaces the hard-coded ESS lead-in with the docs attribute.

Previously, this copy omitted Microsoft Azure. This ensures these docs are better maintained.
2021-09-16 12:04:04 -04:00
James Rodewig cd95a2aefb
[DOCS] Re-add `KEYSTORE_PASSWORD` example to Docker install docs (#77588)
PR #77155 updated the keystore instructions for Docker. However, it removed an
example that included the `KEYSTORE_PASSWORD` env variable.

This replaces a docker compose example with the original example from PR #51123.
2021-09-10 17:12:18 -04:00
James Rodewig 63a9a3bddb [DOCS] Remove extraneous key from docker compose example 2021-09-10 10:45:25 -04:00
Stef Nestor 5bc291717b
[DOCS] Fix keystore creation instructions for Docker (#77155)
* [DOC] Update Persist Keystore via Docker

From feedback from ES Devs summarized in [^1], I believe this needs to reflect a directory mount rather than file mount to not error. Also adding in the two common mounting errors, but not sure if this is the right place for them.

[^1] https://discuss.elastic.co/t/persist-elasticsearch-kibana-keystores-with-docker/283099

* feedback

* Reorganize

* reword

* fix formatting

* address review feedback

* remove extra whitespace

Co-authored-by: James Rodewig <40268737+jrodewig@users.noreply.github.com>
2021-09-10 10:42:10 -04:00
Przemyslaw Gomulka 0d3cebe812
Change default deprecation logger level to CRITICAL (#77030)
This commit changes default deprecation logger level to CRITICAL, where default means deprecations emitted by DeprecationLogger#critical method.
It also introduces WARN deprecations which are emitted by DeprecationLogger#warn Those log lines emitted at WARN are meant to indicate that a functionality is deprecated but will not break at next major version.
relates #76754
2021-09-09 12:23:52 +02:00
David Turner 0534fbada8
Clarify 'runs in the foreground' (#76709)
Users following the installation guide sometimes get stuck, reporting
that Elasticsearch has "hung" after running `./bin/elasticsearch`
because it doesn't exit, it just sits there in the foreground waiting
for something to happen. We do say that it "runs in the foreground" in
the docs but that's not clear enough, maybe folks expect it to declare
it started up successfully or to open a browser window for them or
something.

This commit expands the docs to clarify what users should expect from
running Elasticsearch from the command line and what they should do
next.
2021-09-06 12:29:18 +01:00
Rory Hunter 3bec319e26
Change env var prefix in Docker settings support (#76192)
Closes #76148. Previously, in #74327, we added support for setting
Elasticsearch settings in the Docker image via environment variables.
However there are scenarios e.g in Kubernetes where it is easy to
accidentally define environment variables that the ES startup process
rejects.

Work around this by using the more explicit env var prefix
`ES_SETTING_`.
2021-08-09 09:47:29 +01:00
Robin Clarke cee83f753a
[DOCS] Correct docs for deprecation logging (#75361)
By default, `logger.deprecation.level` logs messages at the `DEPRECATION` level. This updates
and reorganizes the related docs.

Co-authored-by: James Rodewig <40268737+jrodewig@users.noreply.github.com>
2021-07-19 10:55:27 -04:00
Rory Hunter d08b851a5b
Accept settings in snake case in Docker image (#74327)
Closes #74036. Since some orchestration platforms forbid periods in
environment variable names, allow Docker users to pass settings to ES
using an alternative name scheme. For example:

    bootstrap.memory_lock

...becomes:

    ES_BOOTSTRAP_MEMORY__LOCK

The setting name is uppercased, prefixed, all underscores are converted
to double underscores, and all periods are converted to underscores.
2021-07-09 19:46:58 +01:00
David Turner 963d9aac96
Generalize TCP retxn docs to cover remote clusters (#74732)
Today the docs on setting `tcp_retries2` only talk about intra-cluster
connections, but in fact this setting is equally important to the
resilience of remote cluster connections too. This commit rewords these
docs to cover both cases.

Relates #34405
2021-07-05 13:38:29 +01:00
James Rodewig 95e7f3faf9
[DOCS] Remove `PrintCompressedOopsMode` JVM option (#73741)
Changes:
* Removes a reference to the
  `-XX:+UnlockDiagnosticVMOptions -XX:+PrintCompressedOopsMode` JVM option. This
  option is no longer supported.
* Combines `Xms/Xmx` recommendations for compressed oops.

Closes #71644.

Co-authored-by: Rick Boyd <boyd.richardj@gmail.com>
2021-06-09 09:43:33 -04:00
James Rodewig c696bc949d
[DOCS] Remove outdated OSS homebrew tap (#73688) (#73694)
With
230b860d95,
the `elastic/tap/elasticsearch-oss` tap was removed from Homebrew. This
removes outdated references to the tap from our docs.

It also notes that Homebrew installs the latest version of Elasticsearch.
2021-06-02 14:19:41 -04:00
James Rodewig 3e019a4d56
[DOCS] Note only ES should lock `path.data` files (#73596)
If another service, such as an antivirus or backup program, opens and
locks files in the `path.data` directory, Elasticsearch may return errors.
2021-06-01 10:36:47 -04:00
André Letterer aa544950b6
[DOCS] Include link to ES_TMPDIR with docs on jna.tmpdir (#72845) 2021-05-10 10:52:52 -05:00
James Rodewig 7283107e41
[DOCS] Clarify location of custom JVM options files (#72656) (#72679)
Clarify the files to be modified are in the `jvm.options.d/` folder

Co-authored-by: Leaf-Lin <39002973+Leaf-Lin@users.noreply.github.com>
2021-05-04 08:32:45 -04:00
debadair bef9b8a9b3
[DOCS] Edit JVM settings info. Closes #72259 (#72350)
* [DOCS] Edit JVM settings info. Closes #72259

* Apply suggestions from code review

Co-authored-by: James Rodewig <40268737+jrodewig@users.noreply.github.com>

* Incorporated review feedback.
2021-04-28 18:30:32 -07:00
Henning Andersen 6fbd2601df
[DOCS] Disable shard allocation - data nodes only (#72265)
When doing a rolling restart we recommend disabling shard allocation to
avoid unnecessary recoveries. However, this advise is unnecessary or
even harmful when restarting nodes that do not carry any data like a
pure ML node.
2021-04-27 11:19:03 +02:00
Ryan Ernst 99c15cd05a
Remove documentation for multiple data paths (#72267)
relates #71205
2021-04-26 15:03:49 -07:00
Ryan Ernst f6b833cf27
Add multiple data paths deprecation to docs (#71312)
This commit adds a deprecation note to the multiple data paths doc. It also removes mention of multiple paths support in the setup settings table.

relates #71205
2021-04-05 16:28:19 -07:00
James Rodewig 693807a6d3
[DOCS] Fix double spaces (#71082) 2021-03-31 09:57:47 -04:00
Adam Locke 8dd563134c
[DOCS] Overhaul TLS security docs (#68946)
* Removing security overview and condensing.

* Adding new security file.

* Minor changes.

* Removing link to pass build.

* Adding minimal security page.

* Adding minimal security page.

* Changes to intro.

* Add basic and basic + http configurations.

* Lots of changes, removed files, and redirects.

* Moving some AD and LDAP sections, plus more redirects.

* Redirects for SAML.

* Updating snippet languages and redirects.

* Adding another SAML redirect.

* Hopefully fixing the ci/2 error.

* Fixing another broken link for SAML.

* Adding what's next sections and some cleanup.

* Removes both security tutorials from the TOC.

* Adding redirect for removed tutorial.

* Add graphic for Elastic Security layers.

* Incorporating reviewer feedback.

* Update x-pack/docs/en/security/securing-communications/security-basic-setup.asciidoc

Co-authored-by: Ioannis Kakavas <ikakavas@protonmail.com>

* Update x-pack/docs/en/security/securing-communications/security-minimal-setup.asciidoc

Co-authored-by: Yang Wang <ywangd@gmail.com>

* Update x-pack/docs/en/security/securing-communications/security-basic-setup.asciidoc

Co-authored-by: Yang Wang <ywangd@gmail.com>

* Update x-pack/docs/en/security/index.asciidoc

Co-authored-by: Ioannis Kakavas <ikakavas@protonmail.com>

* Update x-pack/docs/en/security/securing-communications/security-basic-setup-https.asciidoc

Co-authored-by: Ioannis Kakavas <ikakavas@protonmail.com>

* Apply suggestions from code review

Co-authored-by: Ioannis Kakavas <ikakavas@protonmail.com>
Co-authored-by: Yang Wang <ywangd@gmail.com>

* Additional changes from review feedback.

* Incorporating reviewer feedback.

* Incorporating more reviewer feedback.

* Clarify that TLS is for authenticating nodes

Co-authored-by: Tim Vernum <tim@adjective.org>

* Clarify security between nodes

Co-authored-by: Tim Vernum <tim@adjective.org>

* Clarify that TLS is between nodes

Co-authored-by: Tim Vernum <tim@adjective.org>

* Update title for configuring Kibana with a password

Co-authored-by: Tim Vernum <tim@adjective.org>

* Move section for enabling passwords between Kibana and ES to minimal security.

* Add section for transport description, plus incorporate more reviewer feedback.

* Moving operator privileges lower in the navigation.

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Co-authored-by: Ioannis Kakavas <ikakavas@protonmail.com>
Co-authored-by: Yang Wang <ywangd@gmail.com>
Co-authored-by: Tim Vernum <tim@adjective.org>
2021-03-25 11:54:39 -04:00
James Rodewig bfc4139ada
[DOCS] Disambiguate logs and data in path settings docs (#70629) 2021-03-22 10:13:32 -04:00
Jason Tedor 0cd4863585
Introduce ES_JAVA_HOME (#68954)
This commit introduces a dedicated envirnoment variable ES_JAVA_HOME to
determine the JDK used to start (if not using the bundled JDK). This
environment variable will replace JAVA_HOME. The reason that we are
making this change is because JAVA_HOME is a common environment variable
and sometimes users have it set in their environment from other JDK
applications that they have installed on their system. In this case,
they would accidentally end up not using the bundled JDK despite their
intentions. By using a dedicated environment variable specific to
Elasticsearch, we avoid this potential for conflict. With this commit,
we introduce the new environment variable, and deprecate the use of
JAVA_HOME. We will remove support for JAVA_HOME in a future commit.
2021-02-17 12:41:23 -05:00
debadair ba45251833
[DOCS] Update package description. (#68565)
* [DOCS] Update package description.

* Fixed xref
2021-02-04 16:47:12 -08:00
Mark Vieira a92a647b9f Update sources with new SSPL+Elastic-2.0 license headers
As per the new licensing change for Elasticsearch and Kibana this commit
moves existing Apache 2.0 licensed source code to the new dual license
SSPL+Elastic license 2.0. In addition, existing x-pack code now uses
the new version 2.0 of the Elastic license. Full changes include:

 - Updating LICENSE and NOTICE files throughout the code base, as well
   as those packaged in our published artifacts
 - Update IDE integration to now use the new license header on newly
   created source files
 - Remove references to the "OSS" distribution from our documentation
 - Update build time verification checks to no longer allow Apache 2.0
   license header in Elasticsearch source code
 - Replace all existing Apache 2.0 license headers for non-xpack code
   with updated header (vendored code with Apache 2.0 headers obviously
   remains the same).
 - Replace all Elastic license 1.0 headers with new 2.0 header in xpack.
2021-02-02 16:10:53 -08:00
James Rodewig d31c8433e4
[DOCS] Fix typo (#68193) (#68287)
Changed PGP Keys to GPG Keys

Co-authored-by: Sriraag Sridhar <53432553+sriraagworks@users.noreply.github.com>
2021-02-01 09:28:39 -05:00
David Turner 2adeb4a666
Expand and consolidate networking docs (#68051)
Today's network config docs are split into "Network", "HTTP" and
"Transport" pages, with unclear relationships between them. We often
encounter users with weird configs that indicate they don't really
understand how these settings all relate. In fact these pages are all
very interrelated, and the HTTP and Transport pages are almost all only
for advanced users. This commit brings these docs into a single page and
rewords some things to try and guide users away from the advanced
settings unless their configuration needs all the extra complexity.

It also adds a section entitled "Binding and publishing" which clarifies
the meanings of the `bind_host` and `publish_host` parameters. This is
also a common source of confusion amongst users.

It also clarifies that many of these settings accept a list of
addresses, and warns that this may not be what you want. Closes #67956.

Co-authored-by: Adam Locke <adam.locke@elastic.co>
2021-02-01 13:06:20 +00:00
Rory Hunter c841b2c073
Align JSON logs better with ECS (#67266)
The JSON logs that Elasticsearch produces are roughly in an ECS shape. This PR improves
that alignment.
2021-01-25 10:43:37 +00:00
James Rodewig cb3e0051e0
[DOCS] Make cat API verbose query param explicit (#67300) 2021-01-11 17:19:23 -05:00
James Rodewig 9fb7bacbc1
[DOCS] Clarify memlock settings in `/etc/security/limits.conf` (#66694) 2021-01-05 09:02:40 -05:00
Ioannis Kakavas bd873698bc
Ensure CI is run in FIPS 140 approved only mode (#64024)
We were depending on the BouncyCastle FIPS own mechanics to set
itself in approved only mode since we run with the Security
Manager enabled. The check during startup seems to happen before we
set our restrictive SecurityManager though in
org.elasticsearch.bootstrap.Elasticsearch , and this means that
BCFIPS would not be in approved only mode, unless explicitly
configured so.

This commit sets the appropriate JVM property to explicitly set
BCFIPS in approved only mode in CI and adds tests to ensure that we
will be running with BCFIPS in approved only mode when we expect to.
It also sets xpack.security.fips_mode.enabled to true for all test clusters
used in fips mode and sets the distribution to the default one. It adds a
password to the elasticsearch keystore for all test clusters that run in fips
mode.
Moreover, it changes a few unit tests where we would use bcrypt even in
FIPS 140 mode. These would still pass since we are bundling our own
bcrypt implementation, but are now changed to use FIPS 140 approved
algorithms instead for better coverage.

It also addresses a number of tests that would fail in approved only mode
Mainly:

    Tests that use PBKDF2 with a password less than 112 bits (14char). We
    elected to change the passwords used everywhere to be at least 14
    characters long instead of mandating
    the use of pbkdf2_stretch because both pbkdf2 and
    pbkdf2_stretch are supported and allowed in fips mode and it makes sense
    to test with both. We could possibly figure out the password algorithm used
    for each test and adjust password length accordingly only for pbkdf2 but
    there is little value in that. It's good practice to use strong passwords so if
    our docs and tests use longer passwords, then it's for the best. The approach
    is brittle as there is no guarantee that the next test that will be added won't
    use a short password, so we add some testing documentation too.
    This leaves us with a possible coverage gap since we do support passwords
    as short as 6 characters but we only test with > 14 chars but the
    validation itself was not tested even before. Tests can be added in a followup,
    outside of fips related context.

    Tests that use a PKCS12 keystore and were not already muted.

    Tests that depend on running test clusters with a basic license or
    using the OSS distribution as FIPS 140 support is not available in
    neither of these.

Finally, it adds some information around FIPS 140 testing in our testing
documentation reference so that developers can hopefully keep in
mind fips 140 related intricacies when writing/changing docs.
2020-12-23 21:00:49 +02:00
James Rodewig e9c1cded98
[DOCS] Fix outdated heap references (#66646) 2020-12-21 14:01:12 -05:00
Mark Vieira ea9df4e66b
Update heap setting documentation in light of machine dependent heap (#66567) 2020-12-18 11:14:56 -08:00
Rory Hunter e49fd15e0c Fix docs typo 2020-12-16 20:29:20 +00:00
David Turner 32b20fd36f
Fix Log4J config example in docs (#66386)
We lost the `logger.transport.name` line in #65169 and I incorrectly
extrapolated from what was left and mangled it further in #66318. This
commit fixes things.
2020-12-15 17:42:46 +00:00
David Turner b706e0dd69
Give a less dangerous example of logger config (#66318)
Today the docs use `logger.org.elasticsearch.transport: TRACE` as the
example for adjusting the logger config. This is a dangerous thing to
suggest since that's one of the most verbose loggers we have. An
accidental copy-and-paste of this example into a busy cluster can
cause damage.

This commit suggests `logger.org.elasticsearch.discovery: DEBUG`
instead, which is much more benign.

It also corrects the order of the levels and notes that `DEBUG` and
`TRACE` are only for expert use.
2020-12-15 17:04:26 +00:00
James Rodewig 56651fbd78
[DOCS] Note `tar.gz` does not include `systemd` (#66298) 2020-12-15 08:58:13 -05:00
Rory Hunter 68b5465575
Make it possible to use Stack logging in Docker (#65778)
Closes #62758.

Include the Stack log4j config in the Docker image, in order to
make it possible to write logs in a container environment in the
same way as for an archive or package deployment. This is useful
in situations where the user is bind-mounting the logs directory
and has their own arrangements for log shipping.

To use stack logging, set the environment variable `ES_LOG_STYLE`
to `file`. It can also be set to `console`, which is the same as
not specifying it at all.

The Docker logging config is now auto-generated at image build time,
by running the default config through a transformer program when
preparing the distribution in an image builder step.

Also, in the docker distribution `build.gradle`, I changed a helper
closure into a class with a static method in order to fix an
issue where the Docker image was always being rebuilt, even when
there were no changes.
2020-12-10 12:25:47 +00:00
David Turner 41e9ae51b0
Add snapshots to important config list (#65338)
The _Important Elasticsearch configuration_ docs lists a number of items
that you should consider before moving to production. Today this list
does not include configuring snapshots, even though they're very
important to have in production. This commit addresses that omission,
removes some repetition from the introductory paragraphs, and notes that
this config is handled for you on Cloud.

Co-authored-by: James Rodewig <40268737+jrodewig@users.noreply.github.com>
2020-11-23 14:26:07 +00:00
James Rodewig 661409a5a0
[DOCS] Clarify logger-package relationship (#65169)
Updates the logging level docs to better clarify the relationship
between loggers and their Java packages.
2020-11-18 10:28:06 -05:00
James Rodewig 1e13b11213
[DOCS] Document reloadable Watcher settings (#64998) 2020-11-16 08:34:45 -05:00
James Rodewig 357ab0073e
[DOCS] Improve docs for Windows DOS/UNC paths in `path.*` settings (#64668) 2020-11-09 10:36:48 -05:00
James Rodewig 7621b4c48c
[DOCS] Document off-heap swaps under mlocks (#64667) 2020-11-06 07:38:13 -05:00
James Rodewig 947de836e1
[DOCS] Add tab widget for default log locations (#64510) 2020-11-04 08:19:02 -05:00
James Rodewig 99dac25a20
[DOCS] Add redirect for heap size (#64507) 2020-11-02 16:44:01 -05:00
James Rodewig 0ec79adfb6
[DOCS] Note heap size must be set to same min and max (#64090) (#64474)
Co-authored-by: C.J. Jameson <cjcjameson@users.noreply.github.com>
2020-11-02 09:21:58 -05:00
Rory Hunter a32a0986c3
Make ES files inside Docker container world readable (#64274)
Running the Elasticsearch Docker image with a different GID is
possible but trappy, since at present all the ES files are only
readable by the user and group. This PR documents a Docker CLI flag
that fixes this situation, by ensuring the container user is added
to the default group (which is `root`, GID 0).

I also added a test for this case, and refactored the Docker tests
to use a builder pattern for constructing the `docker run` command.
The existing code was becoming unwieldy and hard to change.
2020-10-30 13:26:44 +00:00
Jason Tedor d6c6563837
Clarify preferred method for setting heap size (#64256)
This commit clarifies that the preferred method for setting the heap
size is via jvm.options.d and that using the ES_JAVA_OPTS environment
variable is discouraged for production deployments.
2020-10-28 08:49:31 -04:00
Adam Locke 65ba0d4d32
Fixing typo in file name. (#64226) 2020-10-27 10:48:31 -04:00
Adam Locke 789ee2d73e
[DOCS] Combining important config settings into a single page (#63849)
* Combining important config settings into a single page.

* Updating ids for two pages causing link errors and implementing redirects.
2020-10-19 10:02:22 -04:00
James Rodewig 9b8826c581
[DOCS] Document `discovery.seed_hosts` only supports YAML sequences and arrays (#63746) 2020-10-15 16:28:35 -04:00
Rory Hunter ec350157ea
Use a tiny base image for Docker builds (#52519)
Closes #51670, closes #50838.

Introduce a tiny base image for Docker builds. It aims to create a basic filesystem with as little as possible, which is mostly glibc, busybox and bash. A statically-built curl is also provided.

We still use CentOS 8 as a base. All the fun stuff happens in the Dockerfile.
2020-10-12 14:58:01 +01:00
Adam Locke 266ac76fe0
[DOCS] Updating permissions language for RPM install packages (#63277)
* Updating permissions language for RPM install packages.

* Fix typo
2020-10-06 12:35:22 -04:00
Leaf-Lin 82077f2352
[DOCS] Fix typo in JVM options 2020-08-27 08:42:17 -04:00
James Rodewig 72539e032c
[DOCS] Note the cluster settings API can override `elasticsearch.yml` (#61394)
Co-authored-by: Lisa Cawley <lcawley@elastic.co>
2020-08-24 08:42:45 -04:00
James Rodewig a94e5cb7c4
[DOCS] Replace Wikipedia links with attribute (#61171) 2020-08-17 09:44:24 -04:00
David Turner 19eb922d9f
Remove join timeout (#60873)
There is no point in timing out a join attempt any more. Timing out and
retrying with the same master is pointless, and an in-flight join
attempt to one master no longer blocks attempts to join other masters.
This commit removes this unnecessary setting.

Relates #60872 in which this setting was deprecated.
2020-08-10 13:57:54 +01:00
Rory Hunter a3b7566004 Upgrade Docker image from CentOS 7 to 8 2020-08-06 13:43:33 +01:00
Russ Cam ad496dfa63
Change vm.max_map_count on Docker WSL2 backend (#58153)
This commit adds docs for how to change
vm.max_map_count when running on Docker
Desktop with WSL2 backend on Windows.
2020-08-06 14:26:49 +10:00
Pius a9afad0f18
Highlight `cluster.initial_master_nodes` removal after cluster formation (#60631)
Explicitly ask users to remove `cluster.initial_master_nodes` once the cluster
has formed for the first time.
2020-08-05 08:57:57 +01:00
James Rodewig 22a079af7b
[DOCS] Update Debian APT repo command (#60679)
The current `tee` command appends a definition to
`/etc/apt/sources.list.d/elastic-{version}.list`.

This can lead to duplicate lines and significantly slow apt-get
operations.

This updates the command to overwrite rather than append.
2020-08-04 15:43:01 -04:00
Alexander Reelsen c7ac9e7073
[DOCS] http -> https, remove outdated plugin docs (#60380)
Plugin discovery documentation contained information about installing
Elasticsearch 2.0 and installing an oracle JDK, both of which is no
longer valid.

While noticing that the instructions used cleartext HTTP to install
packages, this commit replaces HTTPs links instead of HTTP where possible.

In addition a few community links have been removed, as they do not seem
to exist anymore.
2020-07-31 15:58:38 -04:00
David Turner 1f5b842607
Clarify remote clusters' use of transport layer (#60268)
Today there are a few places in the transport layer docs where we talk
about communication between nodes _within a cluster_. We also use the
transport layer for remote cluster connections, and these statements
also apply there, but this is not clear from today's docs. This commit
generalises these statements to make it clear that they apply to remote
cluster connections too.

It also adds a link from the docs on configuring TCP retries to the
(deeply-buried) docs on preserving long-lived connections.
2020-07-29 13:01:17 +01:00
David Turner ad96d94aef Fix whitespace bug in #59222 2020-07-27 12:25:38 +01:00
David Turner d3cf8d3ab9
Suggest reducing tcp_retries2 (#59222)
Adds documentation suggesting reducing `tcp_retries2` on Linux to detect
network partitions more quickly.

Relates #34405
2020-07-27 11:39:44 +01:00
James Rodewig 2774cd6938
[DOCS] Swap `[float]` for `[discrete]` (#60124)
Changes instances of `[float]` in our docs for `[discrete]`.

Asciidoctor prefers the `[discrete]` tag for floating headings:
https://asciidoctor.org/docs/asciidoc-asciidoctor-diffs/#blocks
2020-07-23 11:48:22 -04:00
Lisa Cawley 381f8d3c64
[DOCS] Clarify subscription requirements (#58958) 2020-07-09 08:12:59 -07:00
Lisa Cawley 751e2d0deb
[DOCS] Fixes license management links (#58213) 2020-06-16 16:43:54 -07:00
Adam Locke 1e598687a2
[DOCS] Clarifying env variable substitution (#57370)
* Clarifying environment variable substitution in the ES configuration YAML
* Update code snippet
* Remove extraneous quotes from string example
* Incorporating review feedback

Co-authored-by: James Rodewig <james.rodewig@elastic.co>
Co-authored-by: David Turner <david.turner@elastic.co>
2020-06-05 10:10:26 -04:00
DU-ds 4891c457d0 add jvm clarification (#57460)
Emphasise in the Docker documentation that although the default heap size is
1GB, the docker-compose.yml example specifies 512MB.
2020-06-05 11:50:24 +01:00
Lisa Cawley 8b9293b3bf
[DOCS] Replace docdir attribute with es-repo-dir (#57489) 2020-06-01 15:55:05 -07:00
Ryan Ernst 2899e03217
Remove SysV init support (#51716)
With the removal of support for older OSes, we no longer have any
supported systems which use SysV init. This commit removes support for
that legacy init system.

relates #51480
2020-05-27 07:19:28 -07:00
Eddie Turizo 9c97e55742
[DOCS] Fix ulimit value in system settings docs (#56973)
Correctly documents the ulimit value as 65535.

The limit was lowered as part of #37537.
2020-05-20 08:43:16 -04:00
James Rodewig b8a4e00b11
[DOCS] Document `dynamic` and `static` setting types (#56919) 2020-05-19 12:10:59 -04:00
Adam Mohammed f325cf9df5
[DOCS] Fix typo in secure settings docs (#56778) 2020-05-19 12:02:34 -04:00
James Rodewig 70cb519aa7
[DOCS] Relocate discovery module content (#56611)
* Moves `Discovery and cluster formation` content from `Modules` to
`Set up Elasticsearch`.

* Combines `Adding and removing nodes` with `Adding nodes to your
  cluster`. Adds related redirect.

* Removes and redirects the `Modules` page.

* Rewrites parts of `Discovery and cluster formation` to remove `module`
  references and meta references to the section.
2020-05-12 17:39:06 -04:00
Jake Landis 8dc21ace13
remove the term 'system' from indicies doc (#56367)
'system' indices will carry special meaning in the future this commit
removes the system from the name to avoid confusion. (technically
these indices will be hidden not system)
2020-05-07 13:07:38 -05:00
Ioannis Kakavas 16e9433ead
Fix ReloadSecureSettings API to consume password (#54771)
The secure_settings_password was never taken into consideration in
the ReloadSecureSettings API. This commit fixes that and adds
necessary REST layer testing. Doing so, it also

- Allows TestClusters to have a password protected keystore
so that it can be set for tests.
- Adds a parameter to the run task so that elastisearch can
be run with a password protected keystore from source.
2020-04-10 16:48:36 +03:00
Rory Hunter 3950c3a9da
Document how to change GC logging behaviour (#52879)
Closes #43990. Describe how to change the default GC settings without changing
the default `jvm.options`. Give examples using `jvm.options.d`, and
`ES_JAVA_OPTS` with Docker.
2020-02-28 21:26:53 +00:00
David Turner e2cda1a279
"Adding nodes" instructions only work on localhost (#52677)
The introductory sections of the reference manual contains some simplified
instructions for adding a node to the cluster. Unfortunately they are a little
too simplified and only really work for clusters running on `localhost`. If you
try and follow these instructions for a distributed cluster then the new node
will, confusingly, auto-bootstrap itself into a distinct one-node cluster.

Multiple nodes running on localhost is a valid config, of course, but we should
spell out that these instructions are really only for experimentation and that
it takes a bit more work to add nodes to a distributed cluster. This commit
does so.

Also, the "important config" instructions for discovery say that you MUST set
`discovery.seed_hosts` whereas in fact it is fine to ignore this setting and
use a dynamic discovery mechanism instead. This commit weakens this statement
and links to the docs for dynamic discovery mechanisms.

Finally, this section is also overloaded with some technical details that are
not important for this context and are adequately covered elsewhere, and
completely fails to note that the default discovery port is 9300. This commit
addresses this.
2020-02-27 08:51:17 +00:00
Nik Richers 576bcf10f7
[DOCS] Switch to standard ESS trial links (#52552)
Switches ESS trial sign-up links over to a standard attribute. This provides better metrics for how effective these links are.
2020-02-21 12:04:39 -05:00
Jason Tedor 749b623de0
Introduce jvm.options.d for customizing JVM options (#51882)
This commit introduces the ability to override JVM options by adding
custom JVM options files to a jvm.options.d directory. This simplifies
administration of Elasticsearch by not requiring administrators to keep
the root jvm.options file in sync with changes that we make to the root
jvm.options file. Instead, they are not expected to modify this file but
instead supply their own in jvm.options.d. In Docker installations, this
means they can bind mount this directory in. In future versions of
Elasticsearch, we can consider removing the root jvm.options file
(instead, providing all options there as system JVM options).
2020-02-08 16:54:26 -05:00
Rory Hunter 87ee44d8bc
Clarify use of ES_JAVA_OPTS and Docker (#51867)
Closes #51626. Tweak the documentation around configuring the heap size
when using Docker, to state that:

- using `ES_JAVA_OPTS` is the preferred method
- Any `ES_JAVA_OPTS` overrides the defaults in `jvm.options`
- It's possible to bind-mount a custom `jvm.options`
2020-02-06 09:34:53 +00:00
William Brafford 9e4d397e98
Use standard format for reload settings API (#51560)
* Use standard format for reload settings API

The reload-secure-settings API page was not reorganized for the standard
API format, so this commit is reorganizing the page and adding some
links to the page in related documentation.

* Fix broken links

* Reorder examples to correctly check API response

* Note that only certain settings are reloadable

* [DOCS] Edits layout

* [DOCS] Removes unnecessary callouts

Co-authored-by: Lisa Cawley <lcawley@elastic.co>
2020-02-03 12:19:10 -05:00
Dan Hermann dd8add6215
Secure password for monitoring HTTP exporter (#50919)
Adds a secure and reloadable SECURE_AUTH_PASSWORD setting to allow keystore entries in the form "xpack.monitoring.exporters.*.auth.secure_password" to securely supply passwords for monitoring HTTP exporters. Also deprecates the insecure `AUTH_PASSWORD` setting.
2020-01-30 15:01:14 -06:00
William Brafford c117c0cf0a
Password-protected Keystore Feature Branch PR (#51123)
* Reload secure settings with password (#43197)

If a password is not set, we assume an empty string to be
compatible with previous behavior.
Only allow the reload to be broadcast to other nodes if TLS is
enabled for the transport layer.

* Add passphrase support to elasticsearch-keystore (#38498)

This change adds support for keystore passphrases to all subcommands
of the elasticsearch-keystore cli tool and adds a subcommand for
changing the passphrase of an existing keystore.
The work to read the passphrase in Elasticsearch when
loading, which will be addressed in a different PR.

Subcommands of elasticsearch-keystore can handle (open and create)
passphrase protected keystores

When reading a keystore, a user is only prompted for a passphrase
only if the keystore is passphrase protected.

When creating a keystore, a user is allowed (default behavior) to create one with an
empty passphrase

Passphrase can be set to be empty when changing/setting it for an
existing keystore

Relates to: #32691
Supersedes: #37472

* Restore behavior for force parameter (#44847)

Turns out that the behavior of `-f` for the add and add-file sub
commands where it would also forcibly create the keystore if it
didn't exist, was by design - although undocumented.
This change restores that behavior auto-creating a keystore that
is not password protected if the force flag is used. The force
OptionSpec is moved to the BaseKeyStoreCommand as we will presumably
want to maintain the same behavior in any other command that takes
a force option.

*  Handle pwd protected keystores in all CLI tools  (#45289)

This change ensures that `elasticsearch-setup-passwords` and
`elasticsearch-saml-metadata` can handle a password protected
elasticsearch.keystore.
For setup passwords the user would be prompted to add the
elasticsearch keystore password upon running the tool. There is no
option to pass the password as a parameter as we assume the user is
present in order to enter the desired passwords for the built-in
users.
For saml-metadata, we prompt for the keystore password at all times
even though we'd only need to read something from the keystore when
there is a signing or encryption configuration.

* Modify docs for setup passwords and saml metadata cli (#45797)

Adds a sentence in the documentation of `elasticsearch-setup-passwords`
and `elasticsearch-saml-metadata` to describe that users would be
prompted for the keystore's password when running these CLI tools,
when the keystore is password protected.

Co-Authored-By: Lisa Cawley <lcawley@elastic.co>

* Elasticsearch keystore passphrase for startup scripts (#44775)

This commit allows a user to provide a keystore password on Elasticsearch
startup, but only prompts when the keystore exists and is encrypted.

The entrypoint in Java code is standard input. When the Bootstrap class is
checking for secure keystore settings, it checks whether or not the keystore
is encrypted. If so, we read one line from standard input and use this as the
password. For simplicity's sake, we allow a maximum passphrase length of 128
characters. (This is an arbitrary limit and could be increased or eliminated.
It is also enforced in the keystore tools, so that a user can't create a
password that's too long to enter at startup.)

In order to provide a password on standard input, we have to account for four
different ways of starting Elasticsearch: the bash startup script, the Windows
batch startup script, systemd startup, and docker startup. We use wrapper
scripts to reduce systemd and docker to the bash case: in both cases, a
wrapper script can read a passphrase from the filesystem and pass it to the
bash script.

In order to simplify testing the need for a passphrase, I have added a
has-passwd command to the keystore tool. This command can run silently, and
exit with status 0 when the keystore has a password. It exits with status 1 if
the keystore doesn't exist or exists and is unencrypted.

A good deal of the code-change in this commit has to do with refactoring
packaging tests to cleanly use the same tests for both the "archive" and the
"package" cases. This required not only moving tests around, but also adding
some convenience methods for an abstraction layer over distribution-specific
commands.

* Adjust docs for password protected keystore (#45054)

This commit adds relevant parts in the elasticsearch-keystore
sub-commands reference docs and in the reload secure settings API
doc.

* Fix failing Keystore Passphrase test for feature branch (#50154)

One problem with the passphrase-from-file tests, as written, is that
they would leave a SystemD environment variable set when they failed,
and this setting would cause elasticsearch startup to fail for other
tests as well. By using a try-finally, I hope that these tests will fail
more gracefully.

It appears that our Fedora and Ubuntu environments may be configured to
store journald information under /var rather than under /run, so that it
will persist between boots. Our destructive tests that read from the
journal need to account for this in order to avoid trying to limit the
output we check in tests.

* Run keystore management tests on docker distros (#50610)

* Add Docker handling to PackagingTestCase

Keystore tests need to be able to run in the Docker case. We can do this
by using a DockerShell instead of a plain Shell when Docker is running.

* Improve ES startup check for docker

Previously we were checking truncated output for the packaged JDK as
an indication that Elasticsearch had started. With new preliminary
password checks, we might get a false positive from ES keystore
commands, so we have to check specifically that the Elasticsearch
class from the Bootstrap package is what's running.

* Test password-protected keystore with Docker (#50803)

This commit adds two tests for the case where we mount a
password-protected keystore into a Docker container and provide a
password via a Docker environment variable.

We also fix a logging bug where we were logging the identifier for an
array of strings rather than the contents of that array.

* Add documentation for keystore startup prompting (#50821)

When a keystore is password-protected, Elasticsearch will prompt at
startup. This commit adds documentation for this prompt for the archive,
systemd, and Docker cases.

Co-authored-by: Lisa Cawley <lcawley@elastic.co>

* Warn when unable to upgrade keystore on debian (#51011)

For Red Hat RPM upgrades, we warn if we can't upgrade the keystore. This
commit brings the same logic to the code for Debian packages. See the
posttrans file for gets executed for RPMs.

* Restore handling of string input

Adds tests that were mistakenly removed. One of these tests proved
we were not handling the the stdin (-x) option correctly when no
input was added. This commit restores the original approach of
reading stdin one char at a time until there is no more (-1, \r, \n)
instead of using readline() that might return null

* Apply spotless reformatting

* Use '--since' flag to get recent journal messages

When we get Elasticsearch logs from journald, we want to fetch only log
messages from the last run. There are two reasons for this. First, if
there are many logs, we might get a string that's too large for our
utility methods. Second, when we're looking for a specific message or
error, we almost certainly want to look only at messages from the last
execution.

Previously, we've been trying to do this by clearing out the physical
files under the journald process. But there seems to be some contention
over these directories: if journald writes a log file in between when
our deletion command deletes the file and when it deletes the log
directory, the deletion will fail.

It seems to me that we might be able to use journald's "--since" flag to
retrieve only log messages from the last run, and that this might be
less likely to fail due to race conditions in file deletion.

Unfortunately, it looks as if the "--since" flag has a granularity of
one-second. I've added a two-second sleep to make sure that there's a
sufficient gap between the test that will read from journald and the
test before it.

* Use new journald wrapper pattern

* Update version added in secure settings request

Co-authored-by: Lisa Cawley <lcawley@elastic.co>
Co-authored-by: Ioannis Kakavas <ikakavas@protonmail.com>
2020-01-27 19:51:39 -05:00
Rory Hunter 8a6d68b173
Make the Docker build more re-usable in Cloud (#50277)
Closes #49926 and #46166. Rework the Docker image so that it comes with a tiny
init system, to ensure ML processes are correctly cleaned up, and to run ES
as a regular user instead of root.

Also:

   * Ensure no files in the image have the setuid/setgid flag
   * Also improve dependency tracking in the build
   * Remove TAKE_FILE_OWNERSHIP option and its documentation
2020-01-23 10:58:40 +00:00
Nhat Nguyen 09b46c8646
Goodbye and thank you synced flush! (#50882)
Synced flush was a brilliant idea. It supports instant recoveries with a 
quite small implementation. However, with the presence of sequence
numbers and retention leases, it is no longer needed. This change
removes it from 8.0.

Relates #5077
2020-01-16 09:43:07 -05:00
Lisa Cawley f4ff5d866d
[DOCS] Adds elasticsearch-keystore command reference (#50872) 2020-01-13 13:02:06 -08:00
Evgenia Badyanova bb736f7ecd
[DOCS] Update reference documentation that mentions CMS (#50542)
Relates to https://github.com/elastic/elasticsearch/issues/46973
2020-01-07 17:19:15 -05:00
Xiang Dai 432bd0e92c Fix docs typos (#50365)
Fixes a few typos in the docs.

Signed-off-by: Xiang Dai 764524258@qq.com
2019-12-23 10:35:14 -05:00
Lisa Cawley 362ce41eaf
[DOCS] Updates ML links (#50387) 2019-12-19 14:47:28 -08:00
Kevin Woblick 77d94caa70 [DOCS] Add warning about Docker port exposure (#50169)
Docker bypasses the Uncomplicated Firewall (UFW) on Linux by editing the `iptables` config directly, which leads to the exposure of port 9200, even if you blocked it via UFW.

This adds a warning along with work-arounds to the docs.

Signed-off-by: Kovah <mail@kovah.de>
2019-12-18 09:03:44 -05:00
Ryan Ernst 59a571edd5
Fix incorrect use of multiline NOTE in rpm docs (#49962)
This was a copy/paste error from #49893. This commit converts the NOTE
to use inline style instead of one needing closing linebreak.
2019-12-06 17:43:12 -08:00
Ryan Ernst 16a7a04664
Disable repo configuration for rpm based systems (#49893)
This commit changes the recommended repository file for rpm based
systems to be disabled by default. This is a safer practice so upgrades
of the system do no accidentally upgrade elasticsearch itself.

closes #30660
2019-12-06 15:54:30 -08:00
Ryan Ernst 6c54b38a1b
Remove legacy referene to file scripts (#49339)
This commit removes outdated documentation about a path setting for file
scripts which no longer exist.

closes #45827
2019-11-27 10:42:15 -08:00
Ryan Ernst 0042500026
Add JAVA_HOME env override location to docs (#49565)
This commit clarifies how to override JAVA_HOME from the bundled jdk for
deb and rpm installs, which each have their own file that is sourced
upon service startup.

closes #49068
2019-11-27 10:39:54 -08:00
Xiang Dai 7a7d15ba0b [DOCS] Clarify how to update max memory size in bootstrap checks (#48975) 2019-11-27 09:39:34 -05:00
glerb 815ea928b2 [Docs] Correct typo in log file name (#49620) 2019-11-27 14:38:19 +01:00
Dimitrios Liappis 1c9efba809
Clarify gid used by docker image process and bind-mount method
Fix reference about the uid:gid that Elasticsearch runs as inside
the Docker container and add a packaging test to ensure that bind
mounting a data dir with a random uid and gid:0 works as
expected.

Relates #49529
Closes #47929
2019-11-27 10:36:30 +02:00
István Zoltán Szabó ec9d8cf2c1
[DOCS] Adds test clause to the code snippets in the cluster restart page (#49023) 2019-11-13 10:21:43 +01:00
Rory Hunter 2a4e101a97
Support `_FILE` suffixed env vars in Docker entrypoint (#47573)
Closes #43603. Allow environment variables to be passed to ES in a Docker
container via a file, by setting an environment variable with the `_FILE`
suffix that points to the file with the intended value of the env var.
2019-11-12 14:20:12 +00:00
István Zoltán Szabó 1508766a38
[DOCS] Creates a cluster restart documentation page (#48583)
Co-Authored-By: James Rodewig <james.rodewig@elastic.co>
2019-11-12 14:49:11 +01:00
Arne Welzel 552cc2ea59 [DOCS] Remove extra "when" (#48926) 2019-11-11 10:11:38 +01:00