From 127557dcc3750e997f9df1ecc20681279e926ab3 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Wed, 3 Sep 2025 15:08:11 +0200 Subject: [PATCH 01/39] Add Elastic fundamentals --- ...rm-search-security-observability-2x_v2.png | Bin 0 -> 115789 bytes get-started/index.md | 44 ++++++------------ 2 files changed, 14 insertions(+), 30 deletions(-) create mode 100644 get-started/images/illustration-hero-platform-search-security-observability-2x_v2.png diff --git a/get-started/images/illustration-hero-platform-search-security-observability-2x_v2.png b/get-started/images/illustration-hero-platform-search-security-observability-2x_v2.png new file mode 100644 index 0000000000000000000000000000000000000000..85fe50148c1fdfed293861d4c8c718cd755cf9d5 GIT binary patch literal 115789 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 jf{+VqR*>jYi75QNVt2iE$h4$ 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

  • 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 E3!cNQJ^%m! literal 0 HcmV?d00001 diff --git a/get-started/index.md b/get-started/index.md index 661649afa4..bd273740e9 100644 --- a/get-started/index.md +++ b/get-started/index.md @@ -7,45 +7,29 @@ mapped_pages: products: - id: elasticsearch - id: elastic-stack + - id: observability + - id: security --- -# Get started -## Overview [what-is-es] +# Elastic fundamentals -[{{es}}](https://github.com/elastic/elasticsearch) is a distributed search and analytics engine, scalable data store, and vector database built on Apache Lucene. It’s optimized for speed and relevance on production-scale workloads. Use {{es}} to search, index, store, and analyze data of all shapes and sizes in near real time. [{{kib}}](https://github.com/elastic/kibana) is the graphical user interface for {{es}}. It’s a powerful tool for visualizing and analyzing your data, and for managing and monitoring the Elastic Stack. +Welcome to Elastic fundamentals! -{{es}} is the heart of the [Elastic Stack](the-stack.md). Combined with {{kib}}, it powers these Elastic solutions and use cases: +In this section, we'll walk you through the basics of what our products offer, what they do, how they can help your business, and the different ways you can set them up. You'll get a quick look at the core features and concepts, real-world use cases, and deployment options so you can get a clear sense of how everything fits together. -* **[Elasticsearch](/solutions/search.md)**: Build powerful search and RAG applications using Elasticsearch's vector database, AI toolkit, and advanced retrieval capabilities. -* **[Observability](/solutions/observability.md)**: Resolve problems with open, flexible, and unified observability powered by advanced machine learning and analytics. -* **[Security](/solutions/security.md)**: Detect, investigate, and respond to threats with AI-driven security analytics to protect your organization at scale. +You'll also find other useful information, such as how to use our docs, training resources, and a link to our glossary so you can familiarize yourself with our terminology. Whether you're exercising your options and are curious about what Elastic can offer, are just getting started, or are looking to dive deeper, this is a great place to begin. -:::{tip} -Refer to our [customer success stories](https://www.elastic.co/customers/success-stories) for concrete examples of how Elastic is used in real-world scenarios. -::: - -## Choose your deployment type +## What is Elastic? [what-is-es] -:::{include} /deploy-manage/_snippets/deployment-options-overview.md +:::{image} /images/illustration-hero-platform-search-security-observability-2x_v2.png +:alt: The Elastic platform ::: -## Explore the solutions - -Elasticsearch supports diverse use cases. Select a solution and follow its dedicated getting-started guide: - -| | | -| :---: | --- | -| ![elasticsearch](images/64x64_Color_elasticsearch-logo-color-64px.png "elasticsearch =50%") | **Elasticsearch**
    Create seamless search experiences for apps, websites, or workplaces.

    [**Get started →**](../solutions/search/get-started.md)
    | -| ![observability](images/64x64_Color_observability-logo-color-64px.png "observability =50%") | **Observability**
    Monitor logs, metrics, and traces to gain insight into your systems.

    [**Get started →**](../solutions/observability/get-started.md)
    | -| ![security](images/64x64_Color_security-logo-color-64px.png "security =50%") | **Security**
    Monitor logs, metrics, and traces to gain insight into your systems.

    [**Get started →**](../solutions/security/get-started.md)
    | - -## Next steps +Elastic provides an open source search, analytics, and AI platform, and out-of-the-box solutions for observability and security. The Search AI platform combines the power of search and generative AI to provide near real-time search and analysis with relevance to reduce your time to value. -To learn more about our products and solutions, check out: +Elastic offers three main solutions or types ofprojects: -- [{{es}} and {{kib}}](introduction.md), the core components of the {{stack}}. - - [The stack](/get-started/the-stack.md) to understand the relationship between core and optional components of an Elastic deployment. -- [The out-of-the-box solutions and use cases](/solutions/index.md) that Elastic supports. -- [Deploying Elastic](./deployment-options.md) for your use case. -- [Versioning and availability](./versioning-availability.md) in Elastic deployments. +* [{{es}}](/solutions/search.md): Build powerful search and RAG applications using Elasticsearch's vector database, AI toolkit, and advanced retrieval capabilities. +* [Elastic {{observability}}](/solutions/observability.md): Gain comprehensive visibility into applications, infrastructure, and user experience through logs, metrics, traces, and other telemetry data, all in a single interface. +* [{{elastic-sec}}](/solutions/security.md): Combine SIEM, endpoint security, and cloud security to provide comprehensive tools for threat detection and prevention, investigation, and response. From 06af8d70ba5a20030e12276877fa003252c6d3ac Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Wed, 3 Sep 2025 15:16:54 +0200 Subject: [PATCH 02/39] Add Solutions topic --- get-started/the-stack.md | 103 +++++++++++++++++---------------------- 1 file changed, 46 insertions(+), 57 deletions(-) diff --git a/get-started/the-stack.md b/get-started/the-stack.md index 842dfc7402..7a8a0cddb0 100644 --- a/get-started/the-stack.md +++ b/get-started/the-stack.md @@ -1,4 +1,5 @@ --- +navigation_title: Solutions mapped_pages: - https://www.elastic.co/guide/en/starting-with-the-elasticsearch-platform-and-its-solutions/current/stack-components.html - https://www.elastic.co/guide/en/kibana/current/introduction.html @@ -10,92 +11,80 @@ products: - id: kibana --- -# The {{stack}} +# Solutions and the Search AI platform -This section provides an overview of the {{stack}} and its components. +Let's take a closer look at each of our three solutions, their use cases and core concepts so you can decide which product best suits your business needs. -$$$kibana-navigation-search$$$ +- Use [{{es}}](/solutions/search.md) if you want to build powerful, scalable searches to quickly search, analyze, and visualize large amounts of data for real-time insights. -## An overview of the {{stack}} [stack-components] +- Use [Elastic {{observability}}](/solutions/observability.md) if you want to monitor the health and performance of your IT environments and applications or send telemetry data. -What is the {{stack}}? It’s a fast and highly scalable set of components — {{es}}, {{kib}}, {{beats}}, {{ls}}, and others — that together enable you to securely take data from any source, in any format, and then search, analyze, and visualize it. +- Use [{{elastic-sec}}](/solutions/security.md) if you want to leverage search and analytics to monitor data, detect anomalous activity, and protect against cyber threats in real time. -The products in the {{es}} are designed to be used together and releases are synchronized to simplify the installation and upgrade process. +You can also check out our [customer success stories](https://www.elastic.co/customers/success-stories) to learn how various organizations are utilizing our products for their specific business needs. -You have many options for deploying the {{stack}} to suit your needs. You can deploy it on your own hardware, in the cloud, or use a managed service on {{ecloud}}. +## Search AI platform overview -:::{tip} -To learn how to deploy {{es}}, {{kib}}, and supporting orchestration technologies, refer to [](/deploy-manage/index.md). To learn how to deploy additional ingest and consume components, refer to the documentation for the component. -::: +Elastic's Search AI platform is built around the {{stack}}, a group of open source products and components designed for ingesting, storing, searching, analyzing, and visualizing data. -![Components of the Elastic Stack](/get-started/images/stack-components-diagram.svg) +Continue reading to learn how these components work together. -### Ingest [_ingest] +### Ingest data from a wide variety of sources -Elastic provides a number of components that ingest data. Collect and ship logs, metrics, and other types of data with {{agent}} or {{beats}}. Manage your {{agents}} with {{fleet}}. Collect detailed performance information with Elastic APM. +**Ingestion** is the process of collecting data from your sources and sending it to {{es}}. The Elastic platform is engineered for flexibility, designed to ingest data from a wide variety of sources. -If you want to transform or enrich data before it’s stored, you can use {{es}} ingest pipelines or {{ls}}. +#### Elasticsearch -Trying to decide which ingest component to use? Refer to [Adding data to {{es}}](/manage-data/ingest.md) to help you decide. +When building custom search experiences or indexing general data, you have several direct and flexible ingestion options: -#### {{fleet}} and {{agent}} [stack-components-agent] +* **Native APIs and language clients:** Index any JSON document directly using the {{es}} REST API or the official clients for languages like Python, Java, Go, and more. +* **Web crawler:** Ingest content from public or private websites to make them searchable. +* **Enterprise connectors:** Use pre-built connectors to sync data from external content sources like SharePoint, Confluence, Jira, and databases like MongoDB or PostgreSQL into {{es}}. -{{agent}} is a single, unified way to add monitoring for logs, metrics, and other types of data to a host. It can also protect hosts from security threats, query data from operating systems, forward data from remote services or hardware, and more. Each agent has a single policy to which you can add integrations for new data sources, security protections, and more. +#### Elastic Observability -{{fleet}} enables you to centrally manage {{agents}} and their policies. Use {{fleet}} to monitor the state of all your {{agents}}, manage agent policies, and upgrade {{agent}} binaries or integrations. +For full-stack observability, ingest logs, metrics, traces, and profiles using these OpenTelemetry-native methods: -[Learn more about {{fleet}} and {{agent}}](/reference/fleet/index.md). +* **{{edot}}:** Use Elastic's supported OpenTelemetry SDKs for custom application instrumentation and the Collector for vendor-neutral infrastructure telemetry. +* **{{agent}}:** A single agent to collect infrastructure logs and metrics from hosts, containers, and cloud services using pre-built integrations. +* **APM Agents:** Provide streamlined, out-of-the-box auto-instrumentation of your applications to capture detailed traces and performance metrics. +* **{{ls}} and {{beats}}:** Leverage these battle-tested tools for advanced log processing pipelines (Logstash) and lightweight data shipping (Beats). -#### APM [stack-components-apm] +#### Elastic Security -Elastic APM is an application performance monitoring system built on the {{stack}}. It allows you to monitor software services and applications in real-time, by collecting detailed performance information on response time for incoming requests, database queries, calls to caches, external HTTP requests, and more. This makes it easy to pinpoint and fix performance problems quickly. [Learn more about APM](/solutions/observability/apm/index.md). +**{{agent}}** is the core ingestion method for security data. As a single, unified agent, it's purpose-built to collect the rich data needed for modern threat detection and response, including: -#### {{beats}} [stack-components-beats] +* **Endpoint Security:** Collects detailed event data for threat prevention, detection (EDR), and response directly from your endpoints. +* **System & Audit Logs:** Gathers security-relevant logs and audit trails from hosts across your environment. +* **Network Activity:** Captures network data to help detect intrusions and suspicious behavior. -{{beats}} are data shippers that you install as agents on your servers to send operational data to {{es}}. {{beats}} are available for many standard observability data scenarios, including audit data, log files and journals, cloud data, availability, metrics, network traffic, and Windows event logs. [Learn more about {{beats}}](beats://reference/index.md). +Fleets of Elastic Agents are managed centrally, simplifying deployment and policy enforcement across thousands of hosts. -#### {{es}} ingest pipelines [stack-components-ingest-pipelines] +### Store your data -Ingest pipelines let you perform common transformations on your data before indexing them into {{es}}. You can configure one or more "processor" tasks to run sequentially, making specific changes to your documents before storing them in {{es}}. [Learn more about ingest pipelines](/manage-data/ingest/transform-enrich/ingest-pipelines.md). +{{es}} is the heart of the Elastic Stack, functioning as the central place to store and search your data. It stores data as **JSON documents**, which are structured data objects. These documents are organized into **indices**, which you can think of as collections of similar documents. -#### {{ls}} [stack-components-logstash] +Elasticsearch is built to be a resilient and scalable distributed system. It runs as a **cluster** of one or more servers, called **nodes**. When you add data to an index, it's divided into pieces called **shards**, which are spread across the various nodes in the cluster. This architecture allows Elasticsearch to handle large volumes of data and ensures that your data remains available even if a node fails. -{{ls}} is a data collection engine with real-time pipelining capabilities. It can dynamically unify data from disparate sources and normalize the data into destinations of your choice. {{ls}} supports a broad array of input, filter, and output plugins, with many native codecs further simplifying the ingestion process. [Learn more about {{ls}}](logstash://reference/index.md). +Learn more in [The {{es}} data store](/manage-data/data-store.md) +### Visualize and query your data -### Store [_store] +While {{es}} stores your data, **Kibana** is the user interface where you can explore, visualize, and manage it. It provides a window into your data, allowing you to quickly gain insights and understand trends. -#### {{es}} [stack-components-elasticsearch] +With Kibana, you can: -{{es}} is the distributed search and analytics engine at the heart of the {{stack}}. It provides near real-time search and analytics for all types of data. Whether you have structured or unstructured text, numerical data, or geospatial data, {{es}} can efficiently store and index it in a way that supports fast searches. {{es}} provides a REST API that enables you to store data in {{es}} and retrieve it. The REST API also provides access to {{es}}'s search and analytics capabilities. [Learn more about {{es}}](/get-started/index.md). +* Use **Discover** to interactively search and filter your raw data. +* Build custom **visualizations** like charts, graphs, and metrics with tools like **Lens**, which offers a drag-and-drop experience. +* Assemble your visualizations into interactive **dashboards** to get a comprehensive overview of your information. +* Analyze geospatial data using the powerful **Maps** application. +At the same time, Kibana works as the user interface of all Elastic solutions, like Elastic Security and Elastic Observability, providing ways of configuring Elastic to suit your needs and offering interactive guidance. -### Consume [_consume] +A **query** is a question you ask about your data, and Elastic provides several powerful languages to do so. You can query data directly through the API or through the user interface in Kibana. -Use {{kib}} to query and visualize the data that’s stored in {{es}}. Or, use the {{es}} clients to access data in {{es}} directly from common programming languages. +* **Kibana Query Language (KQL)** is the text-based language used in the **Discover** search bar, perfect for interactive filtering and exploration. +* **Elasticsearch Query Language (ES|QL)** is a powerful, modern query language that uses a familiar pipe-based syntax to transform and aggregate your data at search time. +* **Event Query Language (EQL)** is a specialized language designed to query sequences of events, which is particularly useful for security analytics and threat hunting. -#### {{kib}} [stack-components-kibana] - -{{kib}} is the tool to harness your {{es}} data and to manage the {{stack}}. Use it to analyze and visualize the data that’s stored in {{es}}. {{kib}} is also the home for the Search, Observability and Security solutions. [Learn more about {{kib}}](/explore-analyze/index.md). - -#### {{es}} clients [stack-components-elasticsearch-clients] - -The clients provide a convenient mechanism to manage API requests and responses to and from {{es}} from popular languages such as Java, Ruby, Go, Python, and others. Both official and community contributed clients are available. [Learn more about the {{es}} clients](/reference/elasticsearch-clients/index.md). - -## Version compatibility -```{applies_to} -deployment: - self: -``` - -:::{include} /deploy-manage/deploy/_snippets/stack-version-compatibility.md -::: - -## Installation order -```{applies_to} -deployment: - self: -``` - -:::{include} /deploy-manage/deploy/_snippets/installation-order.md -::: +Learn more in [Explore and analyze data with Kibana](/explore-analyze/index.md) From c8258498b9be7dc46b75db137fdd6d1cdd661df9 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Wed, 3 Sep 2025 16:20:05 +0200 Subject: [PATCH 03/39] Additional docs --- extend/index.md | 60 ++++++-- get-started/deployment-options.md | 18 ++- get-started/next-steps-resources.md | 176 +++++++++++++++++++++ get-started/the-stack.md | 6 + get-started/toc.yml | 3 +- get-started/versioning-availability.md | 205 +++---------------------- 6 files changed, 266 insertions(+), 202 deletions(-) create mode 100644 get-started/next-steps-resources.md diff --git a/extend/index.md b/extend/index.md index 110f8b8de8..c821d9e818 100644 --- a/extend/index.md +++ b/extend/index.md @@ -1,26 +1,58 @@ -# Extend and contribute +# Extend the Elastic platform -This section contains information on how to extend or contribute to our various products. +You can extend and build on the Elastic Platform in several ways. Whether you need to get data into Elasticsearch, add new functionality, edit the documentation, or build a custom application, here is an overview of the primary development paths to help you choose the right one for your project. -## Contributing to Elastic documentation +There are two main approaches to extending Elastic: creating standardized Integrations for data ingestion or building custom solutions by developing directly against our REST APIs. + +## Path 1: Create an Elastic Integration + +If your primary goal is to bring a new data source into the Elastic Stack in a standardized, reusable way, building an Elastic Integration is the best path. Integrations are pre-packaged assets that make it simple for users to collect and process data from a specific service or platform. + +This approach is ideal for shipping data, logs, metrics, and traces. By building an integration, you contribute to the ever-growing ecosystem that both you and the community can benefit from. + +* Integrations are built on a consistent framework, providing users with a turnkey experience, including dashboards, visualizations, and alerts. +* **`elastic-package`** is a command-line tool that is your primary interface for creating, testing, and packaging your integration. It scaffolds the entire project structure, letting you focus on the logic for data collection. +* Your integration will run on the Elastic Agent, our single, unified agent for data shipping. + +**When to choose this path** -You can contribute to the Elastic documentation in several ways. +* You want to ingest data from a new data source, like a database, API, or log file. +* You want to provide a standardized, out-of-the-box experience for other users. +* You need to process and structure data according to the Elastic Common Schema (ECS). -Refer to [Contribute to Elastic documentation](./contribute/index.md) for an overview. +**Ready to start?** Head over to the [Create an Integration](/extend/integrations) guide. -## Contributing to Elastic Projects +## Path 2: Develop against the REST APIs -You can contribute to various projects, including: +For complete control and custom development, you can interact directly with Elastic's REST APIs. This path is perfect for building custom applications, automating complex workflows, and integrating Elastic into your existing infrastructure in a bespoke way. For example, you can programmatically manage your cluster, run complex queries, manage security settings, and interact with Kibana. -- [Kibana](kibana://extend/index.md): Enhance our data visualization platform by contributing to Kibana. -- [Logstash](logstash://extend/index.md): Help us improve the data processing pipeline with your contributions to Logstash. -- [Beats](beats://extend/index.md): Add new features or beats to our lightweight data shippers. +* The APIs provide direct access to the core capabilities of Elasticsearch and Kibana. If you can do it in the UI, you can automate it with the API. +* Elastic provides and supports official clients for popular languages like Java, Go, .NET, PHP, Python, Ruby, and JavaScript. These clients simplify interacting with the API, handling requests, and processing responses. +* The APIs are secured using role-based access control (RBAC). You can create API keys or use bearer tokens with fine-grained permissions to ensure your interactions are safe. -## Creating Integrations +### Elastic APIs at a glance -Extend the capabilities of Elastic by creating integrations that connect Elastic products with other tools and systems. Visit our [Integrations Guide](integrations://extend/index.md) to get started. +* Use the Elasticsearch APIs to: -## Elasticsearch Plugins + * Create, read, update, and delete documents. + * Perform everything from simple keyword searches to complex analytical aggregations. + * Monitor cluster health, manage nodes, and configure settings. + * Manage users, roles, and API keys. -Develop custom plugins to add new functionalities to Elasticsearch. Check out our [Elasticsearch Plugins Development Guide](elasticsearch://extend/index.md) for detailed instructions and best practices. +* Use the Kibana APIs to programmatically control the Kibana front-end and its objects: + + * Create and manage dashboards, visualizations, and saved searches. + * Automate the organization of content within Kibana. + * Create and manage rules for detecting conditions within your data. + +**When to choose this path** + +* You are building a custom application that uses Elasticsearch as its backend. +* You need to automate administrative tasks, such as creating users or managing index lifecycle policies. +* You are integrating Elastic's search and analytics capabilities into another platform. + +Ready to get started? Explore the [Elasticsearch API Reference](/reference/elasticsearch/rest-apis) and the [Kibana API Reference](https://www.elastic.co/docs/api/doc/kibana/). + +## Contributing to Elastic documentation +You can contribute to the Elastic documentation in several ways. Refer to [Contribute to Elastic documentation](./contribute/index.md) for an overview. diff --git a/get-started/deployment-options.md b/get-started/deployment-options.md index b6dcdf4e5b..26e13f57b6 100644 --- a/get-started/deployment-options.md +++ b/get-started/deployment-options.md @@ -1,17 +1,21 @@ --- +navigation_title: Deployment options mapped_pages: - https://www.elastic.co/guide/en/elasticsearch/reference/current/elasticsearch-intro-deploy.html products: - id: elasticsearch --- -# Deployment options [elasticsearch-intro-deploy] +# Deployment options -Use this page for a quick overview of your options for deploying Elastic. +You can run Elastic on virtually any infrastructure, allowing you to choose the model that best fits your operational needs. -:::{include} /deploy-manage/_snippets/deployment-options-overview.md -::: +These are the most common deployment types and their main features: -:::{tip} -Refer to [](/deploy-manage/index.md) for detailed information and guidance on choosing the right deployment for your needs. -::: +* **{{serverless-full}}**: This fully managed SaaS offering abstracts away all underlying infrastructure, automatically and seamlessly scaling resources to meet your workload demands. It's designed for operational simplicity, with usage-based pricing that allows you to focus on your data without managing clusters. +* **{{ech}}**: This managed SaaS offering provides you with a dedicated cluster on your choice of cloud provider (AWS, GCP, or Azure). It offers a high degree of control over your cluster's configuration, allowing you to fine-tune nodes, hardware, and versions to meet specific performance and architectural requirements. +* **Self-managed**: This approach allows you to install, operate, and maintain the Elastic Stack on your own hardware, whether on-premises or in your private cloud. It provides maximum control over your environment. +* **{{eck}} (ECK)**: This extends Kubernetes by providing an official operator for deploying and managing Elastic products. It's ideal if you want to run and orchestrate Elastic on your own Kubernetes platform. +* **{{ece}} (ECE):** This Elastic self-managed offering allows you to provision, manage, and monitor Elasticsearch and Kibana at any scale, on any infrastructure, while managing everything from a single console. It's ideal if you want to use the full Elastic Stack while maintaining control over your data and infrastructure. + +For more information on Deployment modes, refer to [Detailed deployment comparison](/deploy-manage/deploy/deployment-comparison.md). \ No newline at end of file diff --git a/get-started/next-steps-resources.md b/get-started/next-steps-resources.md new file mode 100644 index 0000000000..4a12224439 --- /dev/null +++ b/get-started/next-steps-resources.md @@ -0,0 +1,176 @@ +# Next steps & resources + +We've designed our docs to help you find the information you need quickly and efficiently, whether you're a new user or an experienced professional. + +Our documentation is organized to guide you through your journey with Elastic, from learning the basics to deploying and managing complex solutions. + +Here is a detailed breakdown of the documentation structure: + +* **Elastic fundamentals**: Understand the basics of Elasticsearch and the Elastic Stack, deployment options, and key use cases. +* **Solutions and use cases**: Learn use cases, evaluate, and implement Elastic's solutions: Observability, Search, and Security. +* **Manage data**: Learn about data store primitives, ingestion and enrichment, managing the data lifecycle, and migrating data. +* **Explore and analyze**: Get value from data through querying, visualization, machine learning, and alerting. +* **Deploy and manage**: Deploy and manage production-ready clusters. Covers deployment options and maintenance tasks. +* **Manage your Cloud account**: A dedicated section for user-facing cloud account tasks like resetting passwords. +* **Troubleshoot**: Identify and resolve problems. +* **Extend and contribute**: How to contribute to or integrate with Elastic, from open source to plugins to integrations. +* **Release notes**: Contains release notes and changelogs for each new release. +* **Reference**: Reference material for core tasks and manuals for optional products. + +### Applicability badges + +Because Elastic products can be deployed in different ways (like on Elastic Cloud, in your own data center, or with our Serverless offering) and have different versions, not all documentation applies to every user. To help you quickly see if a topic is relevant to your situation, we use **applicability badges**. + +These badges appear at the top of a page or section and tell you which products, deployment models, and versions the content applies to. They also indicate the maturity level of a feature, such as **beta**, **technical preview**, or **generally available (GA)**. This system ensures that you can identify content specific to your environment and version. + +### Page options + +On each documentation page, you'll find several links that allow you to interact with the content: + +* **View as Markdown**: This link shows you the raw Markdown source code for the page you're viewing. This can be helpful if you want to reuse the source or feed the document to AI. +* **Edit this page**: Selecting this link will take you directly to the page's source file in our GitHub repository. From there, you can propose edits, which our team will review. +* **Report an issue**: If you've found a problem, like a typo, a technical error, or confusing content, but don't want to edit the page yourself, use this link. It will open a new issue in our GitHub repository, pre-filled with information about the page you were on, so you can describe the problem in detail. + +### How to contribute + +We value contributions from our community. For detailed instructions on how to contribute to both the main documentation and the API references, refer to our [contribution guide](https://www.elastic.co/docs/extend/contribute/). + +### Versioned documentation + +Starting with Elastic Stack 9.0, Elastic no longer publishes separate documentation sets for each minor release. Instead, all changes in the 9.x series are included in a single, continuously updated documentation set. + +This approach helps: + +* Reduce duplicate pages. +* Show the full history and context of a feature. +* Simplify search and navigation. + +We clearly mark content added or changed in a specific version using availability badges. The availability badges appear in page headers, section headers, and inline. + +#### Elastic Stack example + +{applies_to}`stack: ga 9.1.0` + +This means the feature is: + +* Available on Elastic Stack +* Generally Available (GA) +* Introduced in version 9.1.0 + +#### Serverless example + +{applies_to}`serverless: ga` {applies_to}`security: beta` + +This means the feature is: + +* Generally Available for Elasticsearch Serverless projects +* Beta for Elastic Security Serverless projects + +#### Elastic Cloud Enterprise example + +{applies_to}`ece: deprecated 4.1.0` + +This means the feature is: + +* Available on Elastic Cloud Enterprise +* Deprecated starting in version 4.1.0 + +:::{tip} +Want to learn more about how availability badges are used? Check the [Elastic Docs syntax guide](https://elastic.github.io/docs-builder/syntax/applies/). +::: + +### Accessing previous versions + +You can browse documentation for different versions of our products in two ways: + +* **Version menu:** On most documentation pages, you'll find a version menu. Clicking this menu allows you to switch to a different version of the documentation for the content you are currently viewing. +* **All documentation versions page:** For a complete list of all available documentation versions for all Elastic products, you can visit the [All documentation versions](/versions) page. + +### Find docs for your product version + +Find the documentation for your Elastic product versions or releases. + +#### Elastic Stack product versions + +| Product | Version | +| ----- | ----- | +| [Elasticsearch](https://www.elastic.co/docs/release-notes/elasticsearch) | 9.0.0 and later | +| [Kibana](https://www.elastic.co/docs/release-notes/kibana) | 9.0.0 and later | +| [Fleet and Elastic Agent](https://www.elastic.co/docs/release-notes/fleet) | 9.0.0 and later | +| [Logstash](https://www.elastic.co/docs/release-notes/logstash) | 9.0.0 and later | +| [Beats](https://www.elastic.co/docs/release-notes/beats) | 9.0.0 and later | +| [Elastic Observability](https://www.elastic.co/docs/release-notes/observability) | 9.0.0 and later | +| [Elastic APM](https://www.elastic.co/docs/release-notes/apm) | 9.0.0 and later | +| [Elastic Security](https://www.elastic.co/docs/release-notes/security) | 9.0.0 and later | + +#### Deployment type versions or releases + +| Product | Version or release | +| ----- | ----- | +| All [Elastic Cloud Serverless](https://www.elastic.co/docs/release-notes/cloud-serverless) project types | All releases | +| [Elastic Cloud Hosted](https://www.elastic.co/docs/release-notes/cloud-hosted) | All releases for January 2025 and later | +| [Elastic Cloud Enterprise](https://www.elastic.co/docs/release-notes/cloud-enterprise) | 4.0.0 and later | +| [Elastic Cloud on Kubernetes](https://www.elastic.co/docs/release-notes/cloud-on-k8s) | 3.0.0 and later | + +#### Schema, library, and tool versions + +| Product | Version or release | +| ----- | ----- | +| [Elasticsearch Java Client](https://www.elastic.co/docs/release-notes/elasticsearch/clients/java) | 9.0.0 and later | +| [Elasticsearch JavaScript Client](https://www.elastic.co/docs/release-notes/elasticsearch/clients/javascript) | 9.0.0 and later | +| [Elasticsearch .NET Client](https://www.elastic.co/docs/release-notes/elasticsearch/clients/dotnet) | 9.0.0 and later | +| [Elasticsearch PHP Client](https://www.elastic.co/docs/release-notes/elasticsearch/clients/php) | 9.0.0 and later | +| [Elasticsearch Python Client](https://www.elastic.co/docs/release-notes/elasticsearch/clients/python) | 9.0.0 and later | +| [Elasticsearch Ruby Client](https://www.elastic.co/docs/release-notes/elasticsearch/clients/ruby) | 9.0.0 and later | +| [Elastic Common Schema (ECS)](https://www.elastic.co/docs/release-notes/ecs) | 9.0.0 and later | +| [ECS Logging .NET library](https://www.elastic.co/docs/reference/ecs/logging/dotnet) | 8.18.1 and later | +| [ECS Logging Go (Logrus) library](https://www.elastic.co/docs/reference/ecs/logging/go-logrus) | 1.0.0 and later | +| [ECS Logging Go (Zap) library](https://www.elastic.co/docs/reference/ecs/logging/go-zap) | 1.0.3 and later | +| [ECS Logging Go (Zerolog) library](https://www.elastic.co/docs/reference/ecs/logging/go-zerolog) | 0.2.0 and later | +| [ECS Logging Java library](https://www.elastic.co/docs/reference/ecs/logging/java) | 1.x and later | +| [ECS Logging Node.js library](https://www.elastic.co/docs/reference/ecs/logging/nodejs) | 1.5.3 and later | +| [ECS Logging PHP library](https://www.elastic.co/docs/reference/ecs/logging/php) | 2.0.0 and later | +| [ECS Logging Python library](https://www.elastic.co/docs/reference/ecs/logging/python) | 2.2.0 and later | +| [ECS Logging Ruby library](https://www.elastic.co/docs/reference/ecs/logging/ruby) | 1.0.0 and later | +| [Elasticsearch for Apache Hadoop](https://www.elastic.co/docs/release-notes/elasticsearch-hadoop) | 9.0.0 and later | +| [Elasticsearch Curator](https://www.elastic.co/docs/reference/elasticsearch/curator) | 8.0.0 and later | +| [Elastic Cloud Control (ECCTL)](https://www.elastic.co/docs/release-notes/ecctl) | 1.14.0 and later | +| [Elastic Serverless Forwarder for AWS](https://www.elastic.co/docs/reference/aws-forwarder) | 1.20.1 and later | +| [Elastic integrations](https://www.elastic.co/docs/reference/integrations/all_integrations) | All versions | +| [Search UI JavaScript library](https://www.elastic.co/docs/reference/search-ui) | 1.24.0 and later | + +#### APM agent and tool versions + +| Product | Version | +| ----- | ----- | +| [Elastic Distribution of OpenTelemetry Android](https://www.elastic.co/docs/release-notes/edot/sdks/android) | 0.1.0 and later | +| [Elastic Distribution of OpenTelemetry iOS](https://www.elastic.co/docs/release-notes/edot/sdks/ios) | 1.0.0 and later | +| [Elastic Distribution of OpenTelemetry Java](https://www.elastic.co/docs/release-notes/edot/sdks/java) | 1.0.0 and later | +| [Elastic Distribution of OpenTelemetry .NET](https://www.elastic.co/docs/release-notes/edot/sdks/dotnet) | 1.0.0 and later | +| [Elastic Distribution of OpenTelemetry Node.js](https://www.elastic.co/docs/release-notes/edot/sdks/node) | 0.1.0 and later | +| [Elastic Distribution of OpenTelemetry Python](https://www.elastic.co/docs/release-notes/edot/sdks/python) | 0.1.0 and later | +| [Elastic Distribution of OpenTelemetry PHP](https://www.elastic.co/docs/release-notes/edot/sdks/php) | 0.1.0 and later | +| [Elastic APM .NET Agent](https://www.elastic.co/docs/release-notes/apm/agents/dotnet) | 1.0.0 and later | +| [Elastic APM Go Agent](https://www.elastic.co/docs/release-notes/apm/agents/go) | 2.0.0 and later | +| [Elastic APM Java Agent](https://www.elastic.co/docs/release-notes/apm/agents/java) | 1.0.0 and later | +| [Elastic APM Node.js Agent](https://www.elastic.co/docs/release-notes/apm/agents/nodejs) | 4.0.0 and later | +| [Elastic APM PHP Agent](https://www.elastic.co/docs/release-notes/apm/agents/php) | 1.0.0 and later | +| [Elastic APM Python Agent](https://www.elastic.co/docs/release-notes/apm/agents/python) | 6.0.0 and later | +| [Elastic APM Ruby Agent](https://www.elastic.co/docs/release-notes/apm/agents/ruby) | 4.0.0 and later | +| [Elastic APM Real User Monitoring JavaScript Agent](https://www.elastic.co/docs/release-notes/apm/agents/rum-js) | 5.0.0 and later | +| [Elastic APM AWS Lambda extension](https://www.elastic.co/docs/release-notes/apm/aws-lambda/release-notes) | 1.0.0 and later | +| [Elastic APM Attacher for Kubernetes](https://www.elastic.co/docs/reference/apm/k8s-attacher) | 1.1.3 | + +## Training resources + +Whether you are just getting started with Elastic, an expert, or simply want to expand your knowledge, we provide role-based and solution-based training to empower you to get the most out of our solutions. You can even receive accreditation for completing our courses. + +Ready to dive in? Check out [https://www.elastic.co/training](https://www.elastic.co/training) to browse our virtual and on-demand training courses. If you're not sure where to start, check out the [Elasticsearch Engineer](https://www.elastic.co/training/elasticsearch-engineer) course. + +To explore particular, more granular facets of the Elastic Stack, check out our [demo gallery](https://www.elastic.co/demo-gallery). You can filter by solution or subject area and choose the training style that best suits you. + +If you prefer a deep dive where you can learn at your own pace, check out our six-part [Beginner's Crash Course to Elastic Stack](https://www.youtube.com/playlist?list=PL_mJOmq4zsHZYAyK606y7wjQtC0aoE6Es) on YouTube. + +## Glossary + +To help you understand the terminology used throughout our documentation, we provide a [glossary of common Elastic terms](get-started/glossary.md). This is a great resource for new users or anyone looking to clarify the meaning of a specific term. \ No newline at end of file diff --git a/get-started/the-stack.md b/get-started/the-stack.md index 7a8a0cddb0..c7308784ea 100644 --- a/get-started/the-stack.md +++ b/get-started/the-stack.md @@ -88,3 +88,9 @@ A **query** is a question you ask about your data, and Elastic provides several * **Event Query Language (EQL)** is a specialized language designed to query sequences of events, which is particularly useful for security analytics and threat hunting. Learn more in [Explore and analyze data with Kibana](/explore-analyze/index.md) + +### Use the APIs to automate operations and management + +Nearly every aspect of Elasticsearch can be configured and managed programmatically through its extensive REST APIs. This allows you to automate repetitive tasks and integrate Elastic management into your existing operational workflows. You can use the APIs to manage indices, update cluster settings, run complex queries, and configure security. + +The **Console** tool in Kibana provides an interactive way to send requests directly to the Elasticsearch API and view the responses. For secure, automated access, you can create and manage **API keys** to authenticate your scripts and applications. This API-first approach is fundamental to enabling infrastructure-as-code practices and managing your deployments at scale. \ No newline at end of file diff --git a/get-started/toc.yml b/get-started/toc.yml index b5cae382dd..a80c831227 100644 --- a/get-started/toc.yml +++ b/get-started/toc.yml @@ -4,4 +4,5 @@ toc: - file: introduction.md - file: the-stack.md - file: deployment-options.md - - file: versioning-availability.md \ No newline at end of file + - file: versioning-availability.md + - file: next-steps-resources.md \ No newline at end of file diff --git a/get-started/versioning-availability.md b/get-started/versioning-availability.md index 6c1b2b5157..7e6863724a 100644 --- a/get-started/versioning-availability.md +++ b/get-started/versioning-availability.md @@ -7,208 +7,53 @@ products: description: Learn how Elastic handles versioning and feature availability in the docs. Find the product versions that are supported, how to read availability badges, and... --- -# Versioning and availability in Elastic Docs +# Versioning and availability -Learn how Elastic Docs handles versioning, feature availability, and how to find the right documentation for your deployment type and product version. Find answers to common questions about the Elastic Stack versioning and confidently navigate our continuously updated documentation. +Learn how Elastic products are versioned, the lifecycle of features, and how to find the right documentation for your deployment type and product version. Find answers to common questions about the versioning and confidently navigate our continuously updated documentation. -## Frequently asked questions +## Understanding versioning -### Where can I find documentation for the latest version of the {{stack}}? +Each deployment type has a unique versioning strategy. For example, Serverless and ECH have releases that are distinguished by their date. Because Serverless is automatically updated, you always have the latest updates. -You’re in the right place! All documentation for Elastic Stack 9.0.0 and later is available at [elastic.co/docs](https://www.elastic.co/docs), including the latest {{version.stack| M.M}} version and any future versions in the 9.x series. - -Need docs for an earlier version? Go to [elastic.co/guide](https://www.elastic.co/guide). - -### Why doesn't Elastic have separate documentation for each version? - -Starting with {{stack}} 9.0.0, Elastic no longer publishes separate documentation sets for each minor release. Instead, all changes in the 9.x series are included in a single, continuously updated documentation set. - -This approach helps: -* Reduce duplicate pages -* Show the full history and context of a feature -* Simplify search and navigation - -### How do I know content was added in a specific version? - -We clearly mark content added or changed in a specific version using availability badges. The availability badges appear in page headers, section headers, and inline. - -#### Elastic Stack example - -```{applies_to} -stack: ga 9.1 -``` - -This means the feature is: -* Available on Elastic Stack -* Generally Available (GA) -* Introduced in version 9.1.0 - -#### Serverless example - -```{applies_to} -serverless: - security: beta - elasticsearch: ga -``` - -This means the feature is: -* Generally Available for {{es}} Serverless projects -* Beta for {{elastic-sec}} Serverless projects - -#### Elastic Cloud Enterprise example - -```{applies_to} -deployment: - ece: deprecated 4.1.0 -``` - -This means the feature is: -* Available on {{ece}} -* Deprecated starting in version 4.1.0 - -:::{tip} -Want to learn more about how availability badges are used? Check the [Elastic Docs syntax guide](https://elastic.github.io/docs-builder/syntax/applies/). -::: - -### What if I'm using a version earlier than {{stack}} 9.0.0? - -Documentation for {{stack}} 8.19.0 and earlier is available at [elastic.co/guide](https://www.elastic.co/guide). - -If a previous version for a specific page exists, you can select the version from the dropdown in the page sidebar. - -### How often is the documentation updated? - -We frequently update Elastic Docs to reflect the following: -* Minor versions, such as {{stack}} 9.1.0 -* Patch-level updates, such as {{stack}} 9.1.1 -* Ongoing improvements to clarify and expand guidance - -To learn what's changed, check the [release notes](/release-notes/index.md) for each Elastic product. - -### How do I know what the current {{stack}} version is? - -To make sure you're always viewing the most up-to-date and relevant documentation, the version dropdown at the top of each page shows the most recent 9.x release. For example, 9.0+. - -## Understanding {{stack}} versioning - -{{stack}} uses semantic versioning in the `X.Y.Z` format, such as `9.0.0`. +The Elastic Stack products use semantic versioning in the `X.Y.Z` format, such as `9.0.0`. | Version | Description | -|-------|-------------| -| **Major (X)** | Indicates significant changes, such as new features, breaking changes, and major enhancements. Upgrading to a new major version may require changes to your existing setup and configurations. | -| **Minor (Y)** | Introduces new features and improvements, while maintaining backward compatibility with the previous minor versions within the same major version. Upgrading to a new minor version should not require any changes to your existing setup. | -| **Patch (Z)** | Contains bug fixes and security updates, without introducing new features or breaking changes. Upgrading to a new patch version should be seamless and not require any changes to your existing setup. | +| ----- | ----- | +| Major (X) | Indicates significant changes, such as new features, breaking changes, and major enhancements. Upgrading to a new major version may require changes to your existing setup and configurations. | +| Minor (Y) | Introduces new features and improvements, while maintaining backward compatibility with the previous minor versions within the same major version. Upgrading to a new minor version should not require any changes to your existing setup. | +| Patch (Z) | Contains bug fixes and security updates, without introducing new features or breaking changes. Upgrading to a new patch version should be seamless and not require any changes to your existing setup. | -Understanding {{stack}} versioning is essential for [upgrade planning](/deploy-manage/upgrade.md) and ensuring compatibility. +Understanding Elastic Stack versioning is essential for [upgrade planning](/deploy-manage/upgrade.md) and ensuring compatibility. ## Availability of features -The features available to you can differ based on deployment type, product lifecycle stage, and specific version. +Features available to you can differ based on deployment type, product lifecycle stage, and specific version. ### Feature availability factors | Factor | Description | -|-------|-------------| -| **Deployment type** | The environment where the feature is available, for example, {{stack}}, {{serverless-full}}, {{ece}} (ECE), {{eck}} (ECK) | -| **Lifecycle state** | The development or support status of the feature, for example, GA and Beta | -| **Version** | The specific version the lifecycle state applies to | +| ----- | ----- | +| Deployment type | The environment where the feature is available, for example, {{stack}}, {{serverless-full}}, {{ece}}, {{eck}} | +| Lifecycle state | The development or support status of the feature, for example, GA, Technical preview, Beta | +| Version | The specific version the lifecycle state applies to | ### Lifecycle states | Lifecycle state | Description | -|-------|-------------| -| **Generally Available (GA)** | Production-ready feature. When unspecified, GA is the default | -| **Beta** | Feature is nearing general availability but not yet production-ready | -| **Technical preview** | Feature is in early development stage | -| **Unavailable** | Feature is not supported in this deployment type or version | +| ----- | ----- | +| Generally Available (GA) | Production-ready feature. When unspecified, GA is the default | +| Beta | Feature is nearing general availability but not yet production-ready | +| Technical preview | Feature is in early development stage | +| Unavailable | Feature is not supported in this deployment type or version | ### Examples of where availability can vary | Category | Example | -|-------|-------------| -| **Elastic Stack versions** | [Elastic Stack](the-stack.md) version 9.0.0 and later, including 9.1.0 | -| **Deployment types** | [Elastic Cloud Serverless](/deploy-manage/deploy/elastic-cloud/serverless.md), [Elastic Cloud Hosted](/deploy-manage/deploy/elastic-cloud/cloud-hosted.md), [Elastic Cloud Enterprise (ECE)](/deploy-manage/deploy/cloud-enterprise.md), [Elastic Cloud on Kubernetes (ECK)](/deploy-manage/deploy/cloud-on-k8s.md), and [Self-managed deployments](/deploy-manage/deploy/self-managed.md) | -| **Deployment versions** | [Elastic Cloud Enterprise (ECE)](/deploy-manage/deploy/cloud-enterprise.md) 4.0.0 and later, [Elastic Cloud on Kubernetes (ECK)](/deploy-manage/deploy/cloud-on-k8s.md) 3.0.0 and later | -| **Serverless project types** | {{es}}, {{observability}}, and {{elastic-sec}} - -## Find docs for your product version - -Find the documentation for your Elastic product versions or releases. - -### Elastic Stack product versions - -| Product | Version | -| --- | --- | -| [Elasticsearch](elasticsearch://release-notes/index.md) | 9.0.0 and later | -| [Kibana](kibana://release-notes/index.md) | 9.0.0 and later | -| [Fleet and Elastic Agent](/release-notes/fleet-elastic-agent/index.md) | 9.0.0 and later | -| [Logstash](logstash://release-notes/index.md) | 9.0.0 and later | -| [Beats](beats://release-notes/index.md) | 9.0.0 and later | -| [Elastic Observability](/release-notes/elastic-observability/index.md) | 9.0.0 and later | -| [Elastic APM](apm-server://release-notes/index.md) | 9.0.0 and later | -| [Elastic Security](/release-notes/elastic-security/index.md) | 9.0.0 and later | - -### Deployment type versions or releases - -| Product | Version or release | -| --- | --- | -| All [Elastic Cloud Serverless](/release-notes/elastic-cloud-serverless/index.md) project types | All releases | -| [Elastic Cloud Hosted](cloud://release-notes/cloud-hosted/index.md) | All releases for January 2025 and later | -| [Elastic Cloud Enterprise](cloud://release-notes/cloud-enterprise/index.md) | 4.0.0 and later | -| [Elastic Cloud on Kubernetes](cloud-on-k8s://release-notes/index.md) | 3.0.0 and later | - -### Schema, library, and tool versions - -| Product | Version or release -| --- | --- | -| [Elasticsearch Java Client](elasticsearch-java://release-notes/index.md) | 9.0.0 and later | -| [Elasticsearch JavaScript Client](elasticsearch-js://release-notes/index.md) | 9.0.0 and later | -| [Elasticsearch .NET Client](elasticsearch-net://release-notes/index.md) | 9.0.0 and later | -| [Elasticsearch PHP Client](elasticsearch-php://release-notes/index.md) | 9.0.0 and later | -| [Elasticsearch Python Client](elasticsearch-py://release-notes/index.md) | 9.0.0 and later | -| [Elasticsearch Ruby Client](elasticsearch-ruby://release-notes/index.md) | 9.0.0 and later | -| [Elastic Common Schema (ECS)](ecs://release-notes/index.md) | 9.0.0 and later | -| [ECS Logging .NET library](ecs-dotnet://reference/index.md) | 8.18.1 and later | -| [ECS Logging Go (Logrus) library](ecs-logging-go-logrus://reference/index.md) | 1.0.0 and later | -| [ECS Logging Go (Zap) library](ecs-logging-go-zap://reference/index.md) | 1.0.3 and later | -| [ECS Logging Go (Zerolog) library](ecs-logging-go-zerolog://reference/index.md) | 0.2.0 and later | -| [ECS Logging Java library](ecs-logging-java://reference/index.md) | 1.x and later | -| [ECS Logging Node.js library](ecs-logging-nodejs://reference/index.md) | 1.5.3 and later | -| [ECS Logging PHP library](ecs-logging-php://reference/index.md) | 2.0.0 and later | -| [ECS Logging Python library](ecs-logging-python://reference/index.md) | 2.2.0 and later | -| [ECS Logging Ruby library](ecs-logging-ruby://reference/index.md) | 1.0.0 and later | -| [Elasticsearch for Apache Hadoop](elasticsearch-hadoop://release-notes/index.md) | 9.0.0 and later | -| [Elasticsearch Curator](curator://reference/index.md) | 8.0.0 and later | -| [Elastic Cloud Control (ECCTL)](ecctl://release-notes/index.md) | 1.14.0 and later | -| [Elastic Serverless Forwarder for AWS](elastic-serverless-forwarder://reference/index.md) | 1.20.1 and later | -| [Elastic integrations](https://www.elastic.co/docs/reference/integrations/all_integrations) | All versions | -| [Search UI JavaScript library](search-ui://reference/index.md) | 1.24.0 and later | - -### APM agent and tool versions - -| Product | Version | -| --- | --- | -| [Elastic Distribution of OpenTelemetry Android](apm-agent-android://release-notes/index.md) | 0.1.0 and later | -| [Elastic Distribution of OpenTelemetry iOS](apm-agent-ios://release-notes/index.md) | 1.0.0 and later | -| [Elastic Distribution of OpenTelemetry Java](elastic-otel-java://release-notes/index.md) | 1.0.0 and later | -| [Elastic Distribution of OpenTelemetry .NET](elastic-otel-dotnet://release-notes/index.md) | 1.0.0 and later | -| [Elastic Distribution of OpenTelemetry Node.js](elastic-otel-node://release-notes/index.md) | 0.1.0 and later | -| [Elastic Distribution of OpenTelemetry Python](elastic-otel-python://release-notes/index.md) | 0.1.0 and later | -| [Elastic Distribution of OpenTelemetry PHP](elastic-otel-php://release-notes/index.md) | 0.1.0 and later | -| [Elastic APM .NET Agent](apm-agent-dotnet://release-notes/index.md) | 1.0.0 and later | -| [Elastic APM Go Agent](apm-agent-go://release-notes/index.md) | 2.0.0 and later | -| [Elastic APM Java Agent](apm-agent-java://release-notes/index.md) | 1.0.0 and later | -| [Elastic APM Node.js Agent](apm-agent-nodejs://release-notes/index.md) | 4.0.0 and later | -| [Elastic APM PHP Agent](apm-agent-php://release-notes/index.md) | 1.0.0 and later | -| [Elastic APM Python Agent](apm-agent-python://release-notes/index.md) | 6.0.0 and later | -| [Elastic APM Ruby Agent](apm-agent-ruby://release-notes/index.md) | 4.0.0 and later | -| [Elastic APM Real User Monitoring JavaScript Agent](apm-agent-rum-js://release-notes/index.md) | 5.0.0 and later | -| [Elastic APM AWS Lambda extension](apm-aws-lambda://release-notes/release-notes.md) | 1.0.0 and later | -| [Elastic APM Attacher for Kubernetes](apm-k8s-attacher://reference/index.md) | 1.1.3 | - - - - +| ----- | ----- | +| Elastic Stack versions | [{{stack}}](/get-started/the-stack.md) version 9.0.0 and later, including 9.1.0 | +| Deployment types | [{{serverless-full}}](/deploy-manage/deploy/elastic-cloud/serverless.md), [{{ech}}](/deploy-manage/deploy/elastic-cloud/cloud-hosted.md), [{{ece}}](/deploy-manage/deploy/cloud-enterprise.md), [{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md), and [Self-managed deployments](/deploy-manage/deploy/self-managed.md) | +| Deployment versions | [{{ece}}](/deploy-manage/deploy/cloud-enterprise.md) 4.0.0 and later, [{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md) 3.0.0 and later | +| Serverless project types | {{es}}, {{observability}}, and {{elastic-sec}} | From 3fedd12e7996b36dbf49a1a2df41337876c72861 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Wed, 3 Sep 2025 16:35:05 +0200 Subject: [PATCH 04/39] Fix anchor links --- .../cloud-on-k8s/kibana-instance-quickstart.md | 2 +- extend/index.md | 4 ++-- ...observability-2x_v2.png => elastic-platform.png} | Bin get-started/index.md | 2 +- get-started/next-steps-resources.md | 4 ++-- reference/fleet/data-streams-scenario1.md | 4 ++-- reference/fleet/data-streams-scenario2.md | 6 +++--- reference/fleet/data-streams-scenario4.md | 2 +- solutions/observability/apm/collect-metrics.md | 2 +- solutions/observability/synthetics/analyze-data.md | 2 +- .../observability/synthetics/configure-projects.md | 4 ++-- versions.md | 2 +- 12 files changed, 17 insertions(+), 17 deletions(-) rename get-started/images/{illustration-hero-platform-search-security-observability-2x_v2.png => elastic-platform.png} (100%) diff --git a/deploy-manage/deploy/cloud-on-k8s/kibana-instance-quickstart.md b/deploy-manage/deploy/cloud-on-k8s/kibana-instance-quickstart.md index 8bd4c51916..9218de9cfe 100644 --- a/deploy-manage/deploy/cloud-on-k8s/kibana-instance-quickstart.md +++ b/deploy-manage/deploy/cloud-on-k8s/kibana-instance-quickstart.md @@ -11,7 +11,7 @@ products: # Deploy a {{kib}} instance [k8s-deploy-kibana] -To deploy a simple [{{kib}}](/get-started/the-stack.md#stack-components-kibana) specification, with one {{kib}} instance: +To deploy a simple {{kib}} specification, with one {{kib}} instance: 1. Specify a {{kib}} instance and associate it with your {{es}} `quickstart` cluster created previously under [Deploying an {{es}} cluster](elasticsearch-deployment-quickstart.md): diff --git a/extend/index.md b/extend/index.md index c821d9e818..06a68e6f0a 100644 --- a/extend/index.md +++ b/extend/index.md @@ -20,7 +20,7 @@ This approach is ideal for shipping data, logs, metrics, and traces. By building * You want to provide a standardized, out-of-the-box experience for other users. * You need to process and structure data according to the Elastic Common Schema (ECS). -**Ready to start?** Head over to the [Create an Integration](/extend/integrations) guide. +**Ready to start?** Head over to the [Create an Integration](integrations://extend/index.md) guide. ## Path 2: Develop against the REST APIs @@ -51,7 +51,7 @@ For complete control and custom development, you can interact directly with Elas * You need to automate administrative tasks, such as creating users or managing index lifecycle policies. * You are integrating Elastic's search and analytics capabilities into another platform. -Ready to get started? Explore the [Elasticsearch API Reference](/reference/elasticsearch/rest-apis) and the [Kibana API Reference](https://www.elastic.co/docs/api/doc/kibana/). +Ready to get started? Explore the [Elasticsearch API Reference](elasticsearch://reference/elasticsearch/rest-apis/index.md) and the [Kibana API Reference](https://www.elastic.co/docs/api/doc/kibana/). ## Contributing to Elastic documentation diff --git a/get-started/images/illustration-hero-platform-search-security-observability-2x_v2.png b/get-started/images/elastic-platform.png similarity index 100% rename from get-started/images/illustration-hero-platform-search-security-observability-2x_v2.png rename to get-started/images/elastic-platform.png diff --git a/get-started/index.md b/get-started/index.md index bd273740e9..5cf48f5258 100644 --- a/get-started/index.md +++ b/get-started/index.md @@ -21,7 +21,7 @@ You'll also find other useful information, such as how to use our docs, training ## What is Elastic? [what-is-es] -:::{image} /images/illustration-hero-platform-search-security-observability-2x_v2.png +:::{image} /get-started/images/elastic-platform.png :alt: The Elastic platform ::: diff --git a/get-started/next-steps-resources.md b/get-started/next-steps-resources.md index 4a12224439..c8f8a59619 100644 --- a/get-started/next-steps-resources.md +++ b/get-started/next-steps-resources.md @@ -84,7 +84,7 @@ Want to learn more about how availability badges are used? Check the [Elastic Do You can browse documentation for different versions of our products in two ways: * **Version menu:** On most documentation pages, you'll find a version menu. Clicking this menu allows you to switch to a different version of the documentation for the content you are currently viewing. -* **All documentation versions page:** For a complete list of all available documentation versions for all Elastic products, you can visit the [All documentation versions](/versions) page. +* **All documentation versions page:** For a complete list of all available documentation versions for all Elastic products, you can visit the [All documentation versions](/versions.md) page. ### Find docs for your product version @@ -173,4 +173,4 @@ If you prefer a deep dive where you can learn at your own pace, check out our si ## Glossary -To help you understand the terminology used throughout our documentation, we provide a [glossary of common Elastic terms](get-started/glossary.md). This is a great resource for new users or anyone looking to clarify the meaning of a specific term. \ No newline at end of file +To help you understand the terminology used throughout our documentation, we provide a [glossary of common Elastic terms](/reference/glossary/index.md). This is a great resource for new users or anyone looking to clarify the meaning of a specific term. \ No newline at end of file diff --git a/reference/fleet/data-streams-scenario1.md b/reference/fleet/data-streams-scenario1.md index 3caa3f741b..cb1887ae72 100644 --- a/reference/fleet/data-streams-scenario1.md +++ b/reference/fleet/data-streams-scenario1.md @@ -22,7 +22,7 @@ This tutorial explains how to apply a custom index lifecycle policy to all of th ## Step 1: Create an index lifecycle policy [data-streams-scenario1-step1] -1. To open **Lifecycle Policies**, find **Stack Management** in the main menu or use the [global search field](/get-started/the-stack.md#kibana-navigation-search). +1. To open **Lifecycle Policies**, find **Stack Management** in the main menu or use the global search field. 2. Click **Create policy**. Name your new policy. For this tutorial, you can use `my-ilm-policy`. Customize the policy to your liking, and when you’re done, click **Save policy**. @@ -32,7 +32,7 @@ Name your new policy. For this tutorial, you can use `my-ilm-policy`. Customize The **Index Templates** view in {{kib}} shows you all of the index templates available to automatically apply settings, mappings, and aliases to indices: -1. To open **Index Management**, find **Stack Management** in the main menu or use the [global search field](/get-started/the-stack.md#kibana-navigation-search). +1. To open **Index Management**, find **Stack Management** in the main menu or use the global search field. 2. Select **Index Templates**. 3. Search for `system` to see all index templates associated with the System integration. 4. Select any `logs-*` index template to view the associated component templates. For example, you can select the `logs-system.application` index template. diff --git a/reference/fleet/data-streams-scenario2.md b/reference/fleet/data-streams-scenario2.md index c8a1cfe201..2013831dce 100644 --- a/reference/fleet/data-streams-scenario2.md +++ b/reference/fleet/data-streams-scenario2.md @@ -17,17 +17,17 @@ This tutorial explains how to apply a custom index lifecycle policy to the `logs ## Step 1: Create an index lifecycle policy [data-streams-scenario2-step1] -1. To open **Lifecycle Policies**, find **Stack Management** in the main menu or use the [global search field](/get-started/the-stack.md#kibana-navigation-search). +1. To open **Lifecycle Policies**, find **Stack Management** in the main menu or use the global search field. 2. Click **Create policy**. -Name your new policy. For this tutorial, you can use `my-ilm-policy`. Customize the policy to your liking, and when you’re done, click **Save policy**. +Name your new policy. For this tutorial, you can use `my-ilm-policy`. Customize the policy to your liking, and when you're done, click **Save policy**. ## Step 2: View index templates [data-streams-scenario2-step2] The **Index Templates** view in {{kib}} shows you all of the index templates available to automatically apply settings, mappings, and aliases to indices: -1. To open **Index Management**, find **Stack Management** in the main menu or use the [global search field](/get-started/the-stack.md#kibana-navigation-search). +1. To open **Index Management**, find **Stack Management** in the main menu or use the global search field. 2. Select **Index Templates**. 3. Search for `system` to see all index templates associated with the System integration. 4. Select the index template that matches the data stream for which you want to set up an ILM policy. For this example, you can select the `logs-system.auth` index template. diff --git a/reference/fleet/data-streams-scenario4.md b/reference/fleet/data-streams-scenario4.md index c78c12db2c..60a89d4531 100644 --- a/reference/fleet/data-streams-scenario4.md +++ b/reference/fleet/data-streams-scenario4.md @@ -16,7 +16,7 @@ If you’ve created a custom integration package, you can apply a single ILM pol ## Step 1: Define the ILM policy [data-streams-scenario4-step1] -1. In {{kib}}, go to **Stack Management** and select **Index Lifecycle Policies**. You can also use the [global search field](/get-started/the-stack.md#kibana-navigation-search). +1. In {{kib}}, go to **Stack Management** and select **Index Lifecycle Policies**. You can also use the global search field. 2. Click **Create policy**. 3. Name the policy, configure it as needed, and click **Save policy**. diff --git a/solutions/observability/apm/collect-metrics.md b/solutions/observability/apm/collect-metrics.md index e624e5712a..2e52e30b0d 100644 --- a/solutions/observability/apm/collect-metrics.md +++ b/solutions/observability/apm/collect-metrics.md @@ -40,7 +40,7 @@ See the [Open Telemetry Metrics API](https://github.com/open-telemetry/opentelem Use **Discover** to validate that metrics are successfully reported to {{kib}}. 1. Open your Observability instance. -2. Find **Discover** in the main menu or use the [global search field](/get-started/the-stack.md#kibana-navigation-search). +2. Find **Discover** in the main menu or use the global search field. 3. Click **All logs** → **Data Views** then select **APM**. 4. Filter the data to only show documents with metrics: `processor.name :"metric"` 5. Narrow your search with a known OpenTelemetry field. For example, if you have an `order_value` field, add `order_value: *` to your search to return only OpenTelemetry metrics documents. diff --git a/solutions/observability/synthetics/analyze-data.md b/solutions/observability/synthetics/analyze-data.md index f2a8d21c95..18e713b2f1 100644 --- a/solutions/observability/synthetics/analyze-data.md +++ b/solutions/observability/synthetics/analyze-data.md @@ -19,7 +19,7 @@ The Synthetics UI gives you a high-level overview of your service’s availabili The Synthetics **Overview** tab provides you with a high-level view of all the services you are monitoring to help you quickly diagnose outages and other connectivity issues within your network. -To access this page, find `Synthetics` in the [global search field](/get-started/the-stack.md#kibana-navigation-search) and make sure you’re on the **Overview** tab. +To access this page, find `Synthetics` in the global search field and make sure you’re on the **Overview** tab. This overview includes a snapshot of the current status of all monitors, the number of errors that occurred over the last 6 hours, and the number of alerts over the last 12 hours. All monitors created using projects or using the UI will be listed below with information about the location, current status, and duration average. diff --git a/solutions/observability/synthetics/configure-projects.md b/solutions/observability/synthetics/configure-projects.md index f6796f44d6..6fb6d3d9d3 100644 --- a/solutions/observability/synthetics/configure-projects.md +++ b/solutions/observability/synthetics/configure-projects.md @@ -243,7 +243,7 @@ $$$synthetics-configuration-monitor-tags$$$ `tags` (`Array`) To list available locations you can: * Run the [`elastic-synthetics locations` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command). - * Find `Synthetics` in the [global search field](/get-started/the-stack.md#kibana-navigation-search) and click **Create monitor**. Locations will be listed in *Locations*. + * Find `Synthetics` in the global search field and click **Create monitor**. Locations will be listed in *Locations*. `privateLocations` (`Array`) : The [{{private-location}}s](/solutions/observability/synthetics/monitor-resources-on-private-networks.md) to which the monitors will be deployed. These {{private-location}}s refer to locations hosted and managed by you, whereas `locations` are hosted by Elastic. You can specify a {{private-location}} using the location’s name. @@ -251,7 +251,7 @@ $$$synthetics-configuration-monitor-tags$$$ `tags` (`Array`) To list available {{private-location}}s you can: * Run the [`elastic-synthetics locations` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command) with the URL for the Observability project or the {{kib}} URL for the deployment from which to fetch available locations. - * Find `Synthetics` in the [global search field](/get-started/the-stack.md#kibana-navigation-search) and click **Create monitor**. {{private-location}}s will be listed in *Locations*. + * Find `Synthetics` in the global search field and click **Create monitor**. {{private-location}}s will be listed in *Locations*. `throttling` (`boolean` | [`ThrottlingOptions`](https://github.com/elastic/synthetics/blob/v1.3.0/src/common_types.ts#L194-L198)) : Control the monitor’s download speeds, upload speeds, and latency to simulate your application’s behavior on slower or laggier networks. Set to `false` to disable throttling altogether. diff --git a/versions.md b/versions.md index ee307f5991..009de62b33 100644 --- a/versions.md +++ b/versions.md @@ -2,7 +2,7 @@ In April 2025, we released our new documentation site. This site includes documentation for our latest product versions, including {{stack}} 9.0+ and {{serverless-full}}. -To review the product versions covered on elastic.co/docs, refer to [Find docs for your product version](/get-started/versioning-availability.md#find-docs-for-your-product-version). +To review the product versions covered on elastic.co/docs, refer to [Find docs for your product version](/get-started/next-steps-resources.md#find-docs-for-your-product-version). To access our previous documentation system, which contains the documentation for older releases including {{stack}} 8.x, use the following links. From 3b7eb42bd9b731db063f40fe36d87b93775d2d5c Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Wed, 3 Sep 2025 16:44:55 +0200 Subject: [PATCH 05/39] Add fallback anchor --- get-started/the-stack.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/the-stack.md b/get-started/the-stack.md index c7308784ea..58cfe39c55 100644 --- a/get-started/the-stack.md +++ b/get-started/the-stack.md @@ -68,7 +68,7 @@ Elasticsearch is built to be a resilient and scalable distributed system. It run Learn more in [The {{es}} data store](/manage-data/data-store.md) -### Visualize and query your data +### Visualize and query your data [kibana-navigation-search] While {{es}} stores your data, **Kibana** is the user interface where you can explore, visualize, and manage it. It provides a window into your data, allowing you to quickly gain insights and understand trends. From bcc20b9fbdde58f62d00ae94b579575b39c1d86c Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Wed, 3 Sep 2025 18:27:10 +0200 Subject: [PATCH 06/39] Remove introduction --- get-started/introduction.md | 60 ------------------------------------- get-started/toc.yml | 1 - manage-data/index.md | 2 +- redirects.yml | 6 +++- versions.md | 1 - 5 files changed, 6 insertions(+), 64 deletions(-) delete mode 100644 get-started/introduction.md diff --git a/get-started/introduction.md b/get-started/introduction.md deleted file mode 100644 index 32f8f19024..0000000000 --- a/get-started/introduction.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/elasticsearch/reference/current/elasticsearch-intro-what-is-es.html -products: - - id: elasticsearch ---- - -# Use cases [introduction] -$$$what-is-kib$$$ -$$$what-is-es$$$ - -The {{stack}} is used for a wide and growing range of use cases. Here are a few examples: - -## Elasticsearch - -- **Full-text search**: Build a fast, relevant full-text search solution using inverted indexes, tokenization, and text analysis. -- **Vector database**: Store and search vectorized data, and create vector embeddings with built-in and third-party natural language processing (NLP) models. -- **Semantic search**: Understand the intent and contextual meaning behind search queries using tools like synonyms, dense vector embeddings, and learned sparse query-document expansion. -- **Hybrid search**: Combine full-text search with vector search using state-of-the-art ranking algorithms. -- **Build search experiences**: Add hybrid search capabilities to apps or websites, or build enterprise search engines over your organization’s internal data sources. -- **Retrieval augmented generation (RAG)**: Use {{ecloud}} as a retrieval engine to supplement generative AI models with more relevant, up-to-date, or proprietary data for a range of use cases. -- **Geospatial search**: Search for locations and calculate spatial relationships using geospatial queries. - -[**Get started with {{es}} →**](../solutions/search/get-started.md) - -## Observability - -- **Logs, metrics, and traces**: Collect, store, and analyze logs, metrics, and traces from applications, systems, and services. -- **Application performance monitoring (APM)**: Monitor and analyze the performance of business-critical software applications. -- **Real user monitoring (RUM)**: Monitor, quantify, and analyze user interactions with web applications. -- **OpenTelemetry**: Reuse your existing instrumentation to send telemetry data to the Elastic Stack using the OpenTelemetry standard. - -[**Get started with {{observability}} →**](../solutions/observability/get-started.md) - -## Security - -- **Security information and event management (SIEM)**: Collect, store, and analyze security data from applications, systems, and services. -- **Endpoint security**: Monitor and analyze endpoint security data. -- **Threat hunting**: Search and analyze data to detect and respond to security threats. - -[**Get started with {{elastic-sec}} →**](../solutions/security/get-started.md) - -This is just a sample of search, observability, and security use cases enabled by {{ecloud}}. Refer to Elastic [customer success stories](https://www.elastic.co/customers/success-stories) for concrete examples across a range of industries. - -% TODO: cleanup these links, consolidate with Explore and analyze - -$$$visualize-and-analyze$$$ -$$$extend-your-use-case$$$ -$$$_manage_your_data$$$ -$$$_alert_and_take_action$$$ -$$$organize-and-secure$$$ -$$$organize-in-spaces$$$ -$$$_organize_your_content_with_tags$$$ -$$$intro-kibana-Security$$$ -$$$_log_in$$$ -$$$extend-your-use-case$$$ -$$$try-kibana$$$ -$$$_view_all_kib_has_to_offer$$$ -$$$_audit_access$$$ -$$$_secure_access$$$ diff --git a/get-started/toc.yml b/get-started/toc.yml index a80c831227..53ed122f30 100644 --- a/get-started/toc.yml +++ b/get-started/toc.yml @@ -1,7 +1,6 @@ project: 'Get started' toc: - file: index.md - - file: introduction.md - file: the-stack.md - file: deployment-options.md - file: versioning-availability.md diff --git a/manage-data/index.md b/manage-data/index.md index 02209a3a17..5cb2dfe848 100644 --- a/manage-data/index.md +++ b/manage-data/index.md @@ -6,7 +6,7 @@ applies_to: # Manage data -Whether you're looking to build a fast and relevant search solution, monitor business-critical applications and infrastructure, monitor endpoint security data, or one of the [many other use cases Elastic supports](/get-started/introduction.md), you'll need to understand how to ingest and manage data stored in {{es}}. +Whether you're looking to build a fast and relevant search solution, monitor business-critical applications and infrastructure, monitor endpoint security data, or one of the [many other use cases Elastic supports](/get-started/the-stack.md), you'll need to understand how to ingest and manage data stored in {{es}}. ## Learn how data is stored diff --git a/redirects.yml b/redirects.yml index fcd3d51792..150baee68c 100644 --- a/redirects.yml +++ b/redirects.yml @@ -332,4 +332,8 @@ redirects: 'solutions/search/querydsl-full-text-filter-tutorial.md': 'elasticsearch://reference/query-languages/query-dsl/full-text-filter-tutorial.md' # Related to https://github.com/elastic/docs-content/pull/2719 - 'solutions/search/api-quickstarts.md': 'solutions/search/get-started/quickstarts.md' \ No newline at end of file + 'solutions/search/api-quickstarts.md': 'solutions/search/get-started/quickstarts.md' + +# Intro section + + 'get-started/introduction.md': 'get-started/index.md' \ No newline at end of file diff --git a/versions.md b/versions.md index 009de62b33..64b8bb2b8d 100644 --- a/versions.md +++ b/versions.md @@ -79,4 +79,3 @@ To access our previous documentation system, which contains the documentation fo - Elastic Cloud Enterprise — [other versions](https://www.elastic.co/guide/en/cloud-enterprise/index.html) - Elastic Cloud on Kubernetes — [other versions](https://www.elastic.co/guide/en/cloud-on-k8s/index.html) - Elastic Cloud Control — [other versions](https://www.elastic.co/guide/en/ecctl/index.html) - From f45f736250b40c981c9fc29ba2d459341477fcbe Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Wed, 3 Sep 2025 18:32:15 +0200 Subject: [PATCH 07/39] Add heading --- get-started/next-steps-resources.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/get-started/next-steps-resources.md b/get-started/next-steps-resources.md index c8f8a59619..3266547622 100644 --- a/get-started/next-steps-resources.md +++ b/get-started/next-steps-resources.md @@ -2,6 +2,8 @@ We've designed our docs to help you find the information you need quickly and efficiently, whether you're a new user or an experienced professional. +## Information architecture + Our documentation is organized to guide you through your journey with Elastic, from learning the basics to deploying and managing complex solutions. Here is a detailed breakdown of the documentation structure: From 7257efe7b313656cc7de174361b12e0e628b5338 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri-Benedetti Date: Thu, 4 Sep 2025 08:36:27 +0200 Subject: [PATCH 08/39] Update get-started/index.md Co-authored-by: shainaraskas <58563081+shainaraskas@users.noreply.github.com> --- get-started/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/index.md b/get-started/index.md index 5cf48f5258..5b3d8cd2cc 100644 --- a/get-started/index.md +++ b/get-started/index.md @@ -27,7 +27,7 @@ You'll also find other useful information, such as how to use our docs, training Elastic provides an open source search, analytics, and AI platform, and out-of-the-box solutions for observability and security. The Search AI platform combines the power of search and generative AI to provide near real-time search and analysis with relevance to reduce your time to value. -Elastic offers three main solutions or types ofprojects: +Elastic offers three main solutions or types of projects: * [{{es}}](/solutions/search.md): Build powerful search and RAG applications using Elasticsearch's vector database, AI toolkit, and advanced retrieval capabilities. * [Elastic {{observability}}](/solutions/observability.md): Gain comprehensive visibility into applications, infrastructure, and user experience through logs, metrics, traces, and other telemetry data, all in a single interface. From fb225e707dafe5768361a33de392def61ac460be Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri-Benedetti Date: Thu, 4 Sep 2025 08:40:09 +0200 Subject: [PATCH 09/39] Update get-started/the-stack.md Co-authored-by: shainaraskas <58563081+shainaraskas@users.noreply.github.com> --- get-started/the-stack.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/the-stack.md b/get-started/the-stack.md index 58cfe39c55..081140b7e7 100644 --- a/get-started/the-stack.md +++ b/get-started/the-stack.md @@ -87,7 +87,7 @@ A **query** is a question you ask about your data, and Elastic provides several * **Elasticsearch Query Language (ES|QL)** is a powerful, modern query language that uses a familiar pipe-based syntax to transform and aggregate your data at search time. * **Event Query Language (EQL)** is a specialized language designed to query sequences of events, which is particularly useful for security analytics and threat hunting. -Learn more in [Explore and analyze data with Kibana](/explore-analyze/index.md) +Learn more in [](/explore-analyze/index.md) ### Use the APIs to automate operations and management From 991590ce4dd5660102bdfd27e8da9faf6647baa3 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Thu, 4 Sep 2025 09:31:17 +0200 Subject: [PATCH 10/39] Rename doc --- ...eps-resources.md => howto-use-the-docs.md} | 12 +---------- get-started/index.md | 21 +++++++++++++++++++ get-started/toc.yml | 2 +- versions.md | 2 +- 4 files changed, 24 insertions(+), 13 deletions(-) rename get-started/{next-steps-resources.md => howto-use-the-docs.md} (91%) diff --git a/get-started/next-steps-resources.md b/get-started/howto-use-the-docs.md similarity index 91% rename from get-started/next-steps-resources.md rename to get-started/howto-use-the-docs.md index 3266547622..2bb94d4825 100644 --- a/get-started/next-steps-resources.md +++ b/get-started/howto-use-the-docs.md @@ -1,4 +1,4 @@ -# Next steps & resources +# How to use the documentation We've designed our docs to help you find the information you need quickly and efficiently, whether you're a new user or an experienced professional. @@ -163,16 +163,6 @@ Find the documentation for your Elastic product versions or releases. | [Elastic APM AWS Lambda extension](https://www.elastic.co/docs/release-notes/apm/aws-lambda/release-notes) | 1.0.0 and later | | [Elastic APM Attacher for Kubernetes](https://www.elastic.co/docs/reference/apm/k8s-attacher) | 1.1.3 | -## Training resources - -Whether you are just getting started with Elastic, an expert, or simply want to expand your knowledge, we provide role-based and solution-based training to empower you to get the most out of our solutions. You can even receive accreditation for completing our courses. - -Ready to dive in? Check out [https://www.elastic.co/training](https://www.elastic.co/training) to browse our virtual and on-demand training courses. If you're not sure where to start, check out the [Elasticsearch Engineer](https://www.elastic.co/training/elasticsearch-engineer) course. - -To explore particular, more granular facets of the Elastic Stack, check out our [demo gallery](https://www.elastic.co/demo-gallery). You can filter by solution or subject area and choose the training style that best suits you. - -If you prefer a deep dive where you can learn at your own pace, check out our six-part [Beginner's Crash Course to Elastic Stack](https://www.youtube.com/playlist?list=PL_mJOmq4zsHZYAyK606y7wjQtC0aoE6Es) on YouTube. - ## Glossary To help you understand the terminology used throughout our documentation, we provide a [glossary of common Elastic terms](/reference/glossary/index.md). This is a great resource for new users or anyone looking to clarify the meaning of a specific term. \ No newline at end of file diff --git a/get-started/index.md b/get-started/index.md index 5b3d8cd2cc..262d21c3aa 100644 --- a/get-started/index.md +++ b/get-started/index.md @@ -33,3 +33,24 @@ Elastic offers three main solutions or types of projects: * [Elastic {{observability}}](/solutions/observability.md): Gain comprehensive visibility into applications, infrastructure, and user experience through logs, metrics, traces, and other telemetry data, all in a single interface. * [{{elastic-sec}}](/solutions/security.md): Combine SIEM, endpoint security, and cloud security to provide comprehensive tools for threat detection and prevention, investigation, and response. +## Explore the fundamentals + +Continue your journey with these essential guides that will help you understand and work with Elastic: + +* **[Solutions and the Search AI platform](/get-started/the-stack.md)**: Dive deeper into how the Elastic Stack components work together, learn about data ingestion methods, and understand the core concepts of storing, visualizing, and querying your data. + +* **[Deployment options](/get-started/deployment-options.md)**: Explore the different ways you can deploy Elastic, from fully managed serverless solutions to self-managed installations, and choose the approach that best fits your operational needs. + +* **[Versioning and availability](/get-started/versioning-availability.md)**: Learn how Elastic handles versioning, understand feature availability across different deployment types, and navigate our continuously updated documentation with confidence. + +* **[How to use the documentation](/get-started/howto-use-the-docs.md)**: Discover how our documentation is organized, learn about training resources, find the right version information for your products, and understand how to contribute to our community. + +## Training resources + +Whether you are just getting started with Elastic, an expert, or simply want to expand your knowledge, we provide role-based and solution-based training to empower you to get the most out of our solutions. You can even receive accreditation for completing our courses. + +Ready to dive in? Check out [https://www.elastic.co/training](https://www.elastic.co/training) to browse our virtual and on-demand training courses. If you're not sure where to start, check out the [Elasticsearch Engineer](https://www.elastic.co/training/elasticsearch-engineer) course. + +To explore particular, more granular facets of the Elastic Stack, check out our [demo gallery](https://www.elastic.co/demo-gallery). You can filter by solution or subject area and choose the training style that best suits you. + +If you prefer a deep dive where you can learn at your own pace, check out our six-part [Beginner's Crash Course to Elastic Stack](https://www.youtube.com/playlist?list=PL_mJOmq4zsHZYAyK606y7wjQtC0aoE6Es) on YouTube. \ No newline at end of file diff --git a/get-started/toc.yml b/get-started/toc.yml index 53ed122f30..92a6fbdca0 100644 --- a/get-started/toc.yml +++ b/get-started/toc.yml @@ -4,4 +4,4 @@ toc: - file: the-stack.md - file: deployment-options.md - file: versioning-availability.md - - file: next-steps-resources.md \ No newline at end of file + - file: howto-use-the-docs.md \ No newline at end of file diff --git a/versions.md b/versions.md index 64b8bb2b8d..8c95a79142 100644 --- a/versions.md +++ b/versions.md @@ -2,7 +2,7 @@ In April 2025, we released our new documentation site. This site includes documentation for our latest product versions, including {{stack}} 9.0+ and {{serverless-full}}. -To review the product versions covered on elastic.co/docs, refer to [Find docs for your product version](/get-started/next-steps-resources.md#find-docs-for-your-product-version). +To review the product versions covered on elastic.co/docs, refer to [Find docs for your product version](/get-started/howto-use-the-docs.md#find-docs-for-your-product-version). To access our previous documentation system, which contains the documentation for older releases including {{stack}} 8.x, use the following links. From e77ae9e5398dd95d949ee43de6286fd77bcc9f02 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Thu, 4 Sep 2025 09:35:26 +0200 Subject: [PATCH 11/39] Switch to full title --- get-started/the-stack.md | 1 - 1 file changed, 1 deletion(-) diff --git a/get-started/the-stack.md b/get-started/the-stack.md index 081140b7e7..b0afee2ebf 100644 --- a/get-started/the-stack.md +++ b/get-started/the-stack.md @@ -1,5 +1,4 @@ --- -navigation_title: Solutions mapped_pages: - https://www.elastic.co/guide/en/starting-with-the-elasticsearch-platform-and-its-solutions/current/stack-components.html - https://www.elastic.co/guide/en/kibana/current/introduction.html From c519fcb4372b14f0f9bf6e26076fe9e89fff4794 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Thu, 4 Sep 2025 10:09:10 +0200 Subject: [PATCH 12/39] Peer review edits --- .../alerts-cases/alerts/view-alerts.md | 2 +- ...-data-with-aggregations-using-query-dsl.md | 2 +- get-started/deployment-options.md | 31 ++++++++++++++----- get-started/howto-use-the-docs.md | 24 ++++++-------- get-started/the-stack.md | 19 +++++++----- reference/fleet/data-streams-scenario1.md | 4 +-- reference/fleet/data-streams-scenario2.md | 4 +-- reference/fleet/data-streams-scenario4.md | 2 +- .../observability/apm/collect-metrics.md | 2 +- ...tic-distributions-of-opentelemetry-edot.md | 2 +- .../observability/synthetics/analyze-data.md | 2 +- .../synthetics/configure-projects.md | 4 +-- .../search/get-started/semantic-search.md | 2 +- solutions/security/ai/ai-assistant.md | 4 +-- .../identify-antivirus-software-on-hosts.md | 2 +- .../observability/troubleshoot-logs.md | 2 +- 16 files changed, 62 insertions(+), 46 deletions(-) diff --git a/explore-analyze/alerts-cases/alerts/view-alerts.md b/explore-analyze/alerts-cases/alerts/view-alerts.md index 7c5b4c6ea9..51c3d21325 100644 --- a/explore-analyze/alerts-cases/alerts/view-alerts.md +++ b/explore-analyze/alerts-cases/alerts/view-alerts.md @@ -107,7 +107,7 @@ The alert cleanup task permanently deletes alerts in your `.alert-*` indices. Ma Remove old or rarely-accessed alerts in your space by running an alert cleanup task, which deletes alerts according to the criteria that you define. Alerts that are attached to cases are not deleted. -1. Open the **Rules** page by going to **Stack Management > Alerts and Insights > Rules** in the main menu or using the global search field. +1. Open the **Rules** page by going to **Stack Management > Alerts and Insights > Rules** in the main menu or using the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). 2. Click **Settings** to open the settings for all rules in the space. 3. In the **Clean up alert history** section, click **Clean up**. 4. Define criteria for the alert cleanup task. You can choose to delete alerts that are active or inactive and meet a certain age. diff --git a/explore-analyze/query-filter/aggregations/tutorial-analyze-ecommerce-data-with-aggregations-using-query-dsl.md b/explore-analyze/query-filter/aggregations/tutorial-analyze-ecommerce-data-with-aggregations-using-query-dsl.md index 59205ecf45..d19b3b89ff 100644 --- a/explore-analyze/query-filter/aggregations/tutorial-analyze-ecommerce-data-with-aggregations-using-query-dsl.md +++ b/explore-analyze/query-filter/aggregations/tutorial-analyze-ecommerce-data-with-aggregations-using-query-dsl.md @@ -34,7 +34,7 @@ You’ll need: 2. The [sample eCommerce data](../../index.md#gs-get-data-into-kibana) loaded into {{es}}. To load sample data follow these steps in your UI: - * Open the **Integrations** pages by searching in the global search field. + * Open the **Integrations** pages by searching in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). * Search for `sample data` in the **Integrations** search field. * Open the **Sample data** page. * Select the **Other sample data sets** collapsible. diff --git a/get-started/deployment-options.md b/get-started/deployment-options.md index 26e13f57b6..3932ed14ef 100644 --- a/get-started/deployment-options.md +++ b/get-started/deployment-options.md @@ -8,14 +8,31 @@ products: # Deployment options -You can run Elastic on virtually any infrastructure, allowing you to choose the model that best fits your operational needs. +You can run Elastic on virtually any infrastructure, allowing you to select the model that best fits your operational needs. + +Use this page for a quick overview of your options for deploying Elastic. + +## Why your deployment choice matters + +Your deployment type significantly impacts both the capabilities available across your Elastic environment and the amount of manual work required to set up and maintain it. Some deployment types provide automated orchestration that handles scaling, upgrades, and monitoring across multiple clusters, while others require you to manage these operational tasks manually. + +The choice you make determines how much time you'll spend on infrastructure management versus focusing on using Elastic's features to solve your business problems. + +## Quick start options These are the most common deployment types and their main features: -* **{{serverless-full}}**: This fully managed SaaS offering abstracts away all underlying infrastructure, automatically and seamlessly scaling resources to meet your workload demands. It's designed for operational simplicity, with usage-based pricing that allows you to focus on your data without managing clusters. -* **{{ech}}**: This managed SaaS offering provides you with a dedicated cluster on your choice of cloud provider (AWS, GCP, or Azure). It offers a high degree of control over your cluster's configuration, allowing you to fine-tune nodes, hardware, and versions to meet specific performance and architectural requirements. -* **Self-managed**: This approach allows you to install, operate, and maintain the Elastic Stack on your own hardware, whether on-premises or in your private cloud. It provides maximum control over your environment. -* **{{eck}} (ECK)**: This extends Kubernetes by providing an official operator for deploying and managing Elastic products. It's ideal if you want to run and orchestrate Elastic on your own Kubernetes platform. -* **{{ece}} (ECE):** This Elastic self-managed offering allows you to provision, manage, and monitor Elasticsearch and Kibana at any scale, on any infrastructure, while managing everything from a single console. It's ideal if you want to use the full Elastic Stack while maintaining control over your data and infrastructure. +* **[{{ecloud}}](/deploy-manage/deploy/elastic-cloud.md)**: Get a hosted solution up and running in minutes. + * **[{{ech}}](/deploy-manage/deploy/elastic-cloud/cloud-hosted.md)**: This managed SaaS offering provides you with a dedicated cluster on your choice of cloud provider (AWS, GCP, or Azure). It offers a high degree of control over your cluster's configuration, allowing you to fine-tune nodes, hardware, and versions to meet specific performance and architectural requirements. Sign up for a [14-day free trial](https://cloud.elastic.co/registration). + * **[{{serverless-full}}](/deploy-manage/deploy/elastic-cloud/serverless.md)**: This fully managed SaaS offering abstracts away all underlying infrastructure, automatically and seamlessly scaling resources to meet your workload demands. It's designed for operational simplicity, with usage-based pricing that allows you to focus on your data without managing clusters. Sign up for a [14-day free trial](https://cloud.elastic.co/serverless-registration). +* **[Local development](/deploy-manage/deploy/self-managed/local-development-installation-quickstart.md)**: Get started quickly with {{es}} and {{kib}} in Docker for local development and testing. + +## Advanced options + +* **[Self-managed](/deploy-manage/deploy/self-managed.md)**: This approach allows you to install, operate, and maintain the {{stack}} on your own hardware, whether on-premises or in your private cloud. It provides maximum control over your environment. +* **[{{ece}}](/deploy-manage/deploy/cloud-enterprise.md)**: This Elastic self-managed offering allows you to provision, manage, and monitor {{es}} and {{kib}} at any scale, on any infrastructure, while managing everything from a single console. It's ideal if you want to use the full {{stack}} while maintaining control over your data and infrastructure. +* **[{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md)**: This extends Kubernetes by providing an official operator for deploying and managing Elastic products. It's ideal if you want to run and orchestrate Elastic on your own Kubernetes platform. -For more information on Deployment modes, refer to [Detailed deployment comparison](/deploy-manage/deploy/deployment-comparison.md). \ No newline at end of file +:::{tip} +Refer to [Deploy and manage](/deploy-manage/index.md) for detailed information and guidance on selecting the right deployment for your needs. +::: \ No newline at end of file diff --git a/get-started/howto-use-the-docs.md b/get-started/howto-use-the-docs.md index 2bb94d4825..9d9249953d 100644 --- a/get-started/howto-use-the-docs.md +++ b/get-started/howto-use-the-docs.md @@ -1,23 +1,19 @@ # How to use the documentation -We've designed our docs to help you find the information you need quickly and efficiently, whether you're a new user or an experienced professional. - -## Information architecture - Our documentation is organized to guide you through your journey with Elastic, from learning the basics to deploying and managing complex solutions. Here is a detailed breakdown of the documentation structure: -* **Elastic fundamentals**: Understand the basics of Elasticsearch and the Elastic Stack, deployment options, and key use cases. -* **Solutions and use cases**: Learn use cases, evaluate, and implement Elastic's solutions: Observability, Search, and Security. -* **Manage data**: Learn about data store primitives, ingestion and enrichment, managing the data lifecycle, and migrating data. -* **Explore and analyze**: Get value from data through querying, visualization, machine learning, and alerting. -* **Deploy and manage**: Deploy and manage production-ready clusters. Covers deployment options and maintenance tasks. -* **Manage your Cloud account**: A dedicated section for user-facing cloud account tasks like resetting passwords. -* **Troubleshoot**: Identify and resolve problems. -* **Extend and contribute**: How to contribute to or integrate with Elastic, from open source to plugins to integrations. -* **Release notes**: Contains release notes and changelogs for each new release. -* **Reference**: Reference material for core tasks and manuals for optional products. +* [**Elastic fundamentals**](/get-started/index.md): Understand the basics of Elasticsearch and the Elastic Stack, deployment options, and key use cases. +* [**Solutions and use cases**](/solutions/index.md): Learn use cases, evaluate, and implement Elastic's solutions: Observability, Search, and Security. +* [**Manage data**](/manage-data/index.md): Learn about data store primitives, ingestion and enrichment, managing the data lifecycle, and migrating data. +* [**Explore and analyze**](/explore-analyze/index.md): Get value from data through querying, visualization, machine learning, and alerting. +* [**Deploy and manage**](/deploy-manage/index.md): Deploy and manage production-ready clusters. Covers deployment options and maintenance tasks. +* [**Manage your Cloud account**](/cloud-account/index.md): A dedicated section for user-facing cloud account tasks like resetting passwords. +* [**Troubleshoot**](/troubleshoot/index.md): Identify and resolve problems. +* [**Extend and contribute**](/extend/index.md): How to contribute to or integrate with Elastic, from open source to plugins to integrations. +* [**Release notes**](/release-notes/index.md): Contains release notes and changelogs for each new release. +* [**Reference**](/reference/index.md): Reference material for core tasks and manuals for optional products. ### Applicability badges diff --git a/get-started/the-stack.md b/get-started/the-stack.md index b0afee2ebf..260b06e5c2 100644 --- a/get-started/the-stack.md +++ b/get-started/the-stack.md @@ -30,9 +30,9 @@ Continue reading to learn how these components work together. ### Ingest data from a wide variety of sources -**Ingestion** is the process of collecting data from your sources and sending it to {{es}}. The Elastic platform is engineered for flexibility, designed to ingest data from a wide variety of sources. +**Ingestion** is the process of collecting data from your sources and sending it to {{es}}. The Elastic platform is engineered for flexibility, designed to ingest data from a wide variety of sources. -#### Elasticsearch +#### Get data into Elasticsearch When building custom search experiences or indexing general data, you have several direct and flexible ingestion options: @@ -40,7 +40,7 @@ When building custom search experiences or indexing general data, you have sever * **Web crawler:** Ingest content from public or private websites to make them searchable. * **Enterprise connectors:** Use pre-built connectors to sync data from external content sources like SharePoint, Confluence, Jira, and databases like MongoDB or PostgreSQL into {{es}}. -#### Elastic Observability +#### Get data into Elastic Observability For full-stack observability, ingest logs, metrics, traces, and profiles using these OpenTelemetry-native methods: @@ -49,7 +49,7 @@ For full-stack observability, ingest logs, metrics, traces, and profiles using t * **APM Agents:** Provide streamlined, out-of-the-box auto-instrumentation of your applications to capture detailed traces and performance metrics. * **{{ls}} and {{beats}}:** Leverage these battle-tested tools for advanced log processing pipelines (Logstash) and lightweight data shipping (Beats). -#### Elastic Security +#### Get data into Elastic Security **{{agent}}** is the core ingestion method for security data. As a single, unified agent, it's purpose-built to collect the rich data needed for modern threat detection and response, including: @@ -65,7 +65,7 @@ Fleets of Elastic Agents are managed centrally, simplifying deployment and polic Elasticsearch is built to be a resilient and scalable distributed system. It runs as a **cluster** of one or more servers, called **nodes**. When you add data to an index, it's divided into pieces called **shards**, which are spread across the various nodes in the cluster. This architecture allows Elasticsearch to handle large volumes of data and ensures that your data remains available even if a node fails. -Learn more in [The {{es}} data store](/manage-data/data-store.md) +Learn more in [The {{es}} data store](/manage-data/data-store.md). ### Visualize and query your data [kibana-navigation-search] @@ -82,14 +82,17 @@ At the same time, Kibana works as the user interface of all Elastic solutions, l A **query** is a question you ask about your data, and Elastic provides several powerful languages to do so. You can query data directly through the API or through the user interface in Kibana. -* **Kibana Query Language (KQL)** is the text-based language used in the **Discover** search bar, perfect for interactive filtering and exploration. +* **Query DSL** is a full-featured JSON-style query language that enables complex searching, filtering, and aggregations. It is the original and most powerful query language for Elasticsearch today. * **Elasticsearch Query Language (ES|QL)** is a powerful, modern query language that uses a familiar pipe-based syntax to transform and aggregate your data at search time. * **Event Query Language (EQL)** is a specialized language designed to query sequences of events, which is particularly useful for security analytics and threat hunting. +* **Kibana Query Language (KQL)** is the text-based language used in the **Discover** search bar, perfect for interactive filtering and exploration. -Learn more in [](/explore-analyze/index.md) +Learn more in [](/explore-analyze/index.md). ### Use the APIs to automate operations and management Nearly every aspect of Elasticsearch can be configured and managed programmatically through its extensive REST APIs. This allows you to automate repetitive tasks and integrate Elastic management into your existing operational workflows. You can use the APIs to manage indices, update cluster settings, run complex queries, and configure security. -The **Console** tool in Kibana provides an interactive way to send requests directly to the Elasticsearch API and view the responses. For secure, automated access, you can create and manage **API keys** to authenticate your scripts and applications. This API-first approach is fundamental to enabling infrastructure-as-code practices and managing your deployments at scale. \ No newline at end of file +The **Console** tool in Kibana provides an interactive way to send requests directly to the Elasticsearch API and view the responses. For secure, automated access, you can create and manage **API keys** to authenticate your scripts and applications. This API-first approach is fundamental to enabling infrastructure-as-code practices and managing your deployments at scale. + +Learn more in [Elastic APIs](https://www.elastic.co/docs/api). \ No newline at end of file diff --git a/reference/fleet/data-streams-scenario1.md b/reference/fleet/data-streams-scenario1.md index cb1887ae72..a5d5a66660 100644 --- a/reference/fleet/data-streams-scenario1.md +++ b/reference/fleet/data-streams-scenario1.md @@ -22,7 +22,7 @@ This tutorial explains how to apply a custom index lifecycle policy to all of th ## Step 1: Create an index lifecycle policy [data-streams-scenario1-step1] -1. To open **Lifecycle Policies**, find **Stack Management** in the main menu or use the global search field. +1. To open **Lifecycle Policies**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). 2. Click **Create policy**. Name your new policy. For this tutorial, you can use `my-ilm-policy`. Customize the policy to your liking, and when you’re done, click **Save policy**. @@ -32,7 +32,7 @@ Name your new policy. For this tutorial, you can use `my-ilm-policy`. Customize The **Index Templates** view in {{kib}} shows you all of the index templates available to automatically apply settings, mappings, and aliases to indices: -1. To open **Index Management**, find **Stack Management** in the main menu or use the global search field. +1. To open **Index Management**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). 2. Select **Index Templates**. 3. Search for `system` to see all index templates associated with the System integration. 4. Select any `logs-*` index template to view the associated component templates. For example, you can select the `logs-system.application` index template. diff --git a/reference/fleet/data-streams-scenario2.md b/reference/fleet/data-streams-scenario2.md index 2013831dce..747efe86aa 100644 --- a/reference/fleet/data-streams-scenario2.md +++ b/reference/fleet/data-streams-scenario2.md @@ -17,7 +17,7 @@ This tutorial explains how to apply a custom index lifecycle policy to the `logs ## Step 1: Create an index lifecycle policy [data-streams-scenario2-step1] -1. To open **Lifecycle Policies**, find **Stack Management** in the main menu or use the global search field. +1. To open **Lifecycle Policies**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). 2. Click **Create policy**. Name your new policy. For this tutorial, you can use `my-ilm-policy`. Customize the policy to your liking, and when you're done, click **Save policy**. @@ -27,7 +27,7 @@ Name your new policy. For this tutorial, you can use `my-ilm-policy`. Customize The **Index Templates** view in {{kib}} shows you all of the index templates available to automatically apply settings, mappings, and aliases to indices: -1. To open **Index Management**, find **Stack Management** in the main menu or use the global search field. +1. To open **Index Management**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). 2. Select **Index Templates**. 3. Search for `system` to see all index templates associated with the System integration. 4. Select the index template that matches the data stream for which you want to set up an ILM policy. For this example, you can select the `logs-system.auth` index template. diff --git a/reference/fleet/data-streams-scenario4.md b/reference/fleet/data-streams-scenario4.md index 60a89d4531..29d0179aaf 100644 --- a/reference/fleet/data-streams-scenario4.md +++ b/reference/fleet/data-streams-scenario4.md @@ -16,7 +16,7 @@ If you’ve created a custom integration package, you can apply a single ILM pol ## Step 1: Define the ILM policy [data-streams-scenario4-step1] -1. In {{kib}}, go to **Stack Management** and select **Index Lifecycle Policies**. You can also use the global search field. +1. In {{kib}}, go to **Stack Management** and select **Index Lifecycle Policies**. You can also use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). 2. Click **Create policy**. 3. Name the policy, configure it as needed, and click **Save policy**. diff --git a/solutions/observability/apm/collect-metrics.md b/solutions/observability/apm/collect-metrics.md index 2e52e30b0d..c241d8c12a 100644 --- a/solutions/observability/apm/collect-metrics.md +++ b/solutions/observability/apm/collect-metrics.md @@ -40,7 +40,7 @@ See the [Open Telemetry Metrics API](https://github.com/open-telemetry/opentelem Use **Discover** to validate that metrics are successfully reported to {{kib}}. 1. Open your Observability instance. -2. Find **Discover** in the main menu or use the global search field. +2. Find **Discover** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). 3. Click **All logs** → **Data Views** then select **APM**. 4. Filter the data to only show documents with metrics: `processor.name :"metric"` 5. Narrow your search with a known OpenTelemetry field. For example, if you have an `order_value` field, add `order_value: *` to your search to return only OpenTelemetry metrics documents. diff --git a/solutions/observability/get-started/quickstart-unified-kubernetes-observability-with-elastic-distributions-of-opentelemetry-edot.md b/solutions/observability/get-started/quickstart-unified-kubernetes-observability-with-elastic-distributions-of-opentelemetry-edot.md index 8daef8c415..0dd0e9acfe 100644 --- a/solutions/observability/get-started/quickstart-unified-kubernetes-observability-with-elastic-distributions-of-opentelemetry-edot.md +++ b/solutions/observability/get-started/quickstart-unified-kubernetes-observability-with-elastic-distributions-of-opentelemetry-edot.md @@ -131,7 +131,7 @@ After installation is complete and all relevant data is flowing into Elastic, th ### Work with Kubernetes logs -You can search and analyze Kubernetes logs using Elastic’s Discover capability. Find **Discover** in the main menu or use the global search field. +You can search and analyze Kubernetes logs using Elastic’s Discover capability. Find **Discover** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). :::{image} /solutions/images/screenshot-observability-monitoring-k8s-kubernetes-logs-can-be-searched.png :alt: Kubernetes logs in Discover diff --git a/solutions/observability/synthetics/analyze-data.md b/solutions/observability/synthetics/analyze-data.md index 18e713b2f1..af950d5122 100644 --- a/solutions/observability/synthetics/analyze-data.md +++ b/solutions/observability/synthetics/analyze-data.md @@ -19,7 +19,7 @@ The Synthetics UI gives you a high-level overview of your service’s availabili The Synthetics **Overview** tab provides you with a high-level view of all the services you are monitoring to help you quickly diagnose outages and other connectivity issues within your network. -To access this page, find `Synthetics` in the global search field and make sure you’re on the **Overview** tab. +To access this page, find `Synthetics` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md) and make sure you’re on the **Overview** tab. This overview includes a snapshot of the current status of all monitors, the number of errors that occurred over the last 6 hours, and the number of alerts over the last 12 hours. All monitors created using projects or using the UI will be listed below with information about the location, current status, and duration average. diff --git a/solutions/observability/synthetics/configure-projects.md b/solutions/observability/synthetics/configure-projects.md index 6fb6d3d9d3..09da6f1df4 100644 --- a/solutions/observability/synthetics/configure-projects.md +++ b/solutions/observability/synthetics/configure-projects.md @@ -243,7 +243,7 @@ $$$synthetics-configuration-monitor-tags$$$ `tags` (`Array`) To list available locations you can: * Run the [`elastic-synthetics locations` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command). - * Find `Synthetics` in the global search field and click **Create monitor**. Locations will be listed in *Locations*. + * Find `Synthetics` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md) and click **Create monitor**. Locations will be listed in *Locations*. `privateLocations` (`Array`) : The [{{private-location}}s](/solutions/observability/synthetics/monitor-resources-on-private-networks.md) to which the monitors will be deployed. These {{private-location}}s refer to locations hosted and managed by you, whereas `locations` are hosted by Elastic. You can specify a {{private-location}} using the location’s name. @@ -251,7 +251,7 @@ $$$synthetics-configuration-monitor-tags$$$ `tags` (`Array`) To list available {{private-location}}s you can: * Run the [`elastic-synthetics locations` command](/solutions/observability/synthetics/cli.md#elastic-synthetics-locations-command) with the URL for the Observability project or the {{kib}} URL for the deployment from which to fetch available locations. - * Find `Synthetics` in the global search field and click **Create monitor**. {{private-location}}s will be listed in *Locations*. + * Find `Synthetics` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md) and click **Create monitor**. {{private-location}}s will be listed in *Locations*. `throttling` (`boolean` | [`ThrottlingOptions`](https://github.com/elastic/synthetics/blob/v1.3.0/src/common_types.ts#L194-L198)) : Control the monitor’s download speeds, upload speeds, and latency to simulate your application’s behavior on slower or laggier networks. Set to `false` to disable throttling altogether. diff --git a/solutions/search/get-started/semantic-search.md b/solutions/search/get-started/semantic-search.md index e0579d9f1b..91692344fd 100644 --- a/solutions/search/get-started/semantic-search.md +++ b/solutions/search/get-started/semantic-search.md @@ -104,7 +104,7 @@ The vectors are stored in {{es}} and are ready to be used for semantic search. :::: ::::{step} Explore the data -To familiarize yourself with this data set, open [Discover](/explore-analyze/discover.md) from the navigation menu or the global search field. +To familiarize yourself with this data set, open [Discover](/explore-analyze/discover.md) from the navigation menu or the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). In **Discover**, you can click the expand icon {icon}`expand` to show details about documents in the table: diff --git a/solutions/security/ai/ai-assistant.md b/solutions/security/ai/ai-assistant.md index f67707efe7..b1d2542b39 100644 --- a/solutions/security/ai/ai-assistant.md +++ b/solutions/security/ai/ai-assistant.md @@ -77,7 +77,7 @@ You can also chat with AI Assistant from several particular pages in {{elastic-s * [Data Quality dashboard](/solutions/security/dashboards/data-quality-dashboard.md): Select the **Incompatible fields** tab, then click **Chat**. (This is only available for fields marked red, indicating they’re incompatible). ::::{note} -Each user’s chat history (up to the 99 most recent conversations) and custom Quick Prompts are automatically saved, so you can leave {{elastic-sec}} and return to a conversation later. Chat history appears to the left of the AI Assistant chat window, and on the **Conversations** tab of the **AI Assistant settings** menu. To access the settings menu, use the global search field to search for "AI Assistant for Security" or open the menu in the upper-right of the AI Assistant chat window. +Each user’s chat history (up to the 99 most recent conversations) and custom Quick Prompts are automatically saved, so you can leave {{elastic-sec}} and return to a conversation later. Chat history appears to the left of the AI Assistant chat window, and on the **Conversations** tab of the **AI Assistant settings** menu. To access the settings menu, use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md) to search for "AI Assistant for Security" or open the menu in the upper-right of the AI Assistant chat window. :::: ## Interact with AI Assistant [interact-with-assistant] @@ -124,7 +124,7 @@ To adjust AI Assistant's settings from the chat window, click the **More** (thre The first three options (**AI Assistant settings**, **Knowledge Base**, and **Anonymization**) open the corresponding tabs of the **Security AI settings** page. The **Chat options** affect display-only user settings: whether to show or hide anonymized values, and whether to include citations. When citations are enabled, AI Assistant will refer you to information sources including data you've shared with it, information you've added to the [knowledge base](/solutions/security/ai/ai-assistant-knowledge-base.md), and content from Elastic's Security Labs and [product documentation](/solutions/security/ai/ai-assistant-knowledge-base.md#elastic-docs). -The **Security AI settings** page provides a range of configuration options for AI Assistant. To access it directly, use the global search field to search for "AI Assistant for Security". +The **Security AI settings** page provides a range of configuration options for AI Assistant. To access it directly, use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md) to search for "AI Assistant for Security". It has the following tabs: diff --git a/solutions/security/manage-elastic-defend/identify-antivirus-software-on-hosts.md b/solutions/security/manage-elastic-defend/identify-antivirus-software-on-hosts.md index 081e3e9b0d..cddf76bf02 100644 --- a/solutions/security/manage-elastic-defend/identify-antivirus-software-on-hosts.md +++ b/solutions/security/manage-elastic-defend/identify-antivirus-software-on-hosts.md @@ -36,7 +36,7 @@ To use this feature, you need: ## Scan your hosts for AV software [_scan_your_hosts_for_av_software] -1. Find **Endpoints** in the navigation menu or use the global search field. +1. Find **Endpoints** in the navigation menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). 2. Click on an endpoint to open its details flyout. 3. Under **Automatic Troubleshooting**, select an LLM connector, or [add](../ai/set-up-connectors-for-large-language-models-llm.md) a new one. 4. Click **Scan**. After a brief processing period, any detected AV products will appear under **Insights**. diff --git a/troubleshoot/observability/troubleshoot-logs.md b/troubleshoot/observability/troubleshoot-logs.md index f55f7fd7c3..c38623c7ef 100644 --- a/troubleshoot/observability/troubleshoot-logs.md +++ b/troubleshoot/observability/troubleshoot-logs.md @@ -248,7 +248,7 @@ Provided Grok patterns do not match field value... Make sure your [grok](elasticsearch://reference/enrich-processor/grok-processor.md) or [dissect](elasticsearch://reference/enrich-processor/dissect-processor.md) processor pattern matches your log document format. -You can build and debug grok patterns in {{kib}} using the [Grok Debugger](../../explore-analyze/query-filter/tools/grok-debugger.md). Find the **Grok Debugger** by navigating to the **Developer tools** page using the navigation menu or the global search field. +You can build and debug grok patterns in {{kib}} using the [Grok Debugger](../../explore-analyze/query-filter/tools/grok-debugger.md). Find the **Grok Debugger** by navigating to the **Developer tools** page using the navigation menu or the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). From here, you can enter sample data representative of the log document you’re trying to ingest and the Grok pattern you want to apply to the data. From a18e9344b98e762900ac32cfac79cd5918271c2c Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Thu, 4 Sep 2025 10:27:37 +0200 Subject: [PATCH 13/39] Supplemental fixes --- extend/index.md | 2 +- get-started/deployment-options.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/extend/index.md b/extend/index.md index 06a68e6f0a..d76e3c9ccc 100644 --- a/extend/index.md +++ b/extend/index.md @@ -1,4 +1,4 @@ -# Extend the Elastic platform +# Extend and contribute You can extend and build on the Elastic Platform in several ways. Whether you need to get data into Elasticsearch, add new functionality, edit the documentation, or build a custom application, here is an overview of the primary development paths to help you choose the right one for your project. diff --git a/get-started/deployment-options.md b/get-started/deployment-options.md index 3932ed14ef..612a3ced6a 100644 --- a/get-started/deployment-options.md +++ b/get-started/deployment-options.md @@ -23,14 +23,14 @@ The choice you make determines how much time you'll spend on infrastructure mana These are the most common deployment types and their main features: * **[{{ecloud}}](/deploy-manage/deploy/elastic-cloud.md)**: Get a hosted solution up and running in minutes. - * **[{{ech}}](/deploy-manage/deploy/elastic-cloud/cloud-hosted.md)**: This managed SaaS offering provides you with a dedicated cluster on your choice of cloud provider (AWS, GCP, or Azure). It offers a high degree of control over your cluster's configuration, allowing you to fine-tune nodes, hardware, and versions to meet specific performance and architectural requirements. Sign up for a [14-day free trial](https://cloud.elastic.co/registration). - * **[{{serverless-full}}](/deploy-manage/deploy/elastic-cloud/serverless.md)**: This fully managed SaaS offering abstracts away all underlying infrastructure, automatically and seamlessly scaling resources to meet your workload demands. It's designed for operational simplicity, with usage-based pricing that allows you to focus on your data without managing clusters. Sign up for a [14-day free trial](https://cloud.elastic.co/serverless-registration). + * **[{{ech}}](/deploy-manage/deploy/elastic-cloud/cloud-hosted.md)**: This managed SaaS offering managed through [{{ecloud}}](/deploy-manage/deploy/elastic-cloud.md) provides you with a dedicated cluster on your choice of cloud provider (AWS, GCP, or Azure). It offers a high degree of control over your cluster's configuration, allowing you to fine-tune nodes, hardware, and versions to meet specific performance and architectural requirements. Sign up for a [14-day free trial](https://cloud.elastic.co/registration). + * **[{{serverless-full}}](/deploy-manage/deploy/elastic-cloud/serverless.md)**: This fully managed SaaS offering managed through [{{ecloud}}](/deploy-manage/deploy/elastic-cloud.md) abstracts away all underlying infrastructure, automatically and seamlessly scaling resources to meet your workload demands. It's designed for operational simplicity, with usage-based pricing that allows you to focus on your data without managing clusters. Sign up for a [14-day free trial](https://cloud.elastic.co/serverless-registration). * **[Local development](/deploy-manage/deploy/self-managed/local-development-installation-quickstart.md)**: Get started quickly with {{es}} and {{kib}} in Docker for local development and testing. ## Advanced options * **[Self-managed](/deploy-manage/deploy/self-managed.md)**: This approach allows you to install, operate, and maintain the {{stack}} on your own hardware, whether on-premises or in your private cloud. It provides maximum control over your environment. -* **[{{ece}}](/deploy-manage/deploy/cloud-enterprise.md)**: This Elastic self-managed offering allows you to provision, manage, and monitor {{es}} and {{kib}} at any scale, on any infrastructure, while managing everything from a single console. It's ideal if you want to use the full {{stack}} while maintaining control over your data and infrastructure. +* **[{{ece}}](/deploy-manage/deploy/cloud-enterprise.md)**: This Elastic self-managed offering allows you to provision, manage, and monitor {{es}} and {{kib}} at any scale, on any infrastructure, while managing everything from a single console. * **[{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md)**: This extends Kubernetes by providing an official operator for deploying and managing Elastic products. It's ideal if you want to run and orchestrate Elastic on your own Kubernetes platform. :::{tip} From 71469f05e8494924dfd15541047b5811a6ff48ca Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri-Benedetti Date: Thu, 4 Sep 2025 13:25:28 +0200 Subject: [PATCH 14/39] Update get-started/index.md Co-authored-by: florent-leborgne --- get-started/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/index.md b/get-started/index.md index 262d21c3aa..278f43e1db 100644 --- a/get-started/index.md +++ b/get-started/index.md @@ -37,7 +37,7 @@ Elastic offers three main solutions or types of projects: Continue your journey with these essential guides that will help you understand and work with Elastic: -* **[Solutions and the Search AI platform](/get-started/the-stack.md)**: Dive deeper into how the Elastic Stack components work together, learn about data ingestion methods, and understand the core concepts of storing, visualizing, and querying your data. +* **[Solutions and the Search AI platform](/get-started/the-stack.md)**: Dive deeper into how the Elastic Stack—our suite of open-source tools including Elasticsearch, Kibana, Beats, and Logstash—components work together, learn about data ingestion methods, and understand the core concepts of storing, visualizing, and querying your data. * **[Deployment options](/get-started/deployment-options.md)**: Explore the different ways you can deploy Elastic, from fully managed serverless solutions to self-managed installations, and choose the approach that best fits your operational needs. From a74823225794aeab29d7c875fe8963b64b05b736 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri-Benedetti Date: Thu, 4 Sep 2025 13:27:55 +0200 Subject: [PATCH 15/39] Update get-started/versioning-availability.md Co-authored-by: florent-leborgne --- get-started/versioning-availability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/versioning-availability.md b/get-started/versioning-availability.md index 7e6863724a..6479efc354 100644 --- a/get-started/versioning-availability.md +++ b/get-started/versioning-availability.md @@ -33,7 +33,7 @@ Features available to you can differ based on deployment type, product lifecycle | Factor | Description | | ----- | ----- | -| Deployment type | The environment where the feature is available, for example, {{stack}}, {{serverless-full}}, {{ece}}, {{eck}} | +| Deployment type | The environment where the feature is available, for example, self-managed, {{serverless-full}}, {{ece}}, {{eck}} | | Lifecycle state | The development or support status of the feature, for example, GA, Technical preview, Beta | | Version | The specific version the lifecycle state applies to | From 41f205cff2d84efa91abbd81c05bdf1566ce4ccc Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri-Benedetti Date: Thu, 4 Sep 2025 13:28:12 +0200 Subject: [PATCH 16/39] Update get-started/howto-use-the-docs.md Co-authored-by: florent-leborgne --- get-started/howto-use-the-docs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/howto-use-the-docs.md b/get-started/howto-use-the-docs.md index 9d9249953d..9b98a734ce 100644 --- a/get-started/howto-use-the-docs.md +++ b/get-started/howto-use-the-docs.md @@ -17,7 +17,7 @@ Here is a detailed breakdown of the documentation structure: ### Applicability badges -Because Elastic products can be deployed in different ways (like on Elastic Cloud, in your own data center, or with our Serverless offering) and have different versions, not all documentation applies to every user. To help you quickly see if a topic is relevant to your situation, we use **applicability badges**. +Because Elastic products can be deployed in different ways (like on Elastic Cloud or in your own data center) and have different versions, not all documentation applies to every user. To help you quickly see if a topic is relevant to your situation, we use **applicability badges**. These badges appear at the top of a page or section and tell you which products, deployment models, and versions the content applies to. They also indicate the maturity level of a feature, such as **beta**, **technical preview**, or **generally available (GA)**. This system ensures that you can identify content specific to your environment and version. From 2b459272dda2c04742cc3addf8ac8e718679ade3 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri-Benedetti Date: Thu, 4 Sep 2025 13:28:42 +0200 Subject: [PATCH 17/39] Update get-started/versioning-availability.md Co-authored-by: florent-leborgne --- get-started/versioning-availability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/versioning-availability.md b/get-started/versioning-availability.md index 6479efc354..cfba68f81d 100644 --- a/get-started/versioning-availability.md +++ b/get-started/versioning-availability.md @@ -53,7 +53,7 @@ Features available to you can differ based on deployment type, product lifecycle | Elastic Stack versions | [{{stack}}](/get-started/the-stack.md) version 9.0.0 and later, including 9.1.0 | | Deployment types | [{{serverless-full}}](/deploy-manage/deploy/elastic-cloud/serverless.md), [{{ech}}](/deploy-manage/deploy/elastic-cloud/cloud-hosted.md), [{{ece}}](/deploy-manage/deploy/cloud-enterprise.md), [{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md), and [Self-managed deployments](/deploy-manage/deploy/self-managed.md) | | Deployment versions | [{{ece}}](/deploy-manage/deploy/cloud-enterprise.md) 4.0.0 and later, [{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md) 3.0.0 and later | -| Serverless project types | {{es}}, {{observability}}, and {{elastic-sec}} | +| Serverless project types | {{es}}, Elastic {{observability}}, and {{elastic-sec}} | From 35333486ee00ec9ff8153a4527ea4feff87de106 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri-Benedetti Date: Thu, 4 Sep 2025 13:28:58 +0200 Subject: [PATCH 18/39] Update get-started/versioning-availability.md Co-authored-by: florent-leborgne --- get-started/versioning-availability.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/get-started/versioning-availability.md b/get-started/versioning-availability.md index cfba68f81d..88e25598f2 100644 --- a/get-started/versioning-availability.md +++ b/get-started/versioning-availability.md @@ -41,9 +41,11 @@ Features available to you can differ based on deployment type, product lifecycle | Lifecycle state | Description | | ----- | ----- | -| Generally Available (GA) | Production-ready feature. When unspecified, GA is the default | -| Beta | Feature is nearing general availability but not yet production-ready | | Technical preview | Feature is in early development stage | +| Beta | Feature is nearing general availability but not yet production-ready | +| Generally Available (GA) | Production-ready feature. When unspecified, GA is the default | +| Deprecated | Feature is still usable but is set to be removed or replaced in a future update | +| Removed | Feature can no longer be used | | Unavailable | Feature is not supported in this deployment type or version | ### Examples of where availability can vary From 2c015363d1f835951970dfdb4a082c0ecb359282 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri-Benedetti Date: Thu, 4 Sep 2025 13:29:15 +0200 Subject: [PATCH 19/39] Update get-started/versioning-availability.md Co-authored-by: florent-leborgne --- get-started/versioning-availability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/versioning-availability.md b/get-started/versioning-availability.md index 88e25598f2..e9f09acec7 100644 --- a/get-started/versioning-availability.md +++ b/get-started/versioning-availability.md @@ -54,7 +54,7 @@ Features available to you can differ based on deployment type, product lifecycle | ----- | ----- | | Elastic Stack versions | [{{stack}}](/get-started/the-stack.md) version 9.0.0 and later, including 9.1.0 | | Deployment types | [{{serverless-full}}](/deploy-manage/deploy/elastic-cloud/serverless.md), [{{ech}}](/deploy-manage/deploy/elastic-cloud/cloud-hosted.md), [{{ece}}](/deploy-manage/deploy/cloud-enterprise.md), [{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md), and [Self-managed deployments](/deploy-manage/deploy/self-managed.md) | -| Deployment versions | [{{ece}}](/deploy-manage/deploy/cloud-enterprise.md) 4.0.0 and later, [{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md) 3.0.0 and later | +| Orchestrator versions | [{{ece}}](/deploy-manage/deploy/cloud-enterprise.md) 4.0.0 and later, [{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md) 3.0.0 and later | | Serverless project types | {{es}}, Elastic {{observability}}, and {{elastic-sec}} | From 35028ec7e2a62f36ea628d4a74c6d11b1cf8ae05 Mon Sep 17 00:00:00 2001 From: Fabrizio Ferri Benedetti Date: Thu, 4 Sep 2025 15:26:28 +0200 Subject: [PATCH 20/39] More peer edits --- get-started/deployment-options.md | 2 +- get-started/howto-use-the-docs.md | 34 +++++++++++++------------- get-started/index.md | 8 +++--- get-started/versioning-availability.md | 2 +- 4 files changed, 24 insertions(+), 22 deletions(-) diff --git a/get-started/deployment-options.md b/get-started/deployment-options.md index 612a3ced6a..3ed165ec38 100644 --- a/get-started/deployment-options.md +++ b/get-started/deployment-options.md @@ -8,7 +8,7 @@ products: # Deployment options -You can run Elastic on virtually any infrastructure, allowing you to select the model that best fits your operational needs. +You can run Elastic on any infrastructure, allowing you to select the model that best fits your operational needs. Use this page for a quick overview of your options for deploying Elastic. diff --git a/get-started/howto-use-the-docs.md b/get-started/howto-use-the-docs.md index 9d9249953d..ecd6db8a92 100644 --- a/get-started/howto-use-the-docs.md +++ b/get-started/howto-use-the-docs.md @@ -15,13 +15,13 @@ Here is a detailed breakdown of the documentation structure: * [**Release notes**](/release-notes/index.md): Contains release notes and changelogs for each new release. * [**Reference**](/reference/index.md): Reference material for core tasks and manuals for optional products. -### Applicability badges +## Applicability badges Because Elastic products can be deployed in different ways (like on Elastic Cloud, in your own data center, or with our Serverless offering) and have different versions, not all documentation applies to every user. To help you quickly see if a topic is relevant to your situation, we use **applicability badges**. These badges appear at the top of a page or section and tell you which products, deployment models, and versions the content applies to. They also indicate the maturity level of a feature, such as **beta**, **technical preview**, or **generally available (GA)**. This system ensures that you can identify content specific to your environment and version. -### Page options +## Page options On each documentation page, you'll find several links that allow you to interact with the content: @@ -29,11 +29,7 @@ On each documentation page, you'll find several links that allow you to interact * **Edit this page**: Selecting this link will take you directly to the page's source file in our GitHub repository. From there, you can propose edits, which our team will review. * **Report an issue**: If you've found a problem, like a typo, a technical error, or confusing content, but don't want to edit the page yourself, use this link. It will open a new issue in our GitHub repository, pre-filled with information about the page you were on, so you can describe the problem in detail. -### How to contribute - -We value contributions from our community. For detailed instructions on how to contribute to both the main documentation and the API references, refer to our [contribution guide](https://www.elastic.co/docs/extend/contribute/). - -### Versioned documentation +## Versioned documentation Starting with Elastic Stack 9.0, Elastic no longer publishes separate documentation sets for each minor release. Instead, all changes in the 9.x series are included in a single, continuously updated documentation set. @@ -45,7 +41,7 @@ This approach helps: We clearly mark content added or changed in a specific version using availability badges. The availability badges appear in page headers, section headers, and inline. -#### Elastic Stack example +### Elastic Stack example {applies_to}`stack: ga 9.1.0` @@ -55,7 +51,7 @@ This means the feature is: * Generally Available (GA) * Introduced in version 9.1.0 -#### Serverless example +### Serverless example {applies_to}`serverless: ga` {applies_to}`security: beta` @@ -64,7 +60,7 @@ This means the feature is: * Generally Available for Elasticsearch Serverless projects * Beta for Elastic Security Serverless projects -#### Elastic Cloud Enterprise example +### Elastic Cloud Enterprise example {applies_to}`ece: deprecated 4.1.0` @@ -77,18 +73,18 @@ This means the feature is: Want to learn more about how availability badges are used? Check the [Elastic Docs syntax guide](https://elastic.github.io/docs-builder/syntax/applies/). ::: -### Accessing previous versions +## Accessing previous versions You can browse documentation for different versions of our products in two ways: * **Version menu:** On most documentation pages, you'll find a version menu. Clicking this menu allows you to switch to a different version of the documentation for the content you are currently viewing. * **All documentation versions page:** For a complete list of all available documentation versions for all Elastic products, you can visit the [All documentation versions](/versions.md) page. -### Find docs for your product version +## Find docs for your product version Find the documentation for your Elastic product versions or releases. -#### Elastic Stack product versions +### Elastic Stack product versions | Product | Version | | ----- | ----- | @@ -101,7 +97,7 @@ Find the documentation for your Elastic product versions or releases. | [Elastic APM](https://www.elastic.co/docs/release-notes/apm) | 9.0.0 and later | | [Elastic Security](https://www.elastic.co/docs/release-notes/security) | 9.0.0 and later | -#### Deployment type versions or releases +### Deployment type versions or releases | Product | Version or release | | ----- | ----- | @@ -110,7 +106,7 @@ Find the documentation for your Elastic product versions or releases. | [Elastic Cloud Enterprise](https://www.elastic.co/docs/release-notes/cloud-enterprise) | 4.0.0 and later | | [Elastic Cloud on Kubernetes](https://www.elastic.co/docs/release-notes/cloud-on-k8s) | 3.0.0 and later | -#### Schema, library, and tool versions +### Schema, library, and tool versions | Product | Version or release | | ----- | ----- | @@ -137,7 +133,7 @@ Find the documentation for your Elastic product versions or releases. | [Elastic integrations](https://www.elastic.co/docs/reference/integrations/all_integrations) | All versions | | [Search UI JavaScript library](https://www.elastic.co/docs/reference/search-ui) | 1.24.0 and later | -#### APM agent and tool versions +### APM agent and tool versions | Product | Version | | ----- | ----- | @@ -161,4 +157,8 @@ Find the documentation for your Elastic product versions or releases. ## Glossary -To help you understand the terminology used throughout our documentation, we provide a [glossary of common Elastic terms](/reference/glossary/index.md). This is a great resource for new users or anyone looking to clarify the meaning of a specific term. \ No newline at end of file +To help you understand the terminology used throughout our documentation, we provide a [glossary of common Elastic terms](/reference/glossary/index.md). This is a great resource for new users or anyone looking to clarify the meaning of a specific term. + +## How to contribute + +We value contributions from our community. For detailed instructions on how to contribute to both the main documentation and the API references, refer to our [contribution guide](https://www.elastic.co/docs/extend/contribute/). \ No newline at end of file diff --git a/get-started/index.md b/get-started/index.md index 262d21c3aa..0978669f16 100644 --- a/get-started/index.md +++ b/get-started/index.md @@ -43,8 +43,6 @@ Continue your journey with these essential guides that will help you understand * **[Versioning and availability](/get-started/versioning-availability.md)**: Learn how Elastic handles versioning, understand feature availability across different deployment types, and navigate our continuously updated documentation with confidence. -* **[How to use the documentation](/get-started/howto-use-the-docs.md)**: Discover how our documentation is organized, learn about training resources, find the right version information for your products, and understand how to contribute to our community. - ## Training resources Whether you are just getting started with Elastic, an expert, or simply want to expand your knowledge, we provide role-based and solution-based training to empower you to get the most out of our solutions. You can even receive accreditation for completing our courses. @@ -53,4 +51,8 @@ Ready to dive in? Check out [https://www.elastic.co/training](https://www.elasti To explore particular, more granular facets of the Elastic Stack, check out our [demo gallery](https://www.elastic.co/demo-gallery). You can filter by solution or subject area and choose the training style that best suits you. -If you prefer a deep dive where you can learn at your own pace, check out our six-part [Beginner's Crash Course to Elastic Stack](https://www.youtube.com/playlist?list=PL_mJOmq4zsHZYAyK606y7wjQtC0aoE6Es) on YouTube. \ No newline at end of file +If you prefer a deep dive where you can learn at your own pace, check out our six-part [Beginner's Crash Course to Elastic Stack](https://www.youtube.com/playlist?list=PL_mJOmq4zsHZYAyK606y7wjQtC0aoE6Es) on YouTube. + +:::{tip} +Read **[How to use the documentation](/get-started/howto-use-the-docs.md)** to discover how our documentation is organized, lfind the right version information for your products, and understand how to contribute to our community. +::: \ No newline at end of file diff --git a/get-started/versioning-availability.md b/get-started/versioning-availability.md index 7e6863724a..91208cf680 100644 --- a/get-started/versioning-availability.md +++ b/get-started/versioning-availability.md @@ -13,7 +13,7 @@ Learn how Elastic products are versioned, the lifecycle of features, and how to ## Understanding versioning -Each deployment type has a unique versioning strategy. For example, Serverless and ECH have releases that are distinguished by their date. Because Serverless is automatically updated, you always have the latest updates. +Most Elastic products, like {{es}} or {{kib}}, share the same versioning pattern, based on the {{stack}}. Orchestrators such as {{ece}} and {{eck}}, and other tools such as code clients and SDKs, are versioned independently of the Elastic Stack. The {{ecloud}} console and {{serverless-short}} projects are always automatically updated with the latest changes. The Elastic Stack products use semantic versioning in the `X.Y.Z` format, such as `9.0.0`. From 5d179330f9ff249f6129a548a1ce1a054263d2ee Mon Sep 17 00:00:00 2001 From: lcawl Date: Thu, 4 Sep 2025 13:22:05 -0700 Subject: [PATCH 21/39] Revert "Remove introduction" This reverts commit bcc20b9fbdde58f62d00ae94b579575b39c1d86c. --- get-started/introduction.md | 60 +++++++++++++++++++++++++++++++++++++ get-started/toc.yml | 1 + manage-data/index.md | 2 +- redirects.yml | 4 --- versions.md | 1 + 5 files changed, 63 insertions(+), 5 deletions(-) create mode 100644 get-started/introduction.md diff --git a/get-started/introduction.md b/get-started/introduction.md new file mode 100644 index 0000000000..32f8f19024 --- /dev/null +++ b/get-started/introduction.md @@ -0,0 +1,60 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/elasticsearch/reference/current/elasticsearch-intro-what-is-es.html +products: + - id: elasticsearch +--- + +# Use cases [introduction] +$$$what-is-kib$$$ +$$$what-is-es$$$ + +The {{stack}} is used for a wide and growing range of use cases. Here are a few examples: + +## Elasticsearch + +- **Full-text search**: Build a fast, relevant full-text search solution using inverted indexes, tokenization, and text analysis. +- **Vector database**: Store and search vectorized data, and create vector embeddings with built-in and third-party natural language processing (NLP) models. +- **Semantic search**: Understand the intent and contextual meaning behind search queries using tools like synonyms, dense vector embeddings, and learned sparse query-document expansion. +- **Hybrid search**: Combine full-text search with vector search using state-of-the-art ranking algorithms. +- **Build search experiences**: Add hybrid search capabilities to apps or websites, or build enterprise search engines over your organization’s internal data sources. +- **Retrieval augmented generation (RAG)**: Use {{ecloud}} as a retrieval engine to supplement generative AI models with more relevant, up-to-date, or proprietary data for a range of use cases. +- **Geospatial search**: Search for locations and calculate spatial relationships using geospatial queries. + +[**Get started with {{es}} →**](../solutions/search/get-started.md) + +## Observability + +- **Logs, metrics, and traces**: Collect, store, and analyze logs, metrics, and traces from applications, systems, and services. +- **Application performance monitoring (APM)**: Monitor and analyze the performance of business-critical software applications. +- **Real user monitoring (RUM)**: Monitor, quantify, and analyze user interactions with web applications. +- **OpenTelemetry**: Reuse your existing instrumentation to send telemetry data to the Elastic Stack using the OpenTelemetry standard. + +[**Get started with {{observability}} →**](../solutions/observability/get-started.md) + +## Security + +- **Security information and event management (SIEM)**: Collect, store, and analyze security data from applications, systems, and services. +- **Endpoint security**: Monitor and analyze endpoint security data. +- **Threat hunting**: Search and analyze data to detect and respond to security threats. + +[**Get started with {{elastic-sec}} →**](../solutions/security/get-started.md) + +This is just a sample of search, observability, and security use cases enabled by {{ecloud}}. Refer to Elastic [customer success stories](https://www.elastic.co/customers/success-stories) for concrete examples across a range of industries. + +% TODO: cleanup these links, consolidate with Explore and analyze + +$$$visualize-and-analyze$$$ +$$$extend-your-use-case$$$ +$$$_manage_your_data$$$ +$$$_alert_and_take_action$$$ +$$$organize-and-secure$$$ +$$$organize-in-spaces$$$ +$$$_organize_your_content_with_tags$$$ +$$$intro-kibana-Security$$$ +$$$_log_in$$$ +$$$extend-your-use-case$$$ +$$$try-kibana$$$ +$$$_view_all_kib_has_to_offer$$$ +$$$_audit_access$$$ +$$$_secure_access$$$ diff --git a/get-started/toc.yml b/get-started/toc.yml index 92a6fbdca0..3a28e67655 100644 --- a/get-started/toc.yml +++ b/get-started/toc.yml @@ -1,6 +1,7 @@ project: 'Get started' toc: - file: index.md + - file: introduction.md - file: the-stack.md - file: deployment-options.md - file: versioning-availability.md diff --git a/manage-data/index.md b/manage-data/index.md index 5cb2dfe848..02209a3a17 100644 --- a/manage-data/index.md +++ b/manage-data/index.md @@ -6,7 +6,7 @@ applies_to: # Manage data -Whether you're looking to build a fast and relevant search solution, monitor business-critical applications and infrastructure, monitor endpoint security data, or one of the [many other use cases Elastic supports](/get-started/the-stack.md), you'll need to understand how to ingest and manage data stored in {{es}}. +Whether you're looking to build a fast and relevant search solution, monitor business-critical applications and infrastructure, monitor endpoint security data, or one of the [many other use cases Elastic supports](/get-started/introduction.md), you'll need to understand how to ingest and manage data stored in {{es}}. ## Learn how data is stored diff --git a/redirects.yml b/redirects.yml index 0f21a4adee..eb70176dfd 100644 --- a/redirects.yml +++ b/redirects.yml @@ -334,9 +334,5 @@ redirects: # Related to https://github.com/elastic/docs-content/pull/2719 'solutions/search/api-quickstarts.md': 'solutions/search/get-started/quickstarts.md' -# Intro section - - 'get-started/introduction.md': 'get-started/index.md' - # Related to https://github.com/elastic/docs-content/pull/2745 'solutions/search/run-elasticsearch-locally.md': 'deploy-manage/deploy/self-managed/local-development-installation-quickstart.md' diff --git a/versions.md b/versions.md index 8c95a79142..0c47e1900d 100644 --- a/versions.md +++ b/versions.md @@ -79,3 +79,4 @@ To access our previous documentation system, which contains the documentation fo - Elastic Cloud Enterprise — [other versions](https://www.elastic.co/guide/en/cloud-enterprise/index.html) - Elastic Cloud on Kubernetes — [other versions](https://www.elastic.co/guide/en/cloud-on-k8s/index.html) - Elastic Cloud Control — [other versions](https://www.elastic.co/guide/en/ecctl/index.html) + From 55a7c89f4e7e45ffcaea77dda8a42a7c812c489f Mon Sep 17 00:00:00 2001 From: lcawl Date: Thu, 4 Sep 2025 13:56:58 -0700 Subject: [PATCH 22/39] Re-separate solutions and stack overview --- get-started/introduction.md | 44 ++++++++++++++++++++++++++++++++++ get-started/the-stack.md | 47 ++----------------------------------- 2 files changed, 46 insertions(+), 45 deletions(-) diff --git a/get-started/introduction.md b/get-started/introduction.md index 32f8f19024..1302298312 100644 --- a/get-started/introduction.md +++ b/get-started/introduction.md @@ -3,8 +3,51 @@ mapped_pages: - https://www.elastic.co/guide/en/elasticsearch/reference/current/elasticsearch-intro-what-is-es.html products: - id: elasticsearch +applies_to: + stack: + serverless: --- +# Solutions and use cases [introduction] +Let's take a closer look at each of our three solutions, their use cases and core concepts so you can decide which product best suits your business needs. + +- Use [{{es}}](/solutions/search.md) if you want to build powerful, scalable searches to quickly search, analyze, and visualize large amounts of data for real-time insights. + +- Use [Elastic {{observability}}](/solutions/observability.md) if you want to monitor the health and performance of your IT environments and applications or send telemetry data. + +- Use [{{elastic-sec}}](/solutions/security.md) if you want to leverage search and analytics to monitor data, detect anomalous activity, and protect against cyber threats in real time. + +You can also check out our [customer success stories](https://www.elastic.co/customers/success-stories) to learn how various organizations are utilizing our products for their specific business needs. + + + diff --git a/get-started/the-stack.md b/get-started/the-stack.md index 260b06e5c2..d0eed601df 100644 --- a/get-started/the-stack.md +++ b/get-started/the-stack.md @@ -10,54 +10,11 @@ products: - id: kibana --- -# Solutions and the Search AI platform - -Let's take a closer look at each of our three solutions, their use cases and core concepts so you can decide which product best suits your business needs. - -- Use [{{es}}](/solutions/search.md) if you want to build powerful, scalable searches to quickly search, analyze, and visualize large amounts of data for real-time insights. - -- Use [Elastic {{observability}}](/solutions/observability.md) if you want to monitor the health and performance of your IT environments and applications or send telemetry data. - -- Use [{{elastic-sec}}](/solutions/security.md) if you want to leverage search and analytics to monitor data, detect anomalous activity, and protect against cyber threats in real time. - -You can also check out our [customer success stories](https://www.elastic.co/customers/success-stories) to learn how various organizations are utilizing our products for their specific business needs. - -## Search AI platform overview +# The {{stack}} Elastic's Search AI platform is built around the {{stack}}, a group of open source products and components designed for ingesting, storing, searching, analyzing, and visualizing data. -Continue reading to learn how these components work together. - -### Ingest data from a wide variety of sources - -**Ingestion** is the process of collecting data from your sources and sending it to {{es}}. The Elastic platform is engineered for flexibility, designed to ingest data from a wide variety of sources. - -#### Get data into Elasticsearch - -When building custom search experiences or indexing general data, you have several direct and flexible ingestion options: - -* **Native APIs and language clients:** Index any JSON document directly using the {{es}} REST API or the official clients for languages like Python, Java, Go, and more. -* **Web crawler:** Ingest content from public or private websites to make them searchable. -* **Enterprise connectors:** Use pre-built connectors to sync data from external content sources like SharePoint, Confluence, Jira, and databases like MongoDB or PostgreSQL into {{es}}. - -#### Get data into Elastic Observability - -For full-stack observability, ingest logs, metrics, traces, and profiles using these OpenTelemetry-native methods: - -* **{{edot}}:** Use Elastic's supported OpenTelemetry SDKs for custom application instrumentation and the Collector for vendor-neutral infrastructure telemetry. -* **{{agent}}:** A single agent to collect infrastructure logs and metrics from hosts, containers, and cloud services using pre-built integrations. -* **APM Agents:** Provide streamlined, out-of-the-box auto-instrumentation of your applications to capture detailed traces and performance metrics. -* **{{ls}} and {{beats}}:** Leverage these battle-tested tools for advanced log processing pipelines (Logstash) and lightweight data shipping (Beats). - -#### Get data into Elastic Security - -**{{agent}}** is the core ingestion method for security data. As a single, unified agent, it's purpose-built to collect the rich data needed for modern threat detection and response, including: - -* **Endpoint Security:** Collects detailed event data for threat prevention, detection (EDR), and response directly from your endpoints. -* **System & Audit Logs:** Gathers security-relevant logs and audit trails from hosts across your environment. -* **Network Activity:** Captures network data to help detect intrusions and suspicious behavior. - -Fleets of Elastic Agents are managed centrally, simplifying deployment and policy enforcement across thousands of hosts. +Continue reading to learn how these components work together. ### Store your data From 2e79592a7d4b033b310b1cbaa0562d63167f0253 Mon Sep 17 00:00:00 2001 From: lcawl Date: Thu, 4 Sep 2025 15:26:12 -0700 Subject: [PATCH 23/39] Re-add lingering anchors --- get-started/introduction.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/get-started/introduction.md b/get-started/introduction.md index 1302298312..0b23a64a19 100644 --- a/get-started/introduction.md +++ b/get-started/introduction.md @@ -9,7 +9,7 @@ applies_to: --- # Solutions and use cases [introduction] -Let's take a closer look at each of our three solutions, their use cases and core concepts so you can decide which product best suits your business needs. +Let's take a closer look at each of our three solutions, their use cases and core concepts so you can decide which product best suits your business needs. - Use [{{es}}](/solutions/search.md) if you want to build powerful, scalable searches to quickly search, analyze, and visualize large amounts of data for real-time insights. @@ -49,8 +49,6 @@ Fleets of Elastic Agents are managed centrally, simplifying deployment and polic --> % TODO: cleanup these links, consolidate with Explore and analyze - +$$$what-is-kib$$$ +$$$what-is-es$$$ $$$visualize-and-analyze$$$ $$$extend-your-use-case$$$ $$$_manage_your_data$$$ @@ -101,4 +100,3 @@ $$$try-kibana$$$ $$$_view_all_kib_has_to_offer$$$ $$$_audit_access$$$ $$$_secure_access$$$ ---> From 214d14e06bc9341de939428d11561e790fcb690a Mon Sep 17 00:00:00 2001 From: Janeen Roberts Date: Fri, 5 Sep 2025 18:40:28 -0400 Subject: [PATCH 24/39] Update introduction.md --- get-started/introduction.md | 97 +++++++++++++++++++++++++++++++++++-- 1 file changed, 92 insertions(+), 5 deletions(-) diff --git a/get-started/introduction.md b/get-started/introduction.md index 0b23a64a19..d6ca249d01 100644 --- a/get-started/introduction.md +++ b/get-started/introduction.md @@ -9,15 +9,102 @@ applies_to: --- # Solutions and use cases [introduction] -Let's take a closer look at each of our three solutions, their use cases and core concepts so you can decide which product best suits your business needs. +Elastic offers three major search-powered solutions: {{es}}, {{observability}}, and {{elastic-sec}}— all built on {{es}}. Whether you're building a search experience, monitoring your infrastructure, or securing your environment, this topic helps you understand what each Elastic solution offers—and how to choose the right one for your business needs. -- Use [{{es}}](/solutions/search.md) if you want to build powerful, scalable searches to quickly search, analyze, and visualize large amounts of data for real-time insights. +Refer to the following table for a quick reference of which solution you may need based on your needs. -- Use [Elastic {{observability}}](/solutions/observability.md) if you want to monitor the health and performance of your IT environments and applications or send telemetry data. +| Your need | Recommended solution | Best for | +|-----------|-------------------|----------| +| Build powerful, scalable searches to quickly search, analyze, and visualize large amounts of data for real-time insights | [{{es}}](/solutions/search.md) | Developers, architects, data engineers | +| Observe and monitor system health and performance or send telemetry data | [Elastic {{observability}}](/solutions/observability.md) | DevOps, SREs, IT operations | +| Monitor data for anomalous activity, detect, prevent, and respond to security incidents | [{{elastic-sec}}](/solutions/security.md) | SOC teams, security analysts, IT security admins | -- Use [{{elastic-sec}}](/solutions/security.md) if you want to leverage search and analytics to monitor data, detect anomalous activity, and protect against cyber threats in real time. +:::{tip} +Check out our [customer success stories](https://www.elastic.co/customers/success-stories) to learn how various organizations are utilizing our products for their specific business needs. +::: -You can also check out our [customer success stories](https://www.elastic.co/customers/success-stories) to learn how various organizations are utilizing our products for their specific business needs. +## Elasticsearch + +### Overview [search-overview] + +{{es}} is an open-source, distributed search and analytics engine built on Apache Lucene, used for high-performance full-text search, log analytics, business analytics, and operational intelligence. It stores data in JSON documents, provides REST APIs for easy interaction, and functions as a NoSQL database that enables fast searches, analytics, and AI-driven applications. Built on Apache Lucene, {{es}} is the core of the Search AI platform. + +### Use cases [search-use-cases] +Use {{es}} for a wide range of business needs: + +* **Full-text search:** Quickly find specific words or phrases within large volumes of text-based data, such as documents, articles, or product descriptions. Documents and search queries are transformed to enable returning relevant results instead of simply exact term matches. +* **Semantic search:** Go beyond keyword matching to understand the user's intent. This helps your search engine to recognize what users mean, not just what they type, by understanding synonyms and related concepts. +* **Hybrid search:** Get the best of both worlds by combining traditional keyword search with modern, meaning-based vector search. This ensures your users get the most accurate and relevant results every time. +* **Vector database:** Search for data based on its meaning and context, not just keywords. This allows you to find similar items, like pictures that have the same style or songs with a similar vibe, by understanding the underlying concepts. +* **Retrieval augmented generation (RAG):** Connect your generative AI applications (like chatbots) to your own private data. This allows your AI to provide more accurate, up-to-date, and relevant answers based on your proprietary information. +* **Geospatial search:** Build location-aware features into your applications. This allows you to do things like find all available services within a certain radius, calculate the distance between two points, or identify which delivery routes are most efficient. + +### Core concepts [search-concepts] +Familiarize yourself with the following {{es}} concepts. + +* **Index:** A collection of documents with similar characteristics that are uniquely identified by a name or an alias. The name is used to target the index in search queries and other operations. + **Field:** The smallest individual unit of data within a document. It represents a specific property or attribute of the data you're indexing (for example, title, author, date, summary, etc.). Fields are critical for indexing, as they determine how data is analyzed and stored to enable efficient searching. +* **Document:** Any structured data encoded in JSON. {{es}} organizes and stores data into documents. +* **Shard:** A self-contained Lucene index that contains a subset of the documents in the index. Shards allow {{es}} to horizontally scale by splitting an index's data into smaller, manageable partitions, thus improving performance. Each document in an index belongs to one primary shard. +* **Replica:** A copy of a primary shard. Replicas maintain redundant copies of your data across the nodes in your cluster. This protects against hardware failure and increases capacity to serve read requests like searching or retrieving a document. +* **Node:** A single running instance of the {{es}} server. +* **Cluster:** A collection of one or more nodes that holds all of your data and provides indexing and search capabilities across all nodes. Elasticsearch clusters feature primary and replica shards to provide failover in the case of a node going down. When a primary shard goes down, the replica takes its place. +* **Mapping:** The process that defines how a document and the fields it contains are stored and indexed. + +## Elastic {{observability}} + +### Overview [observability-overview] + +Elastic {{observability}} provides unified observability across applications and infrastructure. It brings together logs, metrics, application traces, user experience data, and more into a single, integrated platform. This consolidation allows for powerful, cross-referenced analysis, enabling teams to move from detecting issues to understanding their root causes with speed and efficiency. By leveraging the search and analytics capabilities of {{es}}, it offers a holistic view of system behavior. + +Available as a fully-managed {{serverless-short}} project or a self-managed deployment, Elastic {{observability}} embraces open standards like OpenTelemetry for flexible data collection, and offers scalable, cost-efficient data retention with tiered storage. + +### Use cases [observability-use-cases] + +Apply Elastic {{observability}} to a wide range of scenarios to improve operational awareness and system reliability: + +* **Log Monitoring and Analytics:** Centralize and analyze petabytes of log data from any source. This enables quick searching, ad-hoc queries with ES|QL, and visualization with prebuilt dashboards to diagnose issues. +* **Application Performance Monitoring (APM):** Gain code-level visibility into application performance. By collecting and analyzing traces with native OTel support, teams can identify bottlenecks, track errors, and optimize the end-user experience. +* **Infrastructure Monitoring:** Monitor metrics from servers, virtual machines, containers, and serverless environments with over 400 out-of-the-box integrations, including OpenTelemetry. This provides deep insights into resource utilization and overall system health. +* **Digital Experience Monitoring:** + * **Real User Monitoring (RUM):** Capture and analyze data on how real users are interacting with web applications to improve perceived performance. + * **Synthetic Monitoring:** Proactively simulate user journeys and API calls to test application availability and functionality. + * **Uptime Monitoring:** Continuously check the status of services and applications to ensure they are available. +* **Universal Profiling:** Gain visibility into system performance and identify expensive lines of code without application instrumentation, helping to increase CPU efficiency and reduce cloud spend. +* **LLM Observability:** Gain deep insights into the performance, usage, and costs of Large Language Model (LLM) prompts and responses. +* **Incident Response and Management:** Facilitate the investigation of operational incidents by correlating data from multiple sources, which accelerates root cause analysis and resolution. + +### Core concepts [observability-concepts] + +## {{elastic-sec}} + +### Overview + +{{elastic-sec}} is a unified security solution that integrates SIEM (Security Information and Event Management), endpoint security, and cloud security into a single platform so you can detect, prevent, and respond to cyber threats across your entire environment in near real time. Elastic Security leverages {{es}} powerful platform for its searching and analytic capabilities, and {{kib}} for its visualization features. By combining prevention, detection, and response capabilities, {{elastic-sec}} helps your organization reduce the risk of successful attacks. + +Install {{elastic-sec}} on one of our Elastic-managed Cloud deployments or on your own self-managed infrastructure. + +### Use cases + +Use {{elastic-sec}} for a wide variety of security needs to ensure your systems are protected from the latest threats. + +* **SIEM:** {{elastic-sec}} acts as a modern SIEM that provides a centralized platform for ingesting, analyzing, and managing security data from various sources. +* **Third-party integration support:** Ingest data from a variety of tools and data sources so you can centralize your security data. +* **Threat detection and analytics:** Identify unknown threats by enabling prebuilt or custom detection rules, automatically detect anomalous activity with built-in machine learning jobs, or proactively search for threats using our powerful threat hunting and interactive visualization tools. +* **Automatic migration:** Migrate SIEM rules from other platforms to Elastic Security. +* **Endpoint protection and threat prevention:** Automatically stop cybersecurity attacks—such as malware and ransomware—before damage and loss can occur. +* **AI-powered features:** Elastic Security leverages generative AI to help enhance threat detection, assist with incident response, and day-to-day security operations. For example, the AI Assistant can summarize alerts, identify relevant information, suggest investigation steps, and even generate complex queries from natural language input. +* **Custom dashboards and visualizations:** Create custom dashboards and visualizations to gain insights into security events. +* **Cloud Security:** Elastic Security provides the following cloud features: + * **Cloud Security Posture Management (CSPM) and Kubernetes Security Posture Management (KSPM):** Check cloud service configurations against security benchmarks to identify and resolve misconfigurations that could be exploited. + * **Cloud Workload Protection:** Get visibility and runtime protection for cloud workloads. + * **Vulnerability Management:** Uncover vulnerabilities within your cloud infrastructure. + + ### Core concepts + + + +Let's take a more comprehensive look at the various use cases for + + \ No newline at end of file diff --git a/get-started/the-stack.md b/get-started/the-stack.md deleted file mode 100644 index d0eed601df..0000000000 --- a/get-started/the-stack.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/starting-with-the-elasticsearch-platform-and-its-solutions/current/stack-components.html - - https://www.elastic.co/guide/en/kibana/current/introduction.html - - https://www.elastic.co/guide/en/kibana/current/index.html - - https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html - - https://www.elastic.co/guide/en/elastic-stack/current/overview.html -products: - - id: elastic-stack - - id: kibana ---- - -# The {{stack}} - -Elastic's Search AI platform is built around the {{stack}}, a group of open source products and components designed for ingesting, storing, searching, analyzing, and visualizing data. - -Continue reading to learn how these components work together. - -### Store your data - -{{es}} is the heart of the Elastic Stack, functioning as the central place to store and search your data. It stores data as **JSON documents**, which are structured data objects. These documents are organized into **indices**, which you can think of as collections of similar documents. - -Elasticsearch is built to be a resilient and scalable distributed system. It runs as a **cluster** of one or more servers, called **nodes**. When you add data to an index, it's divided into pieces called **shards**, which are spread across the various nodes in the cluster. This architecture allows Elasticsearch to handle large volumes of data and ensures that your data remains available even if a node fails. - -Learn more in [The {{es}} data store](/manage-data/data-store.md). - -### Visualize and query your data [kibana-navigation-search] - -While {{es}} stores your data, **Kibana** is the user interface where you can explore, visualize, and manage it. It provides a window into your data, allowing you to quickly gain insights and understand trends. - -With Kibana, you can: - -* Use **Discover** to interactively search and filter your raw data. -* Build custom **visualizations** like charts, graphs, and metrics with tools like **Lens**, which offers a drag-and-drop experience. -* Assemble your visualizations into interactive **dashboards** to get a comprehensive overview of your information. -* Analyze geospatial data using the powerful **Maps** application. - -At the same time, Kibana works as the user interface of all Elastic solutions, like Elastic Security and Elastic Observability, providing ways of configuring Elastic to suit your needs and offering interactive guidance. - -A **query** is a question you ask about your data, and Elastic provides several powerful languages to do so. You can query data directly through the API or through the user interface in Kibana. - -* **Query DSL** is a full-featured JSON-style query language that enables complex searching, filtering, and aggregations. It is the original and most powerful query language for Elasticsearch today. -* **Elasticsearch Query Language (ES|QL)** is a powerful, modern query language that uses a familiar pipe-based syntax to transform and aggregate your data at search time. -* **Event Query Language (EQL)** is a specialized language designed to query sequences of events, which is particularly useful for security analytics and threat hunting. -* **Kibana Query Language (KQL)** is the text-based language used in the **Discover** search bar, perfect for interactive filtering and exploration. - -Learn more in [](/explore-analyze/index.md). - -### Use the APIs to automate operations and management - -Nearly every aspect of Elasticsearch can be configured and managed programmatically through its extensive REST APIs. This allows you to automate repetitive tasks and integrate Elastic management into your existing operational workflows. You can use the APIs to manage indices, update cluster settings, run complex queries, and configure security. - -The **Console** tool in Kibana provides an interactive way to send requests directly to the Elasticsearch API and view the responses. For secure, automated access, you can create and manage **API keys** to authenticate your scripts and applications. This API-first approach is fundamental to enabling infrastructure-as-code practices and managing your deployments at scale. - -Learn more in [Elastic APIs](https://www.elastic.co/docs/api). \ No newline at end of file diff --git a/get-started/toc.yml b/get-started/toc.yml index 3a28e67655..4bf8f0c0d4 100644 --- a/get-started/toc.yml +++ b/get-started/toc.yml @@ -2,7 +2,7 @@ project: 'Get started' toc: - file: index.md - file: introduction.md - - file: the-stack.md + - file: search-ai-platform.md - file: deployment-options.md - file: versioning-availability.md - file: howto-use-the-docs.md \ No newline at end of file diff --git a/get-started/versioning-availability.md b/get-started/versioning-availability.md index d99a43f36e..9e731d5024 100644 --- a/get-started/versioning-availability.md +++ b/get-started/versioning-availability.md @@ -52,7 +52,7 @@ Features available to you can differ based on deployment type, product lifecycle | Category | Example | | ----- | ----- | -| Elastic Stack versions | [{{stack}}](/get-started/the-stack.md) version 9.0.0 and later, including 9.1.0 | +| Elastic Stack versions | [{{search-platform}}](/get-started/search-ai-platform.md) version 9.0.0 and later, including 9.1.0 | | Deployment types | [{{serverless-full}}](/deploy-manage/deploy/elastic-cloud/serverless.md), [{{ech}}](/deploy-manage/deploy/elastic-cloud/cloud-hosted.md), [{{ece}}](/deploy-manage/deploy/cloud-enterprise.md), [{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md), and [Self-managed deployments](/deploy-manage/deploy/self-managed.md) | | Orchestrator versions | [{{ece}}](/deploy-manage/deploy/cloud-enterprise.md) 4.0.0 and later, [{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md) 3.0.0 and later | | Serverless project types | {{es}}, Elastic {{observability}}, and {{elastic-sec}} | diff --git a/manage-data/data-store/manage-data-from-the-command-line.md b/manage-data/data-store/manage-data-from-the-command-line.md index 213ce7cf9d..b4f5c420b3 100644 --- a/manage-data/data-store/manage-data-from-the-command-line.md +++ b/manage-data/data-store/manage-data-from-the-command-line.md @@ -15,7 +15,7 @@ products: Learn how to index, update, retrieve, search, and delete documents in an {{es}} cluster from the command line. ::::{tip} -If you are looking for a user interface for {{es}} and your data, head on over to [Kibana](/get-started/the-stack.md)! Not only are there amazing visualization and index management tools, Kibana includes realistic sample data sets to play with so that you can get to know what you *could* do with your data. +If you are looking for a user interface for {{es}} and your data, head on over to {{kib}}! Not only are there amazing visualization and index management tools, {{kib}} includes realistic sample data sets to play with so that you can get to know what you *could* do with your data. :::: ## Before you begin [before-you-begin] diff --git a/redirects.yml b/redirects.yml index eb70176dfd..f34cb8eaeb 100644 --- a/redirects.yml +++ b/redirects.yml @@ -336,3 +336,6 @@ redirects: # Related to https://github.com/elastic/docs-content/pull/2745 'solutions/search/run-elasticsearch-locally.md': 'deploy-manage/deploy/self-managed/local-development-installation-quickstart.md' + +# Related to https://github.com/elastic/docs-content/pull/2795 + 'get-started/the-stack.md': 'get-started/search-ai-platform.md' \ No newline at end of file diff --git a/reference/fleet/fleet-settings.md b/reference/fleet/fleet-settings.md index 1d31e858ed..b818875992 100644 --- a/reference/fleet/fleet-settings.md +++ b/reference/fleet/fleet-settings.md @@ -155,7 +155,7 @@ You can specify a proxy server to be used in {{fleet-server}}, {{agent}} outputs After an {{agent}} has been unenrolled in {{fleet}}, a number of documents about the agent are retained just in case the agent needs to be recovered at some point. You can choose to have all data related to an unenrolled agent deleted automatically. -Note that this option can also be enabled by adding the `xpack.fleet.enableDeleteUnenrolledAgents: true` setting to the [{{kib}} settings file](/get-started/the-stack.md). +Note that this option can also be enabled by adding the `xpack.fleet.enableDeleteUnenrolledAgents: true` setting to the {{kib}} settings file. To enable automatic deletion of unenrolled agents: diff --git a/reference/fleet/migrate-auditbeat-to-agent.md b/reference/fleet/migrate-auditbeat-to-agent.md index e980059761..d997ef38d2 100644 --- a/reference/fleet/migrate-auditbeat-to-agent.md +++ b/reference/fleet/migrate-auditbeat-to-agent.md @@ -34,7 +34,7 @@ The following table describes the integrations you can use instead of {{auditbea | {{fleet}} [system](integration-docs://reference/system/index.md) integration | Collect login events for Windows through the [Security event log](integration-docs://reference/system/index.md#security). | | [System.package](beats://reference/auditbeat/auditbeat-dataset-system-package.md) dataset | [System Audit](integration-docs://reference/system_audit/index.md) integration | This integration is a direct replacement of the System Package dataset. Starting in {{stack}} 8.7, you can port rules and configuration settings to this integration. This integration currently schedules collection of information such as:

    * [rpm_packages](https://www.osquery.io/schema/5.1.0/#rpm_packages)
    * [deb_packages](https://www.osquery.io/schema/5.1.0/#deb_packages)
    * [homebrew_packages](https://www.osquery.io/schema/5.1.0/#homebrew_packages)
    | | [Osquery](integration-docs://reference/osquery/index.md) or [Osquery Manager](integration-docs://reference/osquery_manager/index.md) integration | Schedule collection of information like:

    * [rpm_packages](https://www.osquery.io/schema/5.1.0/#rpm_packages)
    * [deb_packages](https://www.osquery.io/schema/5.1.0/#deb_packages)
    * [homebrew_packages](https://www.osquery.io/schema/5.1.0/#homebrew_packages)
    * [apps](https://www.osquery.io/schema/5.1.0/#apps) (MacOS)
    * [programs](https://www.osquery.io/schema/5.1.0/#programs) (Windows)
    * [npm_packages](https://www.osquery.io/schema/5.1.0/#npm_packages)
    * [atom_packages](https://www.osquery.io/schema/5.1.0/#atom_packages)
    * [chocolatey_packages](https://www.osquery.io/schema/5.1.0/#chocolatey_packages)
    * [portage_packages](https://www.osquery.io/schema/5.1.0/#portage_packages)
    * [python_packages](https://www.osquery.io/schema/5.1.0/#python_packages)
    | -| [System.process](beats://reference/auditbeat/auditbeat-dataset-system-process.md) dataset | [Endpoint](/solutions/security/configure-elastic-defend/install-elastic-defend.md) | Best replacement because out of the box it reports events forevery process in [ECS](integration-docs://reference/index.md) format and has excellentintegration in [Kibana](/get-started/the-stack.md). | +| [System.process](beats://reference/auditbeat/auditbeat-dataset-system-process.md) dataset | [Endpoint](/solutions/security/configure-elastic-defend/install-elastic-defend.md) | Best replacement because out of the box it reports events forevery process in [ECS](integration-docs://reference/index.md) format and has excellentintegration in Kibana. | | [Custom Windows event log](integration-docs://reference/winlog/index.md) and [Sysmon](integration-docs://reference/sysmon_linux/index.md) integrations | Provide process data. | | [Osquery](integration-docs://reference/osquery/index.md) or[Osquery Manager](integration-docs://reference/osquery_manager/index.md) integration | Collect data from the [process](https://www.osquery.io/schema/5.1.0/#process) table on some OSeswithout polling. | | [System.socket](beats://reference/auditbeat/auditbeat-dataset-system-socket.md) dataset | [Endpoint](/solutions/security/configure-elastic-defend/install-elastic-defend.md) | Best replacement because it supports monitoring network connections on Linux,Windows, and MacOS. Includes process and user metadata. Currently does notdo flow accounting (byte and packet counts) or domain name enrichment (but doescollect DNS queries separately). | diff --git a/solutions/index.md b/solutions/index.md index 1b2030cded..b09dface71 100644 --- a/solutions/index.md +++ b/solutions/index.md @@ -11,7 +11,7 @@ products: # Solutions and use cases :::{tip} -New to Elastic? Refer to [get started](/get-started/the-stack.md) to understand the Elastic Stack and its components, and your deployment options. +New to Elastic? Refer to [get started](/get-started/search-ai-platform.md) to understand the Elastic Stack and its components, and your deployment options. ::: Users reach for Elastic products, features, and tools for three main use cases: observability, security, and search. diff --git a/solutions/observability/apm/apm-server-binary.md b/solutions/observability/apm/apm-server-binary.md index f28f88994f..132573c8dc 100644 --- a/solutions/observability/apm/apm-server-binary.md +++ b/solutions/observability/apm/apm-server-binary.md @@ -21,7 +21,7 @@ You’ll need: * **{{es}}** for storing and indexing data. * **{{kib}}** for visualizing with the Applications UI. -We recommend you use the same version of {{es}}, {{kib}}, and APM Server. See [Installing the {{stack}}](/get-started/the-stack.md) for more information about installing these products. +We recommend you use the same version of {{es}}, {{kib}}, and APM Server. For more information about installing these products, refer to [](/deploy-manage/deploy.md). :::{image} /solutions/images/observability-apm-architecture-diy.png :alt: Install Elastic APM yourself @@ -30,7 +30,7 @@ We recommend you use the same version of {{es}}, {{kib}}, and APM Server. See [I ## Step 1: Install [apm-installing] ::::{note} -**Before you begin**: If you haven’t installed the {{stack}}, do that now. See [Learn how to install the {{stack}} on your own hardware](/get-started/the-stack.md). +**Before you begin**: If you haven’t installed the {{stack}}, do that now. Refer to [](/deploy-manage/deploy.md). :::: To download and install APM Server, use the commands below that work with your system. If you use `apt` or `yum`, you can [install APM Server from our repositories](#apm-setup-repositories) to update to the newest version more easily. diff --git a/solutions/observability/apm/apm-server-fleet-managed.md b/solutions/observability/apm/apm-server-fleet-managed.md index 1dce13a7b6..27f588af9c 100644 --- a/solutions/observability/apm/apm-server-fleet-managed.md +++ b/solutions/observability/apm/apm-server-fleet-managed.md @@ -22,7 +22,7 @@ This guide will explain how to set up and configure a Fleet-managed APM Server. You need {{es}} for storing and searching your data, and {{kib}} for visualizing and managing it. When setting these components up, you need: -* {{es}} cluster and {{kib}} (version 9.0) with a basic license or higher. [Learn how to install the {{stack}} on your own hardware](/get-started/the-stack.md). +* {{es}} cluster and {{kib}} (version 9.0) with a basic license or higher. Refer to [](/deploy-manage/deploy.md). * Secure, encrypted connection between {{kib}} and {{es}}. For more information, refer to [](/deploy-manage/security/self-setup.md). * Internet connection for {{kib}} to download integration packages from the {{package-registry}}. Make sure the {{kib}} server can connect to `https://epr.elastic.co` on port `443`. If your environment has network traffic restrictions, there are ways to work around this requirement. See [Air-gapped environments](/reference/fleet/air-gapped.md) for more information. * {{kib}} user with `All` privileges on {{fleet}} and {{integrations}}. Since many Integrations assets are shared across spaces, users need the {{kib}} privileges in all spaces. diff --git a/solutions/security/get-started/elastic-security-requirements.md b/solutions/security/get-started/elastic-security-requirements.md index 25bed8f20e..0bcae829f6 100644 --- a/solutions/security/get-started/elastic-security-requirements.md +++ b/solutions/security/get-started/elastic-security-requirements.md @@ -25,7 +25,7 @@ stack: {{ecloud}} offers all of the features of {{es}}, {{kib}}, and {{elastic-sec}} as a hosted service available on AWS, GCP, and Azure. To get started, sign up for a [free {{ecloud}} trial](https://cloud.elastic.co/registration?page=docs&placement=docs-body). -For information about installing and managing the {{stack}} yourself, see [Installing the {{stack}}](/get-started/the-stack.md). +For information about installing and managing the {{stack}} yourself, see [](/deploy-manage/deploy/self-managed.md). ### Node role requirements [node-role-requirements] diff --git a/troubleshoot/index.md b/troubleshoot/index.md index dccb53174e..20efedf47e 100644 --- a/troubleshoot/index.md +++ b/troubleshoot/index.md @@ -19,7 +19,8 @@ This section contains troubleshooting resources and guidance to help you resolve If you can't find your issue here, explore the [additional resources](#troubleshoot-additional-resources) or [contact us](#contact-us). :::{note} -You might need to review troubleshooting content for more than one product or topic area. Most Elastic deployments use multiple components from the [Elastic Stack](/get-started/the-stack.md), plus a deployment orchestrator. Check all topics relevant to your infrastructure. +You might need to review troubleshooting content for more than one product or topic area. +Most Elastic deployments use multiple components from the [](/get-started/search-ai-platform.md), plus a deployment orchestrator. Check all topics relevant to your infrastructure. ::: * [{{es}}](/troubleshoot/elasticsearch.md) From 955a58c98b910762bb8a00dfdcedcf1d7a4b76a0 Mon Sep 17 00:00:00 2001 From: lcawl Date: Fri, 5 Sep 2025 20:06:05 -0700 Subject: [PATCH 26/39] Edit search-api-platform.md --- deploy-manage/deploy.md | 3 + deploy-manage/deploy/self-managed.md | 8 +- get-started/search-ai-platform.md | 130 ++++++++------------------- 3 files changed, 48 insertions(+), 93 deletions(-) diff --git a/deploy-manage/deploy.md b/deploy-manage/deploy.md index 5b0f726f70..5f8b224d4c 100644 --- a/deploy-manage/deploy.md +++ b/deploy-manage/deploy.md @@ -89,6 +89,9 @@ Consider this when choosing your deployment type: - Choose {{serverless-full}} if you want automatic access to the latest features and don't want to manage version compatibility - Choose other deployment types if you need more control over version management +:::{include} /deploy-manage/deploy/_snippets/stack-version-compatibility.md +::: + :::{tip} Learn more about [versioning and availability](/get-started/versioning-availability.md). ::: diff --git a/deploy-manage/deploy/self-managed.md b/deploy-manage/deploy/self-managed.md index bfea73c151..b804d3d606 100644 --- a/deploy-manage/deploy/self-managed.md +++ b/deploy-manage/deploy/self-managed.md @@ -29,11 +29,17 @@ Self-hosted options: For a comparison of these deployment options, refer to [Choosing your deployment type](/deploy-manage/deploy.md#choosing-your-deployment-type) and [](/deploy-manage/deploy/deployment-comparison.md). ::: +## Installation order + +:::{include} /deploy-manage/deploy/_snippets/installation-order.md +::: + ## Section overview This section focuses on deploying {{es}} and {{kib}} without an orchestrator. -Depending on your use case, you might need to deploy other components, such as APM, Fleet, or Logstash. Deploying those components is not covered in this section. [Learn more about optional components](/get-started/search-ai-platform.md). +Depending on your use case, you might need to deploy other components, such as APM, Fleet, or Logstash. +Deploying those components is not covered in this section. [Learn more about optional components](/get-started/search-ai-platform.md). This section covers the following tasks: diff --git a/get-started/search-ai-platform.md b/get-started/search-ai-platform.md index a9bc10d9fe..1391d4a021 100644 --- a/get-started/search-ai-platform.md +++ b/get-started/search-ai-platform.md @@ -14,7 +14,7 @@ Elastic provides a fusion of search technology and artifical intelligence in the It is the foundation for Elastic's two out-of-the-box [solutions](/get-started/introduction.md) and is the platform of choice for developers seeking to build next generation, generative AI powered applications and services. The {{search-platform}} evolved from the {{stack}} and continues to be open by design. -It's a fast and highly scalable set of components — {{es}}, {{kib}}, {{beats}}, {{ls}}, and others — that together enable you to securely take data from any source, in any format, and then process, store, search, analyze, and visualize it. +It's a fast and highly scalable set of components — {{es}}, {{kib}}, {{beats}}, {{ls}}, and others — that together enable you to securely take data from any source, in any format, and then store, search, analyze, and visualize it. You have many options for deploying the {{search-platform}} to suit your needs, which are summarized in [](/get-started/deployment-options.md). @@ -22,7 +22,7 @@ You have many options for deploying the {{search-platform}} to suit your needs, To learn how to deploy {{es}}, {{kib}}, and supporting orchestration technologies, refer to [](/deploy-manage/index.md). To learn how to deploy additional ingest and consume components, refer to the documentation for the component. ::: - - - \ No newline at end of file From bdaec645c671bc3a1111e39a79d3c3cfb92e0c6c Mon Sep 17 00:00:00 2001 From: lcawl Date: Mon, 8 Sep 2025 09:57:33 -0700 Subject: [PATCH 27/39] Fix broken links to the-stack.md --- .../deploy/self-managed/_snippets/install-next-steps.md | 2 +- deploy-manage/deploy/self-managed/_snippets/ports.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy-manage/deploy/self-managed/_snippets/install-next-steps.md b/deploy-manage/deploy/self-managed/_snippets/install-next-steps.md index 49a8735e4e..2f67d078fc 100644 --- a/deploy-manage/deploy/self-managed/_snippets/install-next-steps.md +++ b/deploy-manage/deploy/self-managed/_snippets/install-next-steps.md @@ -6,7 +6,7 @@ You now have a test {{es}} environment set up. Before you start serious developm You can also do the following: -* Consider installing [additional {{stack}} components](/get-started/the-stack.md). +* Consider installing [additional {{stack}} components](/get-started/search-ai-platform.md). * Learn how to [ingest data into {{es}}](/manage-data/index.md). * Learn about [production considerations](/deploy-manage/production-guidance.md). * Explore [other topics](/deploy-manage/deploy/self-managed.md#other-important-sections) to learn how to secure and manage your cluster. \ No newline at end of file diff --git a/deploy-manage/deploy/self-managed/_snippets/ports.md b/deploy-manage/deploy/self-managed/_snippets/ports.md index 5519dd5719..09b3bf7a47 100644 --- a/deploy-manage/deploy/self-managed/_snippets/ports.md +++ b/deploy-manage/deploy/self-managed/_snippets/ports.md @@ -10,4 +10,4 @@ These settings can be overridden in the relevant configuration file. | 9300 and onwards | TCP | Transport API. Used for intra-cluster communications and client access via the transport API (Java client). | Elasticsearch [`transport.port`](elasticsearch://reference/elasticsearch/configuration-reference/networking-settings.md#common-network-settings) | | 5601 | HTTP | {{kib}} default access port. | Kibana [`server.port`](kibana://reference/configuration-reference/general-settings.md#server-port) | -Additional ports might be required for [optional {{stack}} components](/get-started/the-stack.md). Refer to the installation guide for the component that you want to install. \ No newline at end of file +Additional ports might be required for [optional {{stack}} components](/get-started/search-ai-platform.md). Refer to the installation guide for the component that you want to install. \ No newline at end of file From 9c8f2b5c56dc95055b2933150e74e24c177481c4 Mon Sep 17 00:00:00 2001 From: Janeen Roberts Date: Mon, 8 Sep 2025 18:48:48 -0400 Subject: [PATCH 28/39] Update introduction.md Saving changes. --- get-started/introduction.md | 120 ++++++++++++++++++++++++------------ 1 file changed, 81 insertions(+), 39 deletions(-) diff --git a/get-started/introduction.md b/get-started/introduction.md index d6ca249d01..990e710b26 100644 --- a/get-started/introduction.md +++ b/get-started/introduction.md @@ -23,33 +23,7 @@ Refer to the following table for a quick reference of which solution you may nee Check out our [customer success stories](https://www.elastic.co/customers/success-stories) to learn how various organizations are utilizing our products for their specific business needs. ::: -## Elasticsearch - -### Overview [search-overview] - -{{es}} is an open-source, distributed search and analytics engine built on Apache Lucene, used for high-performance full-text search, log analytics, business analytics, and operational intelligence. It stores data in JSON documents, provides REST APIs for easy interaction, and functions as a NoSQL database that enables fast searches, analytics, and AI-driven applications. Built on Apache Lucene, {{es}} is the core of the Search AI platform. - -### Use cases [search-use-cases] -Use {{es}} for a wide range of business needs: - -* **Full-text search:** Quickly find specific words or phrases within large volumes of text-based data, such as documents, articles, or product descriptions. Documents and search queries are transformed to enable returning relevant results instead of simply exact term matches. -* **Semantic search:** Go beyond keyword matching to understand the user's intent. This helps your search engine to recognize what users mean, not just what they type, by understanding synonyms and related concepts. -* **Hybrid search:** Get the best of both worlds by combining traditional keyword search with modern, meaning-based vector search. This ensures your users get the most accurate and relevant results every time. -* **Vector database:** Search for data based on its meaning and context, not just keywords. This allows you to find similar items, like pictures that have the same style or songs with a similar vibe, by understanding the underlying concepts. -* **Retrieval augmented generation (RAG):** Connect your generative AI applications (like chatbots) to your own private data. This allows your AI to provide more accurate, up-to-date, and relevant answers based on your proprietary information. -* **Geospatial search:** Build location-aware features into your applications. This allows you to do things like find all available services within a certain radius, calculate the distance between two points, or identify which delivery routes are most efficient. - -### Core concepts [search-concepts] -Familiarize yourself with the following {{es}} concepts. - -* **Index:** A collection of documents with similar characteristics that are uniquely identified by a name or an alias. The name is used to target the index in search queries and other operations. - **Field:** The smallest individual unit of data within a document. It represents a specific property or attribute of the data you're indexing (for example, title, author, date, summary, etc.). Fields are critical for indexing, as they determine how data is analyzed and stored to enable efficient searching. -* **Document:** Any structured data encoded in JSON. {{es}} organizes and stores data into documents. -* **Shard:** A self-contained Lucene index that contains a subset of the documents in the index. Shards allow {{es}} to horizontally scale by splitting an index's data into smaller, manageable partitions, thus improving performance. Each document in an index belongs to one primary shard. -* **Replica:** A copy of a primary shard. Replicas maintain redundant copies of your data across the nodes in your cluster. This protects against hardware failure and increases capacity to serve read requests like searching or retrieving a document. -* **Node:** A single running instance of the {{es}} server. -* **Cluster:** A collection of one or more nodes that holds all of your data and provides indexing and search capabilities across all nodes. Elasticsearch clusters feature primary and replica shards to provide failover in the case of a node going down. When a primary shard goes down, the replica takes its place. -* **Mapping:** The process that defines how a document and the fields it contains are stored and indexed. +Each of our solutions is available as a fully-managed {{serverless-short}} project or a self-managed deployment. Refer to [deployment options](../get-started/deployment-options.md) to learn about these options. ## Elastic {{observability}} @@ -57,12 +31,12 @@ Familiarize yourself with the following {{es}} concepts. Elastic {{observability}} provides unified observability across applications and infrastructure. It brings together logs, metrics, application traces, user experience data, and more into a single, integrated platform. This consolidation allows for powerful, cross-referenced analysis, enabling teams to move from detecting issues to understanding their root causes with speed and efficiency. By leveraging the search and analytics capabilities of {{es}}, it offers a holistic view of system behavior. -Available as a fully-managed {{serverless-short}} project or a self-managed deployment, Elastic {{observability}} embraces open standards like OpenTelemetry for flexible data collection, and offers scalable, cost-efficient data retention with tiered storage. +Elastic {{observability}} embraces open standards like OpenTelemetry for flexible data collection, and offers scalable, cost-efficient data retention with tiered storage. -### Use cases [observability-use-cases] - -Apply Elastic {{observability}} to a wide range of scenarios to improve operational awareness and system reliability: +### {{observability}} use cases [observability-use-cases] +Apply Elastic {{observability}} to a wide range of scenarios to improve operational awareness and system reliability. +:::{dropdown} Use cases * **Log Monitoring and Analytics:** Centralize and analyze petabytes of log data from any source. This enables quick searching, ad-hoc queries with ES|QL, and visualization with prebuilt dashboards to diagnose issues. * **Application Performance Monitoring (APM):** Gain code-level visibility into application performance. By collecting and analyzing traces with native OTel support, teams can identify bottlenecks, track errors, and optimize the end-user experience. * **Infrastructure Monitoring:** Monitor metrics from servers, virtual machines, containers, and serverless environments with over 400 out-of-the-box integrations, including OpenTelemetry. This provides deep insights into resource utilization and overall system health. @@ -73,8 +47,21 @@ Apply Elastic {{observability}} to a wide range of scenarios to improve operatio * **Universal Profiling:** Gain visibility into system performance and identify expensive lines of code without application instrumentation, helping to increase CPU efficiency and reduce cloud spend. * **LLM Observability:** Gain deep insights into the performance, usage, and costs of Large Language Model (LLM) prompts and responses. * **Incident Response and Management:** Facilitate the investigation of operational incidents by correlating data from multiple sources, which accelerates root cause analysis and resolution. +::: -### Core concepts [observability-concepts] +### {{observability}} core concepts [observability-concepts] +At the heart of Elastic {{observability}} are several key concepts that enable its capabilities. + +:::{dropdown} Concepts +* The three pillars of {{observability}} are: + * Logs: Timestamped records of events that provide detailed, contextual information. + * Metrics: Numerical measurements of system performance and health over time. + * Traces: A representation of the end-to-end journey of a request as it travels through a distributed system. +* OpenTelemetry: Elastic Observability offers first-class, production-grade support for OpenTelemetry. This allows organizations to use vendor-neutral instrumentation and stream native OTel data without proprietary agents, leveraging the Elastic Distribution of OpenTelemetry (EDOT). +* AIOps and AI Assistant: Leverages predictive analytics and an LLM-powered AI Assistant to reduce the time required to detect, investigate, and resolve incidents. This includes zero-config anomaly detection, pattern analysis, and the ability to surface correlations and root causes. +* Alerting and Cases: A built-in feature for creating rules to detect complex conditions and trigger actions. It allows teams to stay aware of potential issues and use Cases to track investigation details, assign tasks, and collaborate on resolutions. +* Service Level Objectives (SLOs): A framework for defining and monitoring the reliability of a service. Elastic Observability allows for the creation and tracking of SLOs to ensure that performance targets are being met. +::: ## {{elastic-sec}} @@ -84,27 +71,82 @@ Apply Elastic {{observability}} to a wide range of scenarios to improve operatio Install {{elastic-sec}} on one of our Elastic-managed Cloud deployments or on your own self-managed infrastructure. -### Use cases +### {{elastic-sec}} use cases Use {{elastic-sec}} for a wide variety of security needs to ensure your systems are protected from the latest threats. +:::{dropdown} Use cases * **SIEM:** {{elastic-sec}} acts as a modern SIEM that provides a centralized platform for ingesting, analyzing, and managing security data from various sources. * **Third-party integration support:** Ingest data from a variety of tools and data sources so you can centralize your security data. * **Threat detection and analytics:** Identify unknown threats by enabling prebuilt or custom detection rules, automatically detect anomalous activity with built-in machine learning jobs, or proactively search for threats using our powerful threat hunting and interactive visualization tools. -* **Automatic migration:** Migrate SIEM rules from other platforms to Elastic Security. +* **Automatic migration:** Migrate SIEM rules from other platforms to {{elastic-sec}}. * **Endpoint protection and threat prevention:** Automatically stop cybersecurity attacks—such as malware and ransomware—before damage and loss can occur. -* **AI-powered features:** Elastic Security leverages generative AI to help enhance threat detection, assist with incident response, and day-to-day security operations. For example, the AI Assistant can summarize alerts, identify relevant information, suggest investigation steps, and even generate complex queries from natural language input. +* **AI-powered features:** Elastic Security leverages generative AI to help enhance threat detection, assist with incident response, and day-to-day security operations. For example, the AI Assistant can summarize alerts, identify relevant information, suggest investigation steps, and even generate complex queries from natural language input. * **Custom dashboards and visualizations:** Create custom dashboards and visualizations to gain insights into security events. -* **Cloud Security:** Elastic Security provides the following cloud features: - * **Cloud Security Posture Management (CSPM) and Kubernetes Security Posture Management (KSPM):** Check cloud service configurations against security benchmarks to identify and resolve misconfigurations that could be exploited. +* **Cloud Security:** {{elastic-sec}} provides the following cloud features: + * **Cloud Security Posture Management (CSPM) and Kubernetes Security Posture Management (KSPM):** Check cloud service configurations against security benchmarks to identify and resolve misconfigurations that can be exploited. * **Cloud Workload Protection:** Get visibility and runtime protection for cloud workloads. * **Vulnerability Management:** Uncover vulnerabilities within your cloud infrastructure. +::: + +### Core concepts - ### Core concepts +Before diving into setup and configuration, familiarize yourself with the foundational terms and core concepts that power {{elastic-sec}}. +:::{dropdown} Concepts +* {{agent}}: A single, unified way to add monitoring for logs, metrics, and other types of data to a host. Elastic Agent can also protect hosts from security threats, query data from operating systems, forward data from remote services or hardware. +* {{elastic-defend}}: {{elastic-sec}}'s Endpoint Detection and Response (EDR) tool that protects endpoints from malicious activity. {{elastic-defend}} uses a combination of techniques like machine learning, behavioral analysis, and prebuilt rules to detect, prevent, and respond to threats in real-time. +* {{elastic-endpoint}}: The installed component that performs {{elastic-defend}}'s threat monitoring and prevention capabilities. +* Detection engine: The framework that detects threats by using rules to search for suspicious events in data sources and generating alerts when those rules meet the defined criteria. +* Detection rules: Sets of conditions that identify potential threats and malicious activities. Rules analyze various data sources, including logs and network traffic, to detect anomalies, suspicious behaviors, or known attack patterns. {{elastic-sec}} ships out-the-box prebuilt rules, or you can create your own custom rules. +* Alerts: A notification that's generated when a rule’s criteria is met. You can then investigate an alert to dive into deeper details. +* Machine learning and anomaly detection: Anomaly detection jobs identify anomalous events or patterns in your data. Use these with machine learning detection rules to generate alerts when behavior deviates from normal activity. +* Entity analytics: A threat detection feature that combines the power of Elastic’s detection engine and machine learning capabilities to identify unusual user behaviors across hosts, users, and services. Entity analytics uses a risk scoring engine to calculate a risk score, which is evaluated at a recurring interval. +* Cases: A tool that allows you to collect and share information about security issues. Opening a case allows you to track key investigation details and collect alerts in a central location. You can also send cases to external systems. +* Timeline: A threat hunting tool that allows you to investigate security events so you can gather and analyze data related to alerts or suspicious activity. You can add events to Timeline from various sources, build custom queries, and even import/export a Timeline to collaborate and share. +* Security posture management: Includes two Cloud Security features–Cloud Security Posture Management (CSPM) and Kubernetes Security Posture Management (KSPM)--that help you evaluate the services and resources in your cloud environment, such as storage, compute, IAM, and more — against security guidelines defined by the Center for Internet Security (CIS). These features help you identify and remediate configuration risks in your environment. +* AI Assistant: A generative AI-powered tool that helps with tasks like alert investigation, incident response, and query generation. It utilizes natural language processing and knowledge retrieval to provide context-aware assistance, summarize threats, suggest next steps, and automate workflows. Use AI Assistant to better understand and respond to security incidents. +::: + +## Elasticsearch + +### Overview [search-overview] + +{{es}} is an open-source, distributed search and analytics engine built on Apache Lucene, used for high-performance full-text search, log analytics, business analytics, and operational intelligence. It stores data in JSON documents, provides REST APIs for easy interaction, and functions as a NoSQL database that enables fast searches, analytics, and AI-driven applications. Built on Apache Lucene, {{es}} is the core of the Search AI platform. + +### {{es}} use cases [search-use-cases] +Use {{es}} for a wide range of business needs. + +:::{dropdown} Use cases +* **Full-text search:** Quickly find specific words or phrases within large volumes of text-based data, such as documents, articles, or product descriptions. Documents and search queries are transformed to enable returning relevant results instead of exact term matches. +* **Semantic search:** Go beyond keyword matching to understand the user's intent. This helps your search engine to recognize what users mean, not just what they type, by understanding synonyms and related concepts. +* **Hybrid search:** Get the best of both worlds by combining traditional keyword search with modern, meaning-based vector search. This ensures your users get the most accurate and relevant results every time. +* **Vector database:** Search for data based on its meaning and context, not just keywords. This allows you to find similar items, like pictures that have the same style or songs with a similar vibe, by understanding the underlying concepts. +* **Retrieval Augmented Generation (RAG):** Connect your generative AI applications (like chatbots) to your own private data. This allows your AI to provide more accurate, up-to-date, and relevant answers based on your proprietary information. +* **Geospatial search:** Build location-aware features into your applications. This allows you to do things like find all available services within a certain radius, calculate the distance between two points, or identify which delivery routes are most efficient. +::: + +### {{es}} core concepts [search-concepts] +Before you decide what type of search to use with {{es}} or bring in your data, familiarize yourself with the following {{es}} concepts. + +:::{dropdown} Concepts + +* **Index:** A collection of documents with similar characteristics that are uniquely identified by a name or an alias. The name is used to target the index in search queries and other operations. + **Field:** The smallest individual unit of data within a document. It represents a specific property or attribute of the data you're indexing (for example, title, author, date, summary, etc.). Fields are critical for indexing, as they determine how data is analyzed and stored to enable efficient searching. +* **Document:** Any structured data encoded in JSON. {{es}} organizes and stores data into documents. +* **Primary shard:** A self-contained Lucene index that contains some or all data for an index. Shards allow {{es}} to horizontally scale by splitting an index's data into smaller, manageable partitions, therefore improving performance. Each document in an index belongs to one primary shard. +* **Replica:** A copy of a primary shard. Replicas maintain redundant copies of your data across the nodes in your cluster. This protects against hardware failure and increases capacity to serve read requests like searching or retrieving a document. +* **Node:** A single running instance of the {{es}} server. +* **Cluster:** A collection of one or more nodes that holds all your data and provides indexing and search capabilities across all nodes. {{es}} clusters feature primary and replica shards to provide failover in the case of a node going down. When a primary shard goes down, the replica takes its place. + :::{note} + If you're running {{es}} on a serverless deployment, you don't have to worry a bout shards, nodes or clusters. Elastic manages these for you. + ::: +* **Mapping:** The process that defines how a document and the fields it contains are stored and indexed. +* **Client:** Software or an application designed to facilitate communication and interaction with an {{es}} cluster. It enables applications written in various programming languages to send requests to {{es}}, process the response, then push that data into the cluster. + +::: -Let's take a more comprehensive look at the various use cases for Continue reading to learn how these components work together. diff --git a/get-started/versioning-availability.md b/get-started/versioning-availability.md index 9e731d5024..8127aea9dc 100644 --- a/get-started/versioning-availability.md +++ b/get-started/versioning-availability.md @@ -13,9 +13,12 @@ Learn how Elastic products are versioned, the lifecycle of features, and how to ## Understanding versioning -Most Elastic products, like {{es}} or {{kib}}, share the same versioning pattern, based on the {{stack}}. Orchestrators such as {{ece}} and {{eck}}, and other tools such as code clients and SDKs, are versioned independently of the Elastic Stack. The {{ecloud}} console and {{serverless-short}} projects are always automatically updated with the latest changes. +Many components of the [{{search-platform}}](/get-started/search-ai-platform.md) (such as {{es}} and {{kib}}) share the same versioning pattern. +In the documentation, this group of components is typically referred to as the {{stack}}. -The Elastic Stack products use semantic versioning in the `X.Y.Z` format, such as `9.0.0`. +Orchestrators such as {{ece}} and {{eck}}, and other tools such as code clients and SDKs, are versioned independently of the {{search-platform}}. The {{ecloud}} console and {{serverless-short}} projects are always automatically updated with the latest changes. + +The components of the {{search-platform}} generally use semantic versioning in the `X.Y.Z` format, such as `9.0.0`. | Version | Description | | ----- | ----- | @@ -23,7 +26,7 @@ The Elastic Stack products use semantic versioning in the `X.Y.Z` format, such a | Minor (Y) | Introduces new features and improvements, while maintaining backward compatibility with the previous minor versions within the same major version. Upgrading to a new minor version should not require any changes to your existing setup. | | Patch (Z) | Contains bug fixes and security updates, without introducing new features or breaking changes. Upgrading to a new patch version should be seamless and not require any changes to your existing setup. | -Understanding Elastic Stack versioning is essential for [upgrade planning](/deploy-manage/upgrade.md) and ensuring compatibility. +Understanding versioning is essential for [upgrade planning](/deploy-manage/upgrade.md) and ensuring compatibility, particularly in the self-managed [deployment option](/get-started/deployment-options.md). ## Availability of features @@ -52,11 +55,7 @@ Features available to you can differ based on deployment type, product lifecycle | Category | Example | | ----- | ----- | -| Elastic Stack versions | [{{search-platform}}](/get-started/search-ai-platform.md) version 9.0.0 and later, including 9.1.0 | +| Platform product or component versions | {{stack}} version 9.0.0 and later, including 9.1.0 | | Deployment types | [{{serverless-full}}](/deploy-manage/deploy/elastic-cloud/serverless.md), [{{ech}}](/deploy-manage/deploy/elastic-cloud/cloud-hosted.md), [{{ece}}](/deploy-manage/deploy/cloud-enterprise.md), [{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md), and [Self-managed deployments](/deploy-manage/deploy/self-managed.md) | | Orchestrator versions | [{{ece}}](/deploy-manage/deploy/cloud-enterprise.md) 4.0.0 and later, [{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md) 3.0.0 and later | | Serverless project types | {{es}}, Elastic {{observability}}, and {{elastic-sec}} | - - - - From 7c4a1c16f1fcd6bc91efe9f302af923a512e5ed1 Mon Sep 17 00:00:00 2001 From: lcawl Date: Mon, 8 Sep 2025 17:50:46 -0700 Subject: [PATCH 30/39] Add applies_to in all get-started pages --- get-started/deployment-options.md | 3 +++ get-started/howto-use-the-docs.md | 5 +++++ get-started/index.md | 3 +++ get-started/search-ai-platform.md | 3 +++ get-started/versioning-availability.md | 3 +++ 5 files changed, 17 insertions(+) diff --git a/get-started/deployment-options.md b/get-started/deployment-options.md index 3ed165ec38..78a2c2a822 100644 --- a/get-started/deployment-options.md +++ b/get-started/deployment-options.md @@ -4,6 +4,9 @@ mapped_pages: - https://www.elastic.co/guide/en/elasticsearch/reference/current/elasticsearch-intro-deploy.html products: - id: elasticsearch +applies_to: + serverless: + stack: --- # Deployment options diff --git a/get-started/howto-use-the-docs.md b/get-started/howto-use-the-docs.md index dbb59488a4..f5a85cffab 100644 --- a/get-started/howto-use-the-docs.md +++ b/get-started/howto-use-the-docs.md @@ -1,3 +1,8 @@ +--- +applies_to: + serverless: + stack: +--- # How to use the documentation Our documentation is organized to guide you through your journey with Elastic, from learning the basics to deploying and managing complex solutions. diff --git a/get-started/index.md b/get-started/index.md index f0af862152..aeb1022543 100644 --- a/get-started/index.md +++ b/get-started/index.md @@ -9,6 +9,9 @@ products: - id: elastic-stack - id: observability - id: security +applies_to: + serverless: + stack: --- # Elastic fundamentals diff --git a/get-started/search-ai-platform.md b/get-started/search-ai-platform.md index 21dc21938f..f4c9622044 100644 --- a/get-started/search-ai-platform.md +++ b/get-started/search-ai-platform.md @@ -7,6 +7,9 @@ mapped_pages: - https://www.elastic.co/guide/en/elastic-stack/current/overview.html products: - id: elastic-stack +applies_to: + serverless: + stack: --- # {{search-platform}} diff --git a/get-started/versioning-availability.md b/get-started/versioning-availability.md index 8127aea9dc..2665e4dcc5 100644 --- a/get-started/versioning-availability.md +++ b/get-started/versioning-availability.md @@ -2,6 +2,9 @@ navigation_title: Versioning and availability mapped_pages: - https://www.elastic.co/guide/en/starting-with-the-elasticsearch-platform-and-its-solutions/current/introducing-elastic-documentation.html +applies_to: + serverless: + stack: products: - id: elastic-stack description: Learn how Elastic handles versioning and feature availability in the docs. Find the product versions that are supported, how to read availability badges, and... From 31afdc74bbb8a5522d51f7872ec62a8fd12999f8 Mon Sep 17 00:00:00 2001 From: lcawl Date: Mon, 8 Sep 2025 18:27:35 -0700 Subject: [PATCH 31/39] Add updated stack diagram --- get-started/deployment-options.md | 8 +- .../images/platform-components-diagram.svg | 52 +++++++++++ .../images/stack-components-diagram.svg | 88 ------------------- get-started/search-ai-platform.md | 2 + 4 files changed, 58 insertions(+), 92 deletions(-) create mode 100644 get-started/images/platform-components-diagram.svg delete mode 100644 get-started/images/stack-components-diagram.svg diff --git a/get-started/deployment-options.md b/get-started/deployment-options.md index 78a2c2a822..a5d282645d 100644 --- a/get-started/deployment-options.md +++ b/get-started/deployment-options.md @@ -32,10 +32,10 @@ These are the most common deployment types and their main features: ## Advanced options -* **[Self-managed](/deploy-manage/deploy/self-managed.md)**: This approach allows you to install, operate, and maintain the {{stack}} on your own hardware, whether on-premises or in your private cloud. It provides maximum control over your environment. -* **[{{ece}}](/deploy-manage/deploy/cloud-enterprise.md)**: This Elastic self-managed offering allows you to provision, manage, and monitor {{es}} and {{kib}} at any scale, on any infrastructure, while managing everything from a single console. -* **[{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md)**: This extends Kubernetes by providing an official operator for deploying and managing Elastic products. It's ideal if you want to run and orchestrate Elastic on your own Kubernetes platform. +* **[Self-managed](/deploy-manage/deploy/self-managed.md)**: This approach allows you to install, operate, and maintain components of the {{search-platform}} on your own hardware, whether on-premises or in your private cloud. It provides maximum control over your environment. +* **[{{ece}}](/deploy-manage/deploy/cloud-enterprise.md)**: This Elastic self-managed offering allows you to provision, manage, and monitor components of the {{search-platform}} at any scale, on any infrastructure, while managing everything from a single console. +* **[{{eck}}](/deploy-manage/deploy/cloud-on-k8s.md)**: This extends Kubernetes by providing an official operator for deploying and managing components of the {{search-platform}}. It's ideal if you want to run and orchestrate Elastic on your own Kubernetes platform. :::{tip} Refer to [Deploy and manage](/deploy-manage/index.md) for detailed information and guidance on selecting the right deployment for your needs. -::: \ No newline at end of file +::: diff --git a/get-started/images/platform-components-diagram.svg b/get-started/images/platform-components-diagram.svg new file mode 100644 index 0000000000..1e0eea80c4 --- /dev/null +++ b/get-started/images/platform-components-diagram.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/get-started/images/stack-components-diagram.svg b/get-started/images/stack-components-diagram.svg deleted file mode 100644 index e59c6e5a7d..0000000000 --- a/get-started/images/stack-components-diagram.svg +++ /dev/null @@ -1,88 +0,0 @@ - - -Administer -Visualize -Alert -Analyze - -Index -Store -Search -Analyze - -Consolidate -Transform -Enrich - -Protect -Collect -Preprocess -Ship - - -Elasticsearch clients - -Fleet -and -Elastic Agent - - - - -Logstash - - - - -Kibana - - - - -Elasticsearch ingest pipelines - -Elasticsearch - -Beats - -APM - - - - -Other queues -and processors - - - - -Interfaces, -applications, -consumers, -websites - - - - -Other shippers and sources - -Consume - - -Store - -Ingest - - - - - - - - - - - - -Components of the Elastic Stack - \ No newline at end of file diff --git a/get-started/search-ai-platform.md b/get-started/search-ai-platform.md index f4c9622044..eeb136770f 100644 --- a/get-started/search-ai-platform.md +++ b/get-started/search-ai-platform.md @@ -18,6 +18,8 @@ It is the foundation for Elastic's [solutions](/get-started/introduction.md) and The {{search-platform}} is a fast and highly scalable set of components — {{es}}, {{kib}}, {{beats}}, {{ls}}, and others — that together enable you to securely take data from any source, in any format, and then store, search, analyze, and visualize it. +![Components of the {{search-platform}}](/get-started/images/platform-components-diagram.svg) + :::{tip} The components that share the same versioning scheme are often referred to as the _{{stack}}_. Learn more in [](/get-started/versioning-availability.md). ::: From ebc39c001c03c260070b7a808917f7623efadb23 Mon Sep 17 00:00:00 2001 From: lcawl Date: Mon, 8 Sep 2025 19:22:48 -0700 Subject: [PATCH 32/39] More search-ai-platform.md edits --- get-started/search-ai-platform.md | 83 ++++++++++--------------------- 1 file changed, 25 insertions(+), 58 deletions(-) diff --git a/get-started/search-ai-platform.md b/get-started/search-ai-platform.md index eeb136770f..a09e544e3f 100644 --- a/get-started/search-ai-platform.md +++ b/get-started/search-ai-platform.md @@ -18,25 +18,20 @@ It is the foundation for Elastic's [solutions](/get-started/introduction.md) and The {{search-platform}} is a fast and highly scalable set of components — {{es}}, {{kib}}, {{beats}}, {{ls}}, and others — that together enable you to securely take data from any source, in any format, and then store, search, analyze, and visualize it. +$$$stack-components$$$ ![Components of the {{search-platform}}](/get-started/images/platform-components-diagram.svg) :::{tip} The components that share the same versioning scheme are often referred to as the _{{stack}}_. Learn more in [](/get-started/versioning-availability.md). ::: -You have many options for deploying the {{search-platform}} to suit your needs, which are summarized in [](/get-started/deployment-options.md). - +You have many options for deploying the {{search-platform}}, which are summarized in [](/get-started/deployment-options.md). +All deployments include [{{es}}](#stack-components-elasticsearch). +Although [{{kib}}](#stack-components-kibana) is not required to use {{es}}, it is included by default when you use deployment methods such as {{serverless-full}}. Continue reading to learn how these components work together. -% TO-DO: Update SVG -% ![Components of the {{search-platform}}](/get-started/images/stack-components-diagram.svg) - -## Ingestion +## Ingest [_ingest] Elastic provides a number of components that ingest data. Collect and ship logs, metrics, and other types of data with {{agent}} or {{beats}}. @@ -88,12 +83,11 @@ It can dynamically unify data from disparate sources and normalize the data into [Learn more about {{ls}}](logstash://reference/index.md). -## Storage, search, and AI analysis +## Store, search, and analyze [_store] {{es}} is the distributed search, storage, and analytics engine at the heart of the {{search-platform}}. -You can use the {{es}} clients to access data directly by using common programming languages. -### {{es}} [components-elasticsearch] +### {{es}} [stack-components-elasticsearch] {{es}} provides near real-time search and analytics for all types of data. Whether you have structured or unstructured text, numerical data, vectors, or geospatial data, {{es}} can efficiently store and index it in a way that supports fast searches. @@ -103,62 +97,35 @@ It runs as a cluster of one or more servers, called nodes. When you add data to an index, it's divided into pieces called shards, which are spread across the various nodes in the cluster. This architecture allows {{es}} to handle large volumes of data and ensures that your data remains available even if a node fails. -{{es}} provides a REST API that enables you to store data in {{es}} and retrieve it. -The REST API also provides access to search and analytics capabilities. - -Learn more about [the {{es}} data store](/manage-data/data-store.md), its [distributed architecture](/deploy-manage/distributed-architecture.md), and [search approaches](/solutions/search/search-approaches.md). - -### {{es}} clients [stack-components-elasticsearch-clients] - -The clients provide a convenient mechanism to manage API requests and responses to and from {{es}} from popular languages such as Java, Ruby, Go, Python, and others. -Both official and community contributed clients are available. +Nearly every aspect of {{es}} can be configured and managed programmatically through its REST APIs. +This allows you to automate repetitive tasks and integrate Elastic management into your existing operational workflows. +For example, you can use the APIs to manage indices, update cluster settings, run complex queries, and configure security. +This API-first approach is fundamental to enabling infrastructure-as-code practices and managing deployments at scale. -[Learn more about the {{es}} clients](/reference/elasticsearch-clients/index.md). +Learn more about [the {{es}} data store](/manage-data/data-store.md), its [distributed architecture](/deploy-manage/distributed-architecture.md), and [APIs](elasticsearch://reference/elasticsearch/rest-apis/index.md). -## Exploration and visualization +## Explore [_consume] -Use {{kib}} to query and visualize the data that's stored in {{es}}. +Use {{kib}} to explore and visualize the data that's stored in {{es}} and to manage the {{search-platform}}. +You can use the {{es}} clients to access data directly by using common programming languages. ### {{kib}} [stack-components-kibana] -{{kib}} is the tool to harness your {{es}} data and to manage the {{search-platform}}. -Use it to analyze and visualize the data that's stored in {{es}}. -{{kib}} is also the home for two out-of-the-box [solutions](/get-started/introduction.md). - -[Learn more about {{kib}}](/explore-analyze/index.md). - - - - \ No newline at end of file +[Learn more about the {{es}} clients](/reference/elasticsearch-clients/index.md). From 8895ccf0708c10160ac68ebb37749ce2567cb1fe Mon Sep 17 00:00:00 2001 From: Janeen Roberts Date: Tue, 9 Sep 2025 17:59:47 -0400 Subject: [PATCH 33/39] Fixes directives + other edits --- get-started/introduction.md | 54 ++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/get-started/introduction.md b/get-started/introduction.md index 990e710b26..fa46e4b571 100644 --- a/get-started/introduction.md +++ b/get-started/introduction.md @@ -20,28 +20,28 @@ Refer to the following table for a quick reference of which solution you may nee | Monitor data for anomalous activity, detect, prevent, and respond to security incidents | [{{elastic-sec}}](/solutions/security.md) | SOC teams, security analysts, IT security admins | :::{tip} -Check out our [customer success stories](https://www.elastic.co/customers/success-stories) to learn how various organizations are utilizing our products for their specific business needs. +Check out our [customer success stories](https://www.elastic.co/customers/success-stories) to learn how various organizations utilize our products for their specific business needs. ::: -Each of our solutions is available as a fully-managed {{serverless-short}} project or a self-managed deployment. Refer to [deployment options](../get-started/deployment-options.md) to learn about these options. +Each of our solutions is available as a fully managed {{serverless-short}} project or a self-managed deployment. Refer to [deployment options](../get-started/deployment-options.md) to learn about these options. ## Elastic {{observability}} ### Overview [observability-overview] -Elastic {{observability}} provides unified observability across applications and infrastructure. It brings together logs, metrics, application traces, user experience data, and more into a single, integrated platform. This consolidation allows for powerful, cross-referenced analysis, enabling teams to move from detecting issues to understanding their root causes with speed and efficiency. By leveraging the search and analytics capabilities of {{es}}, it offers a holistic view of system behavior. +Elastic {{observability}} provides unified observability across applications and infrastructure. It combines logs, metrics, application traces, user experience data, and more into a single, integrated platform. This consolidation allows for powerful, cross-referenced analysis, enabling teams to move from detecting issues to understanding their root causes with speed and efficiency. By leveraging the search and analytics capabilities of {{es}}, it offers a holistic view of system behavior. Elastic {{observability}} embraces open standards like OpenTelemetry for flexible data collection, and offers scalable, cost-efficient data retention with tiered storage. ### {{observability}} use cases [observability-use-cases] -Apply Elastic {{observability}} to a wide range of scenarios to improve operational awareness and system reliability. +Apply Elastic {{observability}} to various scenarios to improve operational awareness and system reliability. :::{dropdown} Use cases * **Log Monitoring and Analytics:** Centralize and analyze petabytes of log data from any source. This enables quick searching, ad-hoc queries with ES|QL, and visualization with prebuilt dashboards to diagnose issues. * **Application Performance Monitoring (APM):** Gain code-level visibility into application performance. By collecting and analyzing traces with native OTel support, teams can identify bottlenecks, track errors, and optimize the end-user experience. * **Infrastructure Monitoring:** Monitor metrics from servers, virtual machines, containers, and serverless environments with over 400 out-of-the-box integrations, including OpenTelemetry. This provides deep insights into resource utilization and overall system health. * **Digital Experience Monitoring:** - * **Real User Monitoring (RUM):** Capture and analyze data on how real users are interacting with web applications to improve perceived performance. + * **Real User Monitoring (RUM):** Capture and analyze data on how real users interact with web applications to improve perceived performance. * **Synthetic Monitoring:** Proactively simulate user journeys and API calls to test application availability and functionality. * **Uptime Monitoring:** Continuously check the status of services and applications to ensure they are available. * **Universal Profiling:** Gain visibility into system performance and identify expensive lines of code without application instrumentation, helping to increase CPU efficiency and reduce cloud spend. @@ -60,28 +60,28 @@ At the heart of Elastic {{observability}} are several key concepts that enable i * OpenTelemetry: Elastic Observability offers first-class, production-grade support for OpenTelemetry. This allows organizations to use vendor-neutral instrumentation and stream native OTel data without proprietary agents, leveraging the Elastic Distribution of OpenTelemetry (EDOT). * AIOps and AI Assistant: Leverages predictive analytics and an LLM-powered AI Assistant to reduce the time required to detect, investigate, and resolve incidents. This includes zero-config anomaly detection, pattern analysis, and the ability to surface correlations and root causes. * Alerting and Cases: A built-in feature for creating rules to detect complex conditions and trigger actions. It allows teams to stay aware of potential issues and use Cases to track investigation details, assign tasks, and collaborate on resolutions. -* Service Level Objectives (SLOs): A framework for defining and monitoring the reliability of a service. Elastic Observability allows for the creation and tracking of SLOs to ensure that performance targets are being met. +* Service Level Objectives (SLOs): A framework for defining and monitoring the reliability of a service. Elastic Observability allows for creating and tracking SLOs to ensure that performance targets are being met. ::: ## {{elastic-sec}} ### Overview -{{elastic-sec}} is a unified security solution that integrates SIEM (Security Information and Event Management), endpoint security, and cloud security into a single platform so you can detect, prevent, and respond to cyber threats across your entire environment in near real time. Elastic Security leverages {{es}} powerful platform for its searching and analytic capabilities, and {{kib}} for its visualization features. By combining prevention, detection, and response capabilities, {{elastic-sec}} helps your organization reduce the risk of successful attacks. +{{elastic-sec}} is a unified security solution that integrates SIEM (Security Information and Event Management), endpoint security, and cloud security into a single platform so you can detect, prevent, and respond to cyber threats across your entire environment in near real time. Elastic Security leverages {{es}}'s powerful platform for its searching and analytic capabilities, and {{kib}} for its visualization features. By combining prevention, detection, and response capabilities, {{elastic-sec}} helps your organization reduce the risk of successful attacks. -Install {{elastic-sec}} on one of our Elastic-managed Cloud deployments or on your own self-managed infrastructure. +Install {{elastic-sec}} on one of our Elastic-managed Cloud deployments or your own self-managed infrastructure. ### {{elastic-sec}} use cases -Use {{elastic-sec}} for a wide variety of security needs to ensure your systems are protected from the latest threats. +Use {{elastic-sec}} for numerous security needs to ensure your systems are protected from the latest threats. :::{dropdown} Use cases -* **SIEM:** {{elastic-sec}} acts as a modern SIEM that provides a centralized platform for ingesting, analyzing, and managing security data from various sources. +* **SIEM:** {{elastic-sec}} is a modern SIEM that provides a centralized platform for ingesting, analyzing, and managing security data from various sources. * **Third-party integration support:** Ingest data from a variety of tools and data sources so you can centralize your security data. * **Threat detection and analytics:** Identify unknown threats by enabling prebuilt or custom detection rules, automatically detect anomalous activity with built-in machine learning jobs, or proactively search for threats using our powerful threat hunting and interactive visualization tools. * **Automatic migration:** Migrate SIEM rules from other platforms to {{elastic-sec}}. * **Endpoint protection and threat prevention:** Automatically stop cybersecurity attacks—such as malware and ransomware—before damage and loss can occur. -* **AI-powered features:** Elastic Security leverages generative AI to help enhance threat detection, assist with incident response, and day-to-day security operations. For example, the AI Assistant can summarize alerts, identify relevant information, suggest investigation steps, and even generate complex queries from natural language input. +* **AI-powered features:** Elastic Security leverages generative AI to help enhance threat detection, assist with incident response, and day-to-day security operations. For example, the AI Assistant can summarize alerts, identify relevant information, suggest investigation steps, and generate complex queries from natural language input. * **Custom dashboards and visualizations:** Create custom dashboards and visualizations to gain insights into security events. * **Cloud Security:** {{elastic-sec}} provides the following cloud features: * **Cloud Security Posture Management (CSPM) and Kubernetes Security Posture Management (KSPM):** Check cloud service configurations against security benchmarks to identify and resolve misconfigurations that can be exploited. @@ -95,16 +95,16 @@ Before diving into setup and configuration, familiarize yourself with the founda :::{dropdown} Concepts -* {{agent}}: A single, unified way to add monitoring for logs, metrics, and other types of data to a host. Elastic Agent can also protect hosts from security threats, query data from operating systems, forward data from remote services or hardware. +* {{agent}}: A single, unified way to add monitoring for logs, metrics, and other types of data to a host. Elastic Agent can also protect hosts from security threats, query data from operating systems, and forward data from remote services or hardware. * {{elastic-defend}}: {{elastic-sec}}'s Endpoint Detection and Response (EDR) tool that protects endpoints from malicious activity. {{elastic-defend}} uses a combination of techniques like machine learning, behavioral analysis, and prebuilt rules to detect, prevent, and respond to threats in real-time. * {{elastic-endpoint}}: The installed component that performs {{elastic-defend}}'s threat monitoring and prevention capabilities. * Detection engine: The framework that detects threats by using rules to search for suspicious events in data sources and generating alerts when those rules meet the defined criteria. -* Detection rules: Sets of conditions that identify potential threats and malicious activities. Rules analyze various data sources, including logs and network traffic, to detect anomalies, suspicious behaviors, or known attack patterns. {{elastic-sec}} ships out-the-box prebuilt rules, or you can create your own custom rules. -* Alerts: A notification that's generated when a rule’s criteria is met. You can then investigate an alert to dive into deeper details. +* Detection rules: Sets of conditions that identify potential threats and malicious activities. Rules analyze various data sources, including logs and network traffic, to detect anomalies, suspicious behaviors, or known attack patterns. {{elastic-sec}} ships out-of-the-box prebuilt rules, or you can create your own custom rules. +* Alerts: A notification that's generated when a rule’s criteria are met. You can then investigate an alert to dive into deeper details. * Machine learning and anomaly detection: Anomaly detection jobs identify anomalous events or patterns in your data. Use these with machine learning detection rules to generate alerts when behavior deviates from normal activity. * Entity analytics: A threat detection feature that combines the power of Elastic’s detection engine and machine learning capabilities to identify unusual user behaviors across hosts, users, and services. Entity analytics uses a risk scoring engine to calculate a risk score, which is evaluated at a recurring interval. -* Cases: A tool that allows you to collect and share information about security issues. Opening a case allows you to track key investigation details and collect alerts in a central location. You can also send cases to external systems. -* Timeline: A threat hunting tool that allows you to investigate security events so you can gather and analyze data related to alerts or suspicious activity. You can add events to Timeline from various sources, build custom queries, and even import/export a Timeline to collaborate and share. +* Cases: A tool that allows you to collect and share information about security issues. Opening a case lets you track key investigation details and collect alerts in a central location. You can also send cases to external systems. +* Timeline: A threat hunting tool that allows you to investigate security events so you can gather and analyze data related to alerts or suspicious activity. You can add events to Timeline from various sources, build custom queries, and import/export a Timeline to collaborate and share. * Security posture management: Includes two Cloud Security features–Cloud Security Posture Management (CSPM) and Kubernetes Security Posture Management (KSPM)--that help you evaluate the services and resources in your cloud environment, such as storage, compute, IAM, and more — against security guidelines defined by the Center for Internet Security (CIS). These features help you identify and remediate configuration risks in your environment. * AI Assistant: A generative AI-powered tool that helps with tasks like alert investigation, incident response, and query generation. It utilizes natural language processing and knowledge retrieval to provide context-aware assistance, summarize threats, suggest next steps, and automate workflows. Use AI Assistant to better understand and respond to security incidents. ::: @@ -119,33 +119,33 @@ Before diving into setup and configuration, familiarize yourself with the founda Use {{es}} for a wide range of business needs. :::{dropdown} Use cases -* **Full-text search:** Quickly find specific words or phrases within large volumes of text-based data, such as documents, articles, or product descriptions. Documents and search queries are transformed to enable returning relevant results instead of exact term matches. -* **Semantic search:** Go beyond keyword matching to understand the user's intent. This helps your search engine to recognize what users mean, not just what they type, by understanding synonyms and related concepts. +* **Full-text search:** Find specific words or phrases within large volumes of text-based data, such as documents, articles, or product descriptions. Documents and search queries are transformed to enable returning relevant results instead of exact term matches. +* **Semantic search:** Go beyond keyword matching to understand the user's intent. Understanding synonyms and related concepts helps your search engine recognize what users mean, not just what they type. * **Hybrid search:** Get the best of both worlds by combining traditional keyword search with modern, meaning-based vector search. This ensures your users get the most accurate and relevant results every time. -* **Vector database:** Search for data based on its meaning and context, not just keywords. This allows you to find similar items, like pictures that have the same style or songs with a similar vibe, by understanding the underlying concepts. -* **Retrieval Augmented Generation (RAG):** Connect your generative AI applications (like chatbots) to your own private data. This allows your AI to provide more accurate, up-to-date, and relevant answers based on your proprietary information. -* **Geospatial search:** Build location-aware features into your applications. This allows you to do things like find all available services within a certain radius, calculate the distance between two points, or identify which delivery routes are most efficient. +* **Vector database:** Search for data based on its meaning and context, not just keywords. Understanding the underlying concepts allows you to find similar items, like pictures with the same style or songs with a similar vibe. +* **Retrieval Augmented Generation (RAG):** Connect your generative AI applications (like chatbots) to your private data. This allows your AI to provide more accurate, up-to-date, and relevant answers based on your proprietary information. +* **Geospatial search:** Build location-aware features into your applications. This allows you to do things like find all available services within a certain radius, calculate the distance between two points, or identify the most efficient delivery routes. ::: ### {{es}} core concepts [search-concepts] Before you decide what type of search to use with {{es}} or bring in your data, familiarize yourself with the following {{es}} concepts. -:::{dropdown} Concepts +::::{dropdown} Concepts * **Index:** A collection of documents with similar characteristics that are uniquely identified by a name or an alias. The name is used to target the index in search queries and other operations. **Field:** The smallest individual unit of data within a document. It represents a specific property or attribute of the data you're indexing (for example, title, author, date, summary, etc.). Fields are critical for indexing, as they determine how data is analyzed and stored to enable efficient searching. * **Document:** Any structured data encoded in JSON. {{es}} organizes and stores data into documents. -* **Primary shard:** A self-contained Lucene index that contains some or all data for an index. Shards allow {{es}} to horizontally scale by splitting an index's data into smaller, manageable partitions, therefore improving performance. Each document in an index belongs to one primary shard. +* **Primary shard:** A self-contained Lucene index that contains some or all data for an index. Shards allow {{es}} to scale horizontally by splitting an index's data into smaller, manageable partitions, improving performance. Each document in an index belongs to one primary shard. * **Replica:** A copy of a primary shard. Replicas maintain redundant copies of your data across the nodes in your cluster. This protects against hardware failure and increases capacity to serve read requests like searching or retrieving a document. * **Node:** A single running instance of the {{es}} server. * **Cluster:** A collection of one or more nodes that holds all your data and provides indexing and search capabilities across all nodes. {{es}} clusters feature primary and replica shards to provide failover in the case of a node going down. When a primary shard goes down, the replica takes its place. :::{note} - If you're running {{es}} on a serverless deployment, you don't have to worry a bout shards, nodes or clusters. Elastic manages these for you. + If you're running {{es}} on a serverless deployment, you don't have to worry a bout shards, nodes, or clusters. Elastic manages these for you. ::: -* **Mapping:** The process that defines how a document and the fields it contains are stored and indexed. -* **Client:** Software or an application designed to facilitate communication and interaction with an {{es}} cluster. It enables applications written in various programming languages to send requests to {{es}}, process the response, then push that data into the cluster. +* **Mapping:** The process that defines how a document and its fields are stored and indexed. +* **Client:** Software or an application that facilitates communication and interaction with an {{es}} cluster. It enables applications written in various programming languages to send requests to {{es}}, process the response, and then push that data into the cluster. -::: +::::