Skip to content

Elasticsearch and stack - self managed tutorial 1 complete refinement#5636

Open
eedugon wants to merge 9 commits intomainfrom
tutorial1-refinement-extra
Open

Elasticsearch and stack - self managed tutorial 1 complete refinement#5636
eedugon wants to merge 9 commits intomainfrom
tutorial1-refinement-extra

Conversation

@eedugon
Copy link
Copy Markdown
Contributor

@eedugon eedugon commented Mar 26, 2026

Summary

Major and hopefully final refinement of tutorial 1.

Addressed issues:

Structure and navigation

  • Added Step 6: Consolidate {{es}} configuration to the table of contents.

Elasticsearch setup and configuration

  • Added/clarified the Elasticsearch configuration consolidation step after nodes and cluster deployment.
  • Added a clear “Install {{es}} with RPM” reference in the Step 1 intro.
  • Replaced wget downloads with curl -L -O equivalents.
  • Updated prerequisites to require curl (removed wget dependency).
  • Refined networking configuration guidance: clarified transport.host, explained http.host from automatic setup, and aligned references to official networking settings docs.
  • Added optional node.name guidance and mirrored it in the second-node flow.
  • Clarified that enrollment tokens for joining nodes are generated from an existing cluster node.
  • Improved IP-address step wording for clarity and portability.
  • Refined systemd and bootstrap-check explanations around first-node startup.

Kibana setup and enrollment

  • Added a Kibana intro link pattern aligned with Elasticsearch sections.
  • Added xpack.encryptedSavedObjects.encryptionKey setup in kibana.yml.
  • Added kibana-encryption-keys generate usage with explicit guidance on which key to use.
  • Clarified that only xpack.encryptedSavedObjects.encryptionKey is needed for this tutorial path.
  • Added production guidance to prefer Kibana keystore for sensitive settings.
  • Added official references for saved objects encryption and key rotation.
  • Improved the “Start and enroll {{kib}}” introduction and first-run purpose.
  • Clarified enrollment-token generation flow and browser prompt wording.

Fleet Server and Elastic Agent flows

  • Added Fleet server intro, aligned with official docs terminology.
  • Explicitly documented that this tutorial uses Fleet Quick Start (self-signed cert path).
  • Added official references for:
    • Quick Start vs Advanced Fleet Server setup
    • SSL/TLS configuration for self-managed Fleet Server
  • Added architecture-awareness guidance (aarch64 vs x64) in Fleet Server and Agent install steps.
  • Clarified command-handling flow: copy commands to editor first when edits are required.
  • Added a concise explanation for why --insecure is required in this tutorial path.
  • Added operational prerequisites for Fleet/Agent setup:
    • Fleet/Integrations Kibana privileges (conditional wording for non-elastic users)
    • Direct network connectivity (Agent ↔ Fleet Server ↔ Elasticsearch)
    • Kibana access to https://epr.elastic.co:443
  • Added official limitation note: only one {{agent}} per host.
  • Kept and refined the Settings verification step (Fleet Server hosts and Outputs URL validation).

Data validation and closing section

  • Expanded Step 10 intro to explain multiple data access paths:
    • solution views in {{observability}}
    • integration-provided dashboards
  • Added context note that System integration assets/dashboards are installed automatically.
  • Added host-level validation path via Observability -> Infrastructure -> Hosts.
  • Kept logs/metrics dashboard checks as concrete examples from System integration.
  • Minor wording polish in closing and next-step transitions.

Generative AI disclosure

  1. Did you use a generative AI (GenAI) tool to assist in creating this contribution?
  • Yes - Cursor in auto mode
  • No

Closes https://github.com/elastic/docs-content-internal/issues/929

@eedugon eedugon requested a review from a team as a code owner March 26, 2026 10:46
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 26, 2026

🔍 Preview links for changed docs

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 26, 2026

✅ Vale Linting Results

No issues found on modified lines!


The Vale linter checks documentation changes against the Elastic Docs style guide.

To use Vale locally or report issues, refer to Elastic style guide for Vale.


* Do you have data ready to ingest? Learn how to [bring your data to Elastic](/manage-data/ingest.md).
* Use [Elastic {{observability}}](/solutions/observability.md) to unify your logs, infrastructure metrics, uptime, and application performance data.
* Want to protect your endpoints from security threats? Try [{{elastic-sec}}](/solutions/security.md). Adding endpoint protection is just another integration that you add to the agent policy!
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Want to protect your endpoints from security threats? Try [{{elastic-sec}}](/solutions/security.md). Adding endpoint protection is just another integration that you add to the agent policy.

@eedugon can you have a look at this last line? I don't know if "just another integration" is correct

Copy link
Copy Markdown
Contributor

@wajihaparvez wajihaparvez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great @eedugon! ⭐️ Just some minor suggestions

Co-authored-by: wajihaparvez <wajiha.parvez@elastic.co>
Copy link
Copy Markdown
Collaborator

@shainaraskas shainaraskas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for bringing this back up to date. the one thing I suggest you fix is the variables in the response examples. everything else is prob nitty

The examples in this guide use RPM Package Manager (RPM) packages to install the {{stack}} {{version.stack}} components on hosts running Red Hat Enterprise Linux 8. The steps for other install methods and operating systems are similar, and can be found in the documentation linked from each section. The packages to install are:
The examples in this guide use RPM Package Manager (RPM) packages to install the {{stack}} {{version.stack}} components on hosts running Red Hat Enterprise Linux or a compatible distribution such as Rocky Linux.

For the full list of supported operating systems and platforms, refer to the [Elastic Support Matrix](https://www.elastic.co/support/matrix).
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -202,7 +241,7 @@ Before moving ahead to configure additional {{es}} nodes, you need to update the
```json
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this snippet used to use variables. we should prob edit it at least ot use the stack version and the common build type, and we can just use the most recent lucene version and not be picky about it bumping

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've cleaned it up, thanks for the tip!

I've also made it shorter, like:

    {
      "name" : "instance-2",
      "cluster_name" : "elasticsearch-demo",
      "cluster_uuid" : "<cluster-uuid>",
      "version" : {
        "number" : "{{version.stack}}",
        "build_flavor" : "default",
        "build_type" : "rpm",
        "build_snapshot" : false
      },
      "tagline" : "You Know, for Search"
    }

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is shorter representative of what users might see?

Copy link
Copy Markdown
Contributor Author

@eedugon eedugon Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, exactly, complete response is:

{
  "name" : "eedugon1",
  "cluster_name" : "elasticsearch-demo",
  "cluster_uuid" : "Yd4DGkUHQTu2ukwtiO0gQg",
  "version" : {
    "number" : "9.3.2",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "43a703737aab6baefa748bc7b69e4054926f2b2c",
    "build_date" : "2026-03-16T13:12:56.143057855Z",
    "build_snapshot" : false,
    "lucene_version" : "10.3.2",
    "minimum_wire_compatibility_version" : "8.19.0",
    "minimum_index_compatibility_version" : "8.0.0"
  },
  "tagline" : "You Know, for Search"
}

I've omitted some of the fields... I don't believe they are relevant at all for the scope of the test, which is to just check if GET / works and returns something.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can add some ... to be clearer.

@@ -525,133 +686,158 @@ Following that path avoids installing {{fleet-server}} and {{agent}} with the ce
Note also that the automatic setup used here does not configure HTTPS for browser access to {{kib}}, which is highly recommended for production environments.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

link here would be nice

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in a slightly different way.

Co-authored-by: shainaraskas <58563081+shainaraskas@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants