From bce27555471fa20016253459e52e7f630a7b2fe6 Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Wed, 5 Mar 2025 16:47:38 -0600 Subject: [PATCH 01/17] update explore logs page --- .../logs/filter-aggregate-logs.md | 8 ++-- solutions/observability/logs/logs-explorer.md | 42 +++++++------------ 2 files changed, 20 insertions(+), 30 deletions(-) diff --git a/solutions/observability/logs/filter-aggregate-logs.md b/solutions/observability/logs/filter-aggregate-logs.md index efd72947ac..2e3e24e744 100644 --- a/solutions/observability/logs/filter-aggregate-logs.md +++ b/solutions/observability/logs/filter-aggregate-logs.md @@ -77,11 +77,11 @@ Filter your data using the fields you’ve extracted so you can focus on log dat * [Filter logs with Query DSL](../../../solutions/observability/logs/filter-aggregate-logs.md#logs-filter-qdsl): Filter log data from Developer Tools using Query DSL. -### Filter logs in Logs Explorer [logs-filter-logs-explorer] +### Filter logs in Discover [logs-filter-discover] -Logs Explorer is a tool that automatically provides views of your log data based on integrations and data streams. To open **Logs Explorer**, find `Logs Explorer` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). +Discover is a tool that provides views of your log data based on data views and index patterns. To open **Discover**, find `Discover` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). -From Logs Explorer, you can use the [{{kib}} Query Language (KQL)](../../../explore-analyze/query-filter/languages/kql.md) in the search bar to narrow down the log data that’s displayed. For example, you might want to look into an event that occurred within a specific time range. +From Discover, open the `logs-*` or `All logs` data views from the **Data views** menu. From here, you can use the [{{kib}} Query Language (KQL)](../../../explore-analyze/query-filter/languages/kql.md) in the search bar to narrow down the log data that’s displayed. For example, you might want to look into an event that occurred within a specific time range. Add some logs with varying timestamps and log levels to your data stream: @@ -124,7 +124,7 @@ Under the **Documents** tab, you’ll see the filtered log data matching your qu :class: screenshot ::: -For more on using Logs Explorer, refer to the [Discover](../../../explore-analyze/discover.md) documentation. +For more on using Discover, refer to the [Discover](../../../explore-analyze/discover.md) documentation. ### Filter logs with Query DSL [logs-filter-qdsl] diff --git a/solutions/observability/logs/logs-explorer.md b/solutions/observability/logs/logs-explorer.md index 196a8c3550..58e982bda0 100644 --- a/solutions/observability/logs/logs-explorer.md +++ b/solutions/observability/logs/logs-explorer.md @@ -3,62 +3,52 @@ mapped_urls: - https://www.elastic.co/guide/en/observability/current/explore-logs.html - https://www.elastic.co/guide/en/serverless/current/observability-discover-and-explore-logs.html applies_to: - stack: all - serverless: all + stack: ga + serverless: ga --- -# Logs Explorer [explore-logs] +# Explore logs in Discover [explore-logs] -::::{warning} -This functionality is in beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features. -:::: +From the `logs-*` or `All logs` data view in Discover, you can quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. You can also customize and save your searches and place them on a dashboard. Instead of having to log into different servers, change directories, and view individual files, all your logs are available in a single view. - -With **Logs Explorer**, you can quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. You can also customize and save your searches and place them on a dashboard. Instead of having to log into different servers, change directories, and view individual files, all your logs are available in a single view. - -To open **Logs Explorer**, find `Logs Explorer` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). +To open **Discover**, find `Discover` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). Select the `logs-*` or `All logs` data view from the **Data view** menu. :::{image} ../../../images/observability-log-explorer.png -:alt: Screen capture of the Logs Explorer +:alt: Screen capture of Discover :class: screenshot ::: ## Required {{kib}} privileges [logs-explorer-privileges] -Viewing data in Logs Explorer requires `read` privileges for **Discover**, **Index**, **Logs**, and **Integrations**. For more on assigning {{kib}} privileges, refer to the [{{kib}} privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-privileges.md) docs. +Viewing data in Discover logs data views requires `read` privileges for **Discover**, **Index**, **Logs**, and **Integrations**. For more on assigning {{kib}} privileges, refer to the [{{kib}} privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-privileges.md) docs. ## Find your logs [find-your-logs] -By default, Logs Explorer shows all of your logs, according to the index patterns set in the **logs sources** advanced setting. To open **Advanced settings**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). - -If you need to focus on logs from a specific integration, select the integration from the logs menu: +By default, the **All logs** data view shows all of your logs, according to the index patterns set in the **logs sources** advanced setting. To open **Advanced settings**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). -:::{image} ../../../images/observability-log-menu.png -:alt: Screen capture of log menu -:class: screenshot -::: +To focus on logs from a specific source or sources, create a data view using the index patterns of those source. For more information on creating data views, refer to [Create a data view](../../../explore-analyze/find-and-organize/data-views.md#create-a-data-view-settings-create-pattern) -Once you have the logs you want to focus on displayed, you can drill down further to find the information you need. For more on filtering your data in Logs Explorer, refer to [Filter logs in Logs Explorer](../../../solutions/observability/logs/filter-aggregate-logs.md#logs-filter-logs-explorer). +Once you have the logs you want to focus on displayed, you can drill down further to find the information you need. For more on filtering your data in Discover, refer to [Filter logs in Discover](../../../solutions/observability/logs/filter-aggregate-logs.md#filter-logs-in-discover-logs-filter-discover). ## Review log data in the documents table [review-log-data-in-the-documents-table] -The documents table in Logs Explorer functions similarly to the table in Discover. You can add fields, order table columns, sort fields, and update the row height in the same way you would in Discover. +The documents table lets you add fields, order table columns, sort fields, and update the row height in the same way you would in Discover. Refer to the [Discover](../../../explore-analyze/discover.md) documentation for more information on updating the table. ### Actions column [actions-column] -The actions column provides access to additional information about your logs. +The actions column provides additional information about your logs. **Expand:** ![The icon to expand log details](../../../images/observability-expand-icon.png "") Open the log details to get an in-depth look at an individual log file. -**Degraded document indicator:** ![The icon that shows ignored fields](../../../images/observability-pagesSelect-icon.png "") Shows if any of the document’s fields were ignored when it was indexed. Ignored fields could indicate malformed fields or other issues with your document. Use this information to investigate and determine why fields are being ignored. +**Degraded document indicator:** ![The icon that shows ignored fields](../../../images/observability-pagesSelect-icon.png "") This indicator shows if any of the document’s fields were ignored when it was indexed. Ignored fields could indicate malformed fields or other issues with your document. Use this information to investigate and determine why fields are being ignored. -**Stacktrace indicator:** ![The icon that shows if a document contains stack traces](../../../images/observability-apmTrace-icon.png "") Shows if the document contains stack traces. This indicator makes it easier to navigate through your documents and know if they contain additional information in the form of stack traces. +**Stacktrace indicator:** ![The icon that shows if a document contains stack traces](../../../images/observability-apmTrace-icon.png "") This indicator makes it easier to find documents that contain additional information in the form of stacktraces. ## View log details [view-log-details] @@ -72,11 +62,11 @@ The following actions help you filter and focus on specific fields in the log de * **Filter for value (![filter for value icon](../../../images/observability-plusInCircle.png "")):** Show logs that contain the specific field value. * **Filter out value (![filter out value icon](../../../images/observability-minusInCircle.png "")):** Show logs that do **not** contain the specific field value. * **Filter for field present (![filter for present icon](../../../images/observability-filter.png "")):** Show logs that contain the specific field. -* **Toggle column in table (![toggle column in table icon](../../../images/observability-listAdd.png "")):** Add or remove a column for the field to the main Logs Explorer table. +* **Toggle column in table (![toggle column in table icon](../../../images/observability-listAdd.png "")):** Add or remove a column for the field to the main Discover table. ## View log data set details [view-log-data-set-details] -Go to **Data Set Quality** to view more details about your data sets and monitor their overall quality. To open **Data Set Quality**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). +Go to **Data Sets** to view more details about your data sets and monitor their overall quality. To open **Data Set Quality**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). Refer to [*Data set quality*](../../../solutions/observability/data-set-quality-monitoring.md) for more information. \ No newline at end of file From b5067bd2a05c29677ea3a271d389d519eb680d9f Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Wed, 5 Mar 2025 17:03:29 -0600 Subject: [PATCH 02/17] fix links --- .../cloud/monitor-microsoft-azure-openai.md | 23 ------------------- ...tutorial-observe-kubernetes-deployments.md | 19 ++++----------- .../logs/filter-aggregate-logs.md | 2 +- solutions/observability/logs/logs-explorer.md | 4 ++-- 4 files changed, 7 insertions(+), 41 deletions(-) diff --git a/solutions/observability/cloud/monitor-microsoft-azure-openai.md b/solutions/observability/cloud/monitor-microsoft-azure-openai.md index 39ac17831f..2e6c1d1f92 100644 --- a/solutions/observability/cloud/monitor-microsoft-azure-openai.md +++ b/solutions/observability/cloud/monitor-microsoft-azure-openai.md @@ -244,7 +244,6 @@ Now that your log and metric data is streaming to {{es}}, you can view them in { * [View logs and metrics with the overview dashboard](#azure-openai-overview-dashboard): Use the built-in overview dashboard for insight into your Azure OpenAI service like total requests and token usage. * [View logs and metrics with Discover](#azure-openai-discover): Use Discover to find and filter your log and metric data based on specific fields. -* [View logs with Logs Explorer](#azure-openai-logs-explorer): Use Logs Explorer for an in-depth view into your logs. ### View logs and metrics with the overview dashboard [azure-openai-overview-dashboard] @@ -277,28 +276,6 @@ From here, filter your data and dive deeper into individual logs to find informa For more on using Discover and creating data views, refer to the [Discover](../../../explore-analyze/discover.md) documentation. - -### View logs with Logs Explorer [azure-openai-logs-explorer] - -To view Azure OpenAI logs, open {{kib}} and go to **Logs Explorer** (find `Logs Explorer` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md)). With **Logs Explorer**, you can quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. - -:::{image} ../../../images/observability-log-explorer.png -:alt: screenshot of the logs explorer main page -:class: screenshot -::: - -From **Logs Explorer**, you can select the Azure OpenAI integration from the data selector to view your Kubernetes data. - -![screenshot of the logs explorer data selector](../../../images/observability-azure-open-ai-data-selector.png "") - -From here, filter your log data and dive deeper into individual logs to find information and troubleshoot issues. For a list of Azure OpenAI fields you may want to filter by, refer to the [Azure OpenAI integration](https://docs.elastic.co/en/integrations/azure_openai#settings) documentation. - -For more on Logs Explorer, refer to: - -* [Logs Explorer](../logs/logs-explorer.md) for an overview of Logs Explorer. -* [Filter logs in Logs Explorer](../logs/filter-aggregate-logs.md#logs-filter-logs-explorer) for more on filtering logs in Logs Explorer. - - ## Step 6: Monitor Microsoft Azure OpenAI APM with OpenTelemetry [azure-openai-apm] The Azure OpenAI API provides useful data to help monitor and understand your code. Using OpenTelemetry, you can ingest this data into Elastic {{observability}}. From there, you can view and analyze your data to monitor the cost and performance of your applications. diff --git a/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md b/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md index d8f7ceac82..c97ae04582 100644 --- a/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md +++ b/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md @@ -517,23 +517,12 @@ For more on using the **Metrics Explorer** page, refer to [Explore infrastructur ### View Kubernetes logs [monitor-k8s-explore-logs] -Find `Logs Explorer` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). +Find `Discover` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). -With **Logs Explorer**, you can quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. +From the **Data view** menu, select `All logs`. From here, you can quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. Then, you can filter your log data and dive deeper into individual logs to find and troubleshoot issues. For more information, refer to: -:::{image} ../../../images/observability-log-explorer.png -:alt: screenshot of the logs explorer main page -:class: screenshot -::: - -From **Logs Explorer**, you can select the Kubernetes integration from the data selector to view your Kubernetes data. - -![screenshot of the logs explorer main page](../../../images/observability-logs-explorer-applications.png "") - -From here, you can filter your log data and dive deeper into individual logs to find and troubleshoot issues. For more information, refer to: - -* [Logs Explorer](../logs/logs-explorer.md) for an over view of Logs Explorer. -* [Filter logs in Logs Explorer](../logs/filter-aggregate-logs.md#logs-filter-logs-explorer) for more on filtering logs in Logs Explorer. +* [Explore logs in Discover](../logs/logs-explorer.md) for an overview of viewing your logs in Discover. +* [Filter logs in Discover](../logs/filter-aggregate-logs.md#logs-filter-discover) for more on filtering logs in Discover. ## Part 4: Monitor application performance [monitor-kubernetes-application-performance] diff --git a/solutions/observability/logs/filter-aggregate-logs.md b/solutions/observability/logs/filter-aggregate-logs.md index 2e3e24e744..3085102c45 100644 --- a/solutions/observability/logs/filter-aggregate-logs.md +++ b/solutions/observability/logs/filter-aggregate-logs.md @@ -73,7 +73,7 @@ PUT _index_template/logs-example-default-template Filter your data using the fields you’ve extracted so you can focus on log data with specific log levels, timestamp ranges, or host IPs. You can filter your log data in different ways: -* [Filter logs in Logs Explorer](../../../solutions/observability/logs/filter-aggregate-logs.md#logs-filter-logs-explorer): Filter and visualize log data in Logs Explorer. +* [Filter logs in Logs Explorer](../../../solutions/observability/logs/filter-aggregate-logs.md#logs-filter-discover): Filter and visualize log data in Logs Explorer. * [Filter logs with Query DSL](../../../solutions/observability/logs/filter-aggregate-logs.md#logs-filter-qdsl): Filter log data from Developer Tools using Query DSL. diff --git a/solutions/observability/logs/logs-explorer.md b/solutions/observability/logs/logs-explorer.md index 58e982bda0..ac97071b99 100644 --- a/solutions/observability/logs/logs-explorer.md +++ b/solutions/observability/logs/logs-explorer.md @@ -28,9 +28,9 @@ Viewing data in Discover logs data views requires `read` privileges for **Discov By default, the **All logs** data view shows all of your logs, according to the index patterns set in the **logs sources** advanced setting. To open **Advanced settings**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). -To focus on logs from a specific source or sources, create a data view using the index patterns of those source. For more information on creating data views, refer to [Create a data view](../../../explore-analyze/find-and-organize/data-views.md#create-a-data-view-settings-create-pattern) +To focus on logs from a specific source or sources, create a data view using the index patterns of those source. For more information on creating data views, refer to [Create a data view](../../../explore-analyze/find-and-organize/data-views.md#settings-create-pattern) -Once you have the logs you want to focus on displayed, you can drill down further to find the information you need. For more on filtering your data in Discover, refer to [Filter logs in Discover](../../../solutions/observability/logs/filter-aggregate-logs.md#filter-logs-in-discover-logs-filter-discover). +Once you have the logs you want to focus on displayed, you can drill down further to find the information you need. For more on filtering your data in Discover, refer to [Filter logs in Discover](../../../solutions/observability/logs/filter-aggregate-logs.md#logs-filter-discover). ## Review log data in the documents table [review-log-data-in-the-documents-table] From 7dde8fd7939b9325918b6258478e835ae474e9ae Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Thu, 6 Mar 2025 11:12:07 -0600 Subject: [PATCH 03/17] update references to Logs Explorer --- .../observability/apps/collect-metrics.md | 2 +- .../data-set-quality-monitoring.md | 8 ++--- solutions/observability/logs.md | 2 +- .../logs/configure-data-sources.md | 2 +- .../logs/ecs-formatted-application-logs.md | 2 +- solutions/observability/logs/explore-logs.md | 14 ++------- .../logs/filter-aggregate-logs.md | 11 +++---- .../logs/get-started-with-system-logs.md | 13 +++----- .../logs/plaintext-application-logs.md | 31 ++----------------- .../logs/run-pattern-analysis-on-log-data.md | 6 ++-- 10 files changed, 25 insertions(+), 66 deletions(-) diff --git a/solutions/observability/apps/collect-metrics.md b/solutions/observability/apps/collect-metrics.md index 5585ee08e9..9986a82dcb 100644 --- a/solutions/observability/apps/collect-metrics.md +++ b/solutions/observability/apps/collect-metrics.md @@ -35,7 +35,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), and select the **Logs Explorer** tab. +2. Find **Discover** in the main menu or use the [global search field](../../../get-started/the-stack.md#kibana-navigation-search). 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/data-set-quality-monitoring.md b/solutions/observability/data-set-quality-monitoring.md index 23dcbf5a34..3cd60e3019 100644 --- a/solutions/observability/data-set-quality-monitoring.md +++ b/solutions/observability/data-set-quality-monitoring.md @@ -36,7 +36,7 @@ Opening the details of a specific data set shows the degraded documents history, ## Investigate issues [observability-monitor-datasets-investigate-issues] -The Data Set Quality page has a couple of different ways to help you find ignored fields and investigate issues. From the data set table, you can open the data set’s details page, and view commonly ignored fields and information about those fields. Open a logs data set in Logs Explorer or other data set types in Discover to find ignored fields in individual documents. +The Data Set Quality page has a couple of different ways to help you find ignored fields and investigate issues. From the data set table, you can open the data set’s details page, and view commonly ignored fields and information about those fields. Open a logs data set in Discover or other data set types in Discover to find ignored fields in individual documents. ### Find ignored fields in data sets [observability-monitor-datasets-find-ignored-fields-in-data-sets] @@ -51,12 +51,12 @@ The **Quality issues** section shows fields that have been ignored, the number o ### Find ignored fields in individual logs [observability-monitor-datasets-find-ignored-fields-in-individual-logs] -To use Logs Explorer or Discover to find ignored fields in individual logs: +To use Discover to find ignored fields in individual logs: 1. Find data sets with degraded documents using the **Degraded Docs** column of the data sets table. -2. Click the percentage in the **Degraded Docs** column to open the data set in Logs Explorer or Discover. +2. Click the percentage in the **Degraded Docs** column to open the data set in Discover. -The **Documents** table in Logs Explorer or Discover is automatically filtered to show documents that were not parsed correctly. Under the **actions** column, you’ll find the degraded document icon (![degraded document icon](../../images/serverless-indexClose.svg "")). +The **Documents** table in Discover is automatically filtered to show documents that were not parsed correctly. Under the **actions** column, you’ll find the degraded document icon (![degraded document icon](../../images/serverless-indexClose.svg "")). Now that you know which documents contain ignored fields, examine them more closely to find the origin of the issue: diff --git a/solutions/observability/logs.md b/solutions/observability/logs.md index e825f35393..3fd86eb447 100644 --- a/solutions/observability/logs.md +++ b/solutions/observability/logs.md @@ -77,7 +77,7 @@ The following resources provide information on configuring your logs: ## View and monitor logs [observability-log-monitoring-view-and-monitor-logs] -Use **Logs Explorer** to search, filter, and tail all your logs ingested into your project in one place. +Use **Discover** to search, filter, and tail all your logs ingested into your project in one place. The following resources provide information on viewing and monitoring your logs: diff --git a/solutions/observability/logs/configure-data-sources.md b/solutions/observability/logs/configure-data-sources.md index 38d94dc3af..ec422dcf03 100644 --- a/solutions/observability/logs/configure-data-sources.md +++ b/solutions/observability/logs/configure-data-sources.md @@ -11,7 +11,7 @@ applies_to: **There’s a new, better way to explore your logs!** -These settings only apply to the Logs Stream app. The Logs Stream app and dashboard panel are deactivated by default. We recommend viewing and inspecting your logs with [Logs Explorer](logs-explorer.md) as it provides more features, better performance, and more intuitive navigation. +These settings only apply to the Logs Stream app. The Logs Stream app and dashboard panel are deactivated by default. We recommend viewing and inspecting your logs with [Discover](logs-explorer.md) as it provides more features, better performance, and more intuitive navigation. To activate the Logs Stream app, refer to [Activate Logs Stream](logs-stream.md#activate-logs-stream). diff --git a/solutions/observability/logs/ecs-formatted-application-logs.md b/solutions/observability/logs/ecs-formatted-application-logs.md index 73fecbff56..7ffb91098c 100644 --- a/solutions/observability/logs/ecs-formatted-application-logs.md +++ b/solutions/observability/logs/ecs-formatted-application-logs.md @@ -43,7 +43,7 @@ To set up log ECS reformatting: 1. [Enable {{apm-agent}} reformatting](../../../solutions/observability/logs/ecs-formatted-application-logs.md#enable-log-ecs-reformatting) 2. [Ingest logs with {{filebeat}} or {{agent}}](../../../solutions/observability/logs/ecs-formatted-application-logs.md#ingest-ecs-logs) -3. [View logs in Logs Explorer](../../../solutions/observability/logs/ecs-formatted-application-logs.md#view-ecs-logs) +3. [View logs in Discover](../../../solutions/observability/logs/ecs-formatted-application-logs.md#view-ecs-logs) ### Enable log ECS reformatting [enable-log-ecs-reformatting] diff --git a/solutions/observability/logs/explore-logs.md b/solutions/observability/logs/explore-logs.md index 1bd1833852..1062e4158f 100644 --- a/solutions/observability/logs/explore-logs.md +++ b/solutions/observability/logs/explore-logs.md @@ -5,16 +5,8 @@ mapped_pages: # Explore logs [monitor-logs] -Logs Explorer in {{kib}} enables you to search, filter, and tail all your logs ingested into {{es}}. Instead of having to log into different servers, change directories, and tail individual files, all your logs are available in Logs Explorer. - -Logs Explorer allows you to quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. Refer to the [Logs Explorer](logs-explorer.md) documentation for more on using Logs Explorer. - -Logs Explorer also provides {{ml}} to detect specific [log anomalies](inspect-log-anomalies.md) automatically and [categorize log messages](categorize-log-entries.md) to quickly identify patterns in your log events. - -To view Logs Explorer, find **Logs Explorer** in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md)) - - - - +From Discover in {{kib}} or your Observability Serverless project, you can search, filter, and tail all your logs ingested into {{es}}. Instead of having to log into different servers, change directories, and tail individual files, all your logs are available in Discover. +Discover allows you to quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. Refer to [Explore logs in Discover](logs-explorer.md) for more. +Elastic also provides {{ml}} to detect specific [log anomalies](inspect-log-anomalies.md) automatically and [categorize log messages](categorize-log-entries.md) to quickly identify patterns in your log events. \ No newline at end of file diff --git a/solutions/observability/logs/filter-aggregate-logs.md b/solutions/observability/logs/filter-aggregate-logs.md index 03a19a3aeb..587a50f418 100644 --- a/solutions/observability/logs/filter-aggregate-logs.md +++ b/solutions/observability/logs/filter-aggregate-logs.md @@ -73,7 +73,7 @@ PUT _index_template/logs-example-default-template Filter your data using the fields you’ve extracted so you can focus on log data with specific log levels, timestamp ranges, or host IPs. You can filter your log data in different ways: -* [Filter logs in Logs Explorer](../../../solutions/observability/logs/filter-aggregate-logs.md#logs-filter-discover): Filter and visualize log data in Logs Explorer. +* [Filter logs in Discover](../../../solutions/observability/logs/filter-aggregate-logs.md#logs-filter-discover): Filter and visualize log data in Discover. * [Filter logs with Query DSL](../../../solutions/observability/logs/filter-aggregate-logs.md#logs-filter-qdsl): Filter log data from Developer Tools using Query DSL. @@ -100,19 +100,18 @@ POST logs-example-default/_bulk { "message": "2023-09-20T09:40:32.345Z INFO 192.168.1.106 User logout initiated." } ``` -For this example, let’s look for logs with a `WARN` or `ERROR` log level that occurred on September 14th or 15th. From Logs Explorer: +For this example, let’s look for logs with a `WARN` or `ERROR` log level that occurred on September 14th or 15th. From Discover: +1. Make sure **All logs** is selected in the **Data views** menu. 1. Add the following KQL query in the search bar to filter for logs with log levels of `WARN` or `ERROR`: ```text log.level: ("ERROR" or "WARN") ``` - -2. Click the current time range, select **Absolute**, and set the **Start date** to `Sep 14, 2023 @ 00:00:00.000`. +1. Click the current time range, select **Absolute**, and set the **Start date** to `Sep 14, 2023 @ 00:00:00.000`. ![Set the time range start date](../../../images/serverless-logs-start-date.png "") - -3. Click the end of the current time range, select **Absolute**, and set the **End date** to `Sep 15, 2023 @ 23:59:59.999`. +1. Click the end of the current time range, select **Absolute**, and set the **End date** to `Sep 15, 2023 @ 23:59:59.999`. ![Set the time range end date](../../../images/serverless-logs-end-date.png "") diff --git a/solutions/observability/logs/get-started-with-system-logs.md b/solutions/observability/logs/get-started-with-system-logs.md index 4589fa30ec..58bc524467 100644 --- a/solutions/observability/logs/get-started-with-system-logs.md +++ b/solutions/observability/logs/get-started-with-system-logs.md @@ -15,7 +15,7 @@ applies_to: :::: -In this guide you’ll learn how to onboard system log data from a machine or server, then observe the data in **Logs Explorer**. +In this guide you’ll learn how to onboard system log data from a machine or server, then observe the data in **Discover**. To onboard system log data: @@ -26,18 +26,13 @@ To onboard system log data: After the agent is installed and successfully streaming log data, you can view the data in the UI: -1. From the navigation menu, go to **Discover** and select the **Logs Explorer** tab. The view shows all log datasets. Notice you can add fields, change the view, expand a document to see details, and perform other actions to explore your data. -2. Click **All log datasets** and select **System** → **syslog** to show syslog logs. - -:::{image} ../../../images/serverless-log-explorer-select-syslogs.png -:alt: Screen capture of the Logs Explorer showing syslog dataset selected -:class: screenshot -::: +1. From the navigation menu, go to **Discover**. +1. Select **All logs** from the **Data views** menu. The view shows all log datasets. Notice you can add fields, change the view, expand a document to see details, and perform other actions to explore your data. ## Next steps [observability-get-started-with-logs-next-steps] -Now that you’ve added system logs and explored your data, learn how to onboard other types of data: +Now that you’ve added logs and explored your data, learn how to onboard other types of data: * [Stream any log file](stream-any-log-file.md) * [Get started with traces and APM](../apps/get-started-with-apm.md) diff --git a/solutions/observability/logs/plaintext-application-logs.md b/solutions/observability/logs/plaintext-application-logs.md index 0950019cf9..7335dc5269 100644 --- a/solutions/observability/logs/plaintext-application-logs.md +++ b/solutions/observability/logs/plaintext-application-logs.md @@ -20,7 +20,7 @@ To ingest, parse, and correlate plaintext logs: 1. Ingest plaintext logs with [{{filebeat}}](../../../solutions/observability/logs/plaintext-application-logs.md#ingest-plaintext-logs-with-filebeat) or [{{agent}}](../../../solutions/observability/logs/plaintext-application-logs.md#ingest-plaintext-logs-with-the-agent) and parse them before indexing with an ingest pipeline. 2. [Correlate plaintext logs with an {{apm-agent}}.](../../../solutions/observability/logs/plaintext-application-logs.md#correlate-plaintext-logs) -3. [View logs in Logs Explorer](../../../solutions/observability/logs/plaintext-application-logs.md#view-plaintext-logs) +3. [View logs in Discover](../../../solutions/observability/logs/plaintext-application-logs.md#view-plaintext-logs) ## Ingest logs [ingest-plaintext-logs] @@ -351,31 +351,4 @@ Learn about correlating plaintext logs in the agent-specific ingestion guides: ## View logs [view-plaintext-logs] -To view logs ingested by {{filebeat}}, go to **Discover** from the main menu and create a data view based on the `filebeat-*` index pattern. Refer to [Create a data view](../../../explore-analyze/find-and-organize/data-views.md) for more information. - -To view logs ingested by {{agent}}, go to Logs Explorer by clicking **Explorer** under **Logs** from the {{observability}} main menu. Refer to the [Filter and aggregate logs](../../../solutions/observability/logs/filter-aggregate-logs.md) documentation for more information on viewing and filtering your logs in {{kib}}. - - -% What needs to be done: Align serverless/stateful - -% Use migrated content from existing pages that map to this page: - -% - [ ] ./raw-migrated-files/docs-content/serverless/observability-plaintext-application-logs.md - -% Internal links rely on the following IDs being on this page (e.g. as a heading ID, paragraph ID, etc): - -$$$correlate-plaintext-logs$$$ - -$$$ingest-plaintext-logs-with-filebeat$$$ - -$$$ingest-plaintext-logs-with-the-agent$$$ - -$$$observability-plaintext-application-logs-correlate-logs$$$ - -$$$observability-plaintext-application-logs-ingest-logs-with-agent$$$ - -$$$observability-plaintext-application-logs-ingest-logs-with-filebeat$$$ - -$$$observability-plaintext-application-logs-view-logs$$$ - -$$$view-plaintext-logs$$$ \ No newline at end of file +To view logs ingested by {{filebeat}}, go to **Discover** from the main menu and create a data view based on the `filebeat-*` index pattern. Refer to [Create a data view](../../../explore-analyze/find-and-organize/data-views.md) for more information. \ No newline at end of file diff --git a/solutions/observability/logs/run-pattern-analysis-on-log-data.md b/solutions/observability/logs/run-pattern-analysis-on-log-data.md index e9ec125c35..98737632fa 100644 --- a/solutions/observability/logs/run-pattern-analysis-on-log-data.md +++ b/solutions/observability/logs/run-pattern-analysis-on-log-data.md @@ -18,8 +18,8 @@ Log pattern analysis works on every text field. To run a log pattern analysis: -1. In your {{obs-serverless}} project, go to **Discover** and select the **Logs Explorer** tab. -2. Select an integration, and apply any filters that you want. +1. In your {{obs-serverless}} project, go to **Discover** and select the **All logs** from the **Data view** menu. +2. Apply any filters that you want. 3. If you don’t see any results, expand the time range, for example, to **Last 15 days**. 4. In the **Available fields** list, select the text field you want to analyze, then click **Run pattern analysis**. @@ -32,4 +32,4 @@ To run a log pattern analysis: :class: screenshot ::: -5. (Optional) Select one or more patterns, then choose to filter for (or filter out) documents that match the selected patterns. **Logs Explorer** only displays documents that match (or don’t match) the selected patterns. The filter options enable you to remove unimportant messages and focus on the more important, actionable data during troubleshooting. +5. (Optional) Select one or more patterns, then choose to filter for (or filter out) documents that match the selected patterns. Discover only displays documents that match (or don’t match) the selected patterns. The filter options enable you to remove unimportant messages and focus on the more important, actionable data during troubleshooting. From 564dba5787830192265e68aed498114b9866c7c7 Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Thu, 6 Mar 2025 13:20:27 -0600 Subject: [PATCH 04/17] remove logs explorer mention --- .../data-set-quality-monitoring.md | 4 +- solutions/observability/logs/logs-stream.md | 68 ------------------- 2 files changed, 3 insertions(+), 69 deletions(-) delete mode 100644 solutions/observability/logs/logs-stream.md diff --git a/solutions/observability/data-set-quality-monitoring.md b/solutions/observability/data-set-quality-monitoring.md index 3cd60e3019..2b682816e3 100644 --- a/solutions/observability/data-set-quality-monitoring.md +++ b/solutions/observability/data-set-quality-monitoring.md @@ -2,8 +2,10 @@ mapped_urls: - https://www.elastic.co/guide/en/observability/current/monitor-datasets.html - https://www.elastic.co/guide/en/serverless/current/observability-monitor-datasets.html - navigation_title: "Data set quality" +applies_to: + stack: all + serverless: all --- # Data set quality monitoring [observability-monitor-datasets] diff --git a/solutions/observability/logs/logs-stream.md b/solutions/observability/logs/logs-stream.md deleted file mode 100644 index 79ab250bab..0000000000 --- a/solutions/observability/logs/logs-stream.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/tail-logs.html ---- - -# Logs Stream [tail-logs] - -::::{note} -**There’s a new, better way to explore your logs!** - -The Logs Stream app and dashboard panel are deactivated by default. We recommend viewing and inspecting your logs with [Logs Explorer](logs-explorer.md) as it provides more features, better performance, and more intuitive navigation. - -To activate the Logs Stream app, refer to [Activate Logs Stream](#activate-logs-stream). - -:::: - - -Within the {{logs-app}}, the **Stream** page enables you to monitor all of the log events flowing in from your servers, virtual machines, and containers in a centralized view. You can consider this as a `tail -f` in your browser, along with the power of search. - -Click **Stream Live** to view a continuous flow of log messages in real time, or click **Stop streaming** to view historical logs from a specified time range. - - -## Activate Logs Stream [activate-logs-stream] - -Because [Logs Explorer](logs-explorer.md) is replacing Logs Stream, Logs Stream and the Logs Stream dashboard panel are disabled by default. To activate Logs Stream and the Logs Stream dashboard panel complete the following steps: - -1. To open **Advanced Settings**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). -2. In **Advanced Settings**, enter *Logs Stream* in the search bar. -3. Turn on **Logs Stream**. - -After saving your settings, you’ll see Logs Stream in the Observability navigation, and the Logs Stream dashboard panel will be available. - - -## Filter logs [filter-logs] - -To help you get started with your analysis faster and extract fields from your logs, use the search bar to create structured queries using [{{kib}} Query Language](../../../explore-analyze/query-filter/languages/kql.md). For example, enter `host.hostname : "host1"` to see only the information for `host1`. - -Additionally, click **Highlights** and enter a term you would like to locate within the log events. The Logs histogram, located to the right, highlights the number of discovered terms and when the log event was ingested. This helps you quickly jump between potential areas of interest in large amounts of logs, or from a high level, view when a large number of events occurred. - - -## Inspect log event details [inspect-log-event] - -When you have searched and filtered your logs for a specific log event, you may want to examine the metadata and the structured fields associated with that event. To view the **Log event document details** fly-out, hover over the log event, click **View actions for line**, and then select **View details**. To further enhance the workflow of monitoring logs, the icons next to each field value enable you to filter the logs per that value. - -:::{image} ../../../images/observability-log-event-details.png -:alt: Log event details -:class: screenshot -::: - - -## View contextual logs [view-contextual-logs] - -Once your logs are filtered, and you find an interesting log line, the real context you are looking for is what happened before and after that log line within that data source. For example, you are running containerized applications on a Kubernetes cluster, you filter the logs for the term `error`, and you find an interesting error log line. The context you want is what happened before and after the error line within the logs of this container and application. - -Hover over the log event, click **View actions for line**, and then select **View in context**. The context is preserved and helps you find the root cause as soon as possible. - -:::{image} ../../../images/observability-contextual-logs.png -:alt: Contextual log event -:class: screenshot -::: - - -## Integrate with Uptime and APM [uptime-apm-integration] - -To see other actions related to a log event, click **Actions** in the **Log event document details** fly-out. Depending on the event and the features you have configured, you can: - -* Select **View status in Uptime** to [view related uptime information](../apps/view-monitor-status.md) in the {{uptime-app}}. -* Select **View in APM** to [view corresponding APM traces](../apps/traces-2.md) in the Applications UI. From 3913e3b448585be6b8b17d80e6abd6bf6d420c73 Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Thu, 6 Mar 2025 13:45:33 -0600 Subject: [PATCH 05/17] update nginx tutorial --- .../data-set-quality-monitoring.md | 4 +-- .../tutorial-observe-nginx-instances.md | 27 +++++-------------- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/solutions/observability/data-set-quality-monitoring.md b/solutions/observability/data-set-quality-monitoring.md index 2b682816e3..19f10b0f06 100644 --- a/solutions/observability/data-set-quality-monitoring.md +++ b/solutions/observability/data-set-quality-monitoring.md @@ -4,8 +4,8 @@ mapped_urls: - https://www.elastic.co/guide/en/serverless/current/observability-monitor-datasets.html navigation_title: "Data set quality" applies_to: - stack: all - serverless: all + stack: beta + serverless: beta --- # Data set quality monitoring [observability-monitor-datasets] diff --git a/solutions/observability/infra-and-hosts/tutorial-observe-nginx-instances.md b/solutions/observability/infra-and-hosts/tutorial-observe-nginx-instances.md index fd29ea12f1..7d170e5536 100644 --- a/solutions/observability/infra-and-hosts/tutorial-observe-nginx-instances.md +++ b/solutions/observability/infra-and-hosts/tutorial-observe-nginx-instances.md @@ -11,7 +11,7 @@ mapped_pages: :::: -Use the [nginx Elastic integration](https://docs.elastic.co/en/integrations/nginx) and the {{agent}} to collect valuable metrics and logs from your nginx instances. Then, use built-in dashboards and tools like Logs Explorer in {{kib}} to visualize and monitor your nginx data from one place. This data provides valuable insight into your nginx instances—for example: +Use the [nginx Elastic integration](https://docs.elastic.co/en/integrations/nginx) and the {{agent}} to collect valuable metrics and logs from your nginx instances. Then, use built-in dashboards and tools like Discover to visualize and monitor your nginx data from one place. This data provides valuable insight into your nginx instances—for example: * A spike in error logs for a certain resource may mean you have a deleted resource that is still needed. * Access logs can show when a service’s peak times are, and, from this, when it might be best to perform things like maintenance. @@ -195,33 +195,20 @@ The **Metrics Nginx overview** shows visual representations of total requests, p ### View logs [monitor-nginx-explore-logs] -After your nginx logs are ingested, view and explore your logs using [Logs Explorer](#monitor-nginx-logs-explorer) or the [nginx logs dashboards](#monitor-nginx-logs-dashboard). +After your nginx logs are ingested, view and explore your logs using [Discover](#monitor-nginx-discover) or the [nginx logs dashboards](#monitor-nginx-logs-dashboard). -#### Logs Explorer [monitor-nginx-logs-explorer] +#### Discover [monitor-nginx-discover] -With Logs Explorer, you can quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. +With Discover, you can quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. -To open **Logs Explorer**, find `Logs Explorer` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). +Find `Discover` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). Filter your results to see logs from the nginx integration from the data selector: -1. Under **Integrations**, select **Nginx**. - - :::{image} ../../../images/observability-nginx-data-selector.png - :alt: nginx integration in the data selector - :class: screenshot - ::: - -2. Select either **access** logs or **error** logs to view the logs you’re looking for. - -The **Documents** table now shows your nginx logs: - -:::{image} ../../../images/observability-nginx-logs-explorer.png -:alt: Logs Explorer showing nginx error logs -:class: screenshot -::: +1. From the **Data view** menu, select all logs. +2. Filter the log results using the KQL search bar. Enter `data_stream.dataset : "nginx.error"` to show nginx error logs or `data_stream.dataset : "nginx.access"` to show nginx access logs. #### nginx logs dashboards [monitor-nginx-logs-dashboard] From 3bda0fa9084207200411f9be0dd50dea4f10ad37 Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Thu, 6 Mar 2025 13:50:05 -0600 Subject: [PATCH 06/17] remove logs explorer references --- reference/observability/fields-and-object-schemas.md | 2 +- .../fields-and-object-schemas/logs-app-fields.md | 4 ++-- reference/observability/index.md | 2 +- solutions/observability/cloud/monitor-cloudtrail-logs.md | 4 ++-- .../quickstart-monitor-hosts-with-elastic-agent.md | 4 ++-- .../quickstart-monitor-hosts-with-opentelemetry.md | 4 ++-- .../get-started/what-is-elastic-observability.md | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/reference/observability/fields-and-object-schemas.md b/reference/observability/fields-and-object-schemas.md index 43ed93a940..f7bb4c6c12 100644 --- a/reference/observability/fields-and-object-schemas.md +++ b/reference/observability/fields-and-object-schemas.md @@ -13,7 +13,7 @@ Beat modules (for example, [{{filebeat}} modules](asciidocalypse://docs/beats/do This reference covers: -* [Logs Explorer fields](/reference/observability/fields-and-object-schemas/logs-app-fields.md) +* [Logs Discover fields](/reference/observability/fields-and-object-schemas/logs-app-fields.md) * [{{infrastructure-app}} fields](/reference/observability/fields-and-object-schemas/metrics-app-fields.md) diff --git a/reference/observability/fields-and-object-schemas/logs-app-fields.md b/reference/observability/fields-and-object-schemas/logs-app-fields.md index a80c464ea9..223f66bb42 100644 --- a/reference/observability/fields-and-object-schemas/logs-app-fields.md +++ b/reference/observability/fields-and-object-schemas/logs-app-fields.md @@ -3,9 +3,9 @@ mapped_pages: - https://www.elastic.co/guide/en/observability/current/logs-app-fields.html --- -# Logs Explorer fields [logs-app-fields] +# Discover logs fields [logs-app-fields] -This section lists the required fields the **Logs Explorer** uses to display data. Please note that some of the fields listed are not [ECS fields](asciidocalypse://docs/ecs/docs/reference/index.md#_what_is_ecs). +This section lists the required fields Discover uses to display log data. Please note that some of the fields listed are not [ECS fields](asciidocalypse://docs/ecs/docs/reference/index.md#_what_is_ecs). `@timestamp` : Date/time when the event originated. diff --git a/reference/observability/index.md b/reference/observability/index.md index abb5329c4a..8e8a13c6f9 100644 --- a/reference/observability/index.md +++ b/reference/observability/index.md @@ -10,7 +10,7 @@ applies_to: This section contains reference information for Elastic Observability features, including: * Fields reference - * Logs Explorer fields + * Logs Discover fields * Infrastructure app fields * Elastic Entity Model diff --git a/solutions/observability/cloud/monitor-cloudtrail-logs.md b/solutions/observability/cloud/monitor-cloudtrail-logs.md index 410275e01f..8be39d9802 100644 --- a/solutions/observability/cloud/monitor-cloudtrail-logs.md +++ b/solutions/observability/cloud/monitor-cloudtrail-logs.md @@ -207,10 +207,10 @@ Navigate to {{kib}} and choose among the following monitoring options: :alt: Visualize CloudTrail logs with Disocver ::: -* **Visualize your logs with Logs explorer** +* **Visualize your logs with Discover** :::{image} ../../../images/observability-firehose-cloudtrail-logsexplorer.png - :alt: Visualize CloudTrail logs with Logs explorer + :alt: Visualize CloudTrail logs with Discover ::: * **Visualize your logs with the CloudTrail Dashboard** diff --git a/solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md b/solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md index ef2658570e..1ac8c2696c 100644 --- a/solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md +++ b/solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md @@ -129,7 +129,7 @@ After installation is complete and all relevant data is flowing into Elastic, th | Integration asset | Description | | --- | --- | | **Apache** | Prebuilt dashboard for monitoring Apache HTTP server health using error and access log data. | -| **Custom .log files** | Logs Explorer for analyzing custom logs. | +| **Custom .log files** | Discover for analyzing custom logs. | | **Docker** | Prebuilt dashboard for monitoring the status and health of Docker containers. | | **MySQL** | Prebuilt dashboard for monitoring MySQl server health using error and access log data. | | **Nginx** | Prebuilt dashboard for monitoring Nginx server health using error and access log data. | @@ -155,7 +155,7 @@ For host monitoring, the following capabilities and features are recommended: * [Detect anomalies](../../../solutions/observability/infra-and-hosts/detect-metric-anomalies.md) for memory usage and network traffic on hosts. * [Create alerts](../../../solutions/observability/incident-management/alerting.md) that notify you when an anomaly is detected or a metric exceeds a given value. -* In the [Logs Explorer](../../../solutions/observability/logs/logs-explorer.md), search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. You can also: +* In [Discover](../../../solutions/observability/logs/logs-explorer.md), search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. You can also: * [Monitor log data set quality](../../../solutions/observability/data-set-quality-monitoring.md) to find degraded documents. * [Run a pattern analysis](../../../explore-analyze/machine-learning/machine-learning-in-kibana/xpack-ml-aiops.md#log-pattern-analysis) to find patterns in unstructured log messages. diff --git a/solutions/observability/get-started/quickstart-monitor-hosts-with-opentelemetry.md b/solutions/observability/get-started/quickstart-monitor-hosts-with-opentelemetry.md index b88cabbbb6..f912bca96b 100644 --- a/solutions/observability/get-started/quickstart-monitor-hosts-with-opentelemetry.md +++ b/solutions/observability/get-started/quickstart-monitor-hosts-with-opentelemetry.md @@ -115,7 +115,7 @@ Logs are collected from setup onward, so you won’t see logs that occurred befo ::::: -Under **Visualize your data**, you’ll see links to **Logs Explorer** to view your logs and **Hosts** to view your host metrics. +Under **Visualize your data**, you’ll see links to **Discover** to view your logs and **Hosts** to view your host metrics. ## Gain deeper insight into your host data [_get_value_out_of_your_data] @@ -127,7 +127,7 @@ After using the Hosts page and Discover to confirm you’ve ingested all the hos * [Detect anomalies](../../../solutions/observability/infra-and-hosts/detect-metric-anomalies.md) for memory usage and network traffic on hosts. * [Create alerts](../../../solutions/observability/incident-management/create-manage-rules.md) that notify you when an anomaly is detected or a metric exceeds a given value. -* In the [Logs Explorer](../../../solutions/observability/logs/logs-explorer.md), search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. You can also: +* In [Discover](../../../solutions/observability/logs/logs-explorer.md), search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. You can also: * [Monitor log data set quality](../../../solutions/observability/data-set-quality-monitoring.md) to find degraded documents. * [Run a pattern analysis](../../../explore-analyze/machine-learning/machine-learning-in-kibana/xpack-ml-aiops.md#log-pattern-analysis) to find patterns in unstructured log messages. diff --git a/solutions/observability/get-started/what-is-elastic-observability.md b/solutions/observability/get-started/what-is-elastic-observability.md index 8a4a301ab8..da3a166565 100644 --- a/solutions/observability/get-started/what-is-elastic-observability.md +++ b/solutions/observability/get-started/what-is-elastic-observability.md @@ -18,10 +18,10 @@ mapped_urls: Analyze log data from your hosts, services, Kubernetes, Apache, and many more. -In **Logs Explorer** (powered by Discover), you can quickly search and filter your log data, get information about the structure of the fields, and display your findings in a visualization. +In **Discover**, you can quickly search and filter your log data, get information about the structure of the fields, and display your findings in a visualization. :::{image} ../../../images/serverless-log-explorer-overview.png -:alt: Logs Explorer showing log events +:alt: Discover showing log events :class: screenshot ::: From 073bddeae18164e92dc156453b3ca40edecce1da Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Thu, 6 Mar 2025 17:36:10 -0600 Subject: [PATCH 07/17] fix error --- .../observability/logs-stream.md | 369 ++++++++++++++++++ 1 file changed, 369 insertions(+) create mode 100644 raw-migrated-files/observability-docs/observability/logs-stream.md diff --git a/raw-migrated-files/observability-docs/observability/logs-stream.md b/raw-migrated-files/observability-docs/observability/logs-stream.md new file mode 100644 index 0000000000..10c95f42b9 --- /dev/null +++ b/raw-migrated-files/observability-docs/observability/logs-stream.md @@ -0,0 +1,369 @@ +# Stream any log file [logs-stream] + +This guide shows you how to manually configure a standalone {{agent}} to send your log data to {{es}} using the `elastic-agent.yml` file. + +If you don’t want to manually configure the {{agent}}, you can use the **Monitor hosts with {{agent}}** quickstart. Refer to the [quickstart documentation](../../../solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md) for more information. + +Continue with this guide for instructions on manual configuration. + + +## Prerequisites [logs-stream-prereq] + +To follow the steps in this guide, you need an {{stack}} deployment that includes: + +* {{es}} for storing and searching data +* {{kib}} for visualizing and managing data +* Kibana user with `All` privileges on {{fleet}} and Integrations. Since many Integrations assets are shared across spaces, users need the Kibana privileges in all spaces. +* Integrations Server (included by default in every {{ess}} deployment) + +To get started quickly, spin up a deployment of our hosted {{ess}}. The {{ess}} is available on AWS, GCP, and Azure. [Try it out for free](https://cloud.elastic.co/registration?page=docs&placement=docs-body). + + +## Install and configure the standalone {{agent}} [logs-stream-install-config-agent] + +Complete these steps to install and configure the standalone {{agent}} and send your log data to {{es}}: + +1. [Download and extract the {{agent}} installation package.](../../../solutions/observability/logs/stream-any-log-file.md#logs-stream-extract-agent) +2. [Install and start the {{agent}}.](../../../solutions/observability/logs/stream-any-log-file.md#logs-stream-install-agent) +3. [Configure the {{agent}}.](../../../solutions/observability/logs/stream-any-log-file.md#logs-stream-agent-config) + + +### Step 1: Download and extract the {{agent}} installation package [logs-stream-extract-agent] + +On your host, download and extract the installation package that corresponds with your system: + +:::::::{tab-set} + +::::::{tab-item} macOS +Version 9.0.0-beta1 of {{agent}} has not yet been released. +:::::: + +::::::{tab-item} Linux +Version 9.0.0-beta1 of {{agent}} has not yet been released. +:::::: + +::::::{tab-item} Windows +Version 9.0.0-beta1 of {{agent}} has not yet been released. +:::::: + +::::::{tab-item} DEB +Version 9.0.0-beta1 of {{agent}} has not yet been released. +:::::: + +::::::{tab-item} RPM +Version 9.0.0-beta1 of {{agent}} has not yet been released. +:::::: + +::::::: + +### Step 2: Install and start the {{agent}} [logs-stream-install-agent] + +After downloading and extracting the installation package, you’re ready to install the {{agent}}. From the agent directory, run the install command that corresponds with your system: + +::::{note} +On macOS, Linux (tar package), and Windows, run the `install` command to install and start {{agent}} as a managed service and start the service. The DEB and RPM packages include a service unit for Linux systems with systemd, For these systems, you must enable and start the service. +:::: + + +:::::::{tab-set} + +::::::{tab-item} macOS +::::{tip} +You must run this command as the root user because some integrations require root privileges to collect sensitive data. +:::: + + +```shell +sudo ./elastic-agent install +``` +:::::: + +::::::{tab-item} Linux +::::{tip} +You must run this command as the root user because some integrations require root privileges to collect sensitive data. +:::: + + +```shell +sudo ./elastic-agent install +``` +:::::: + +::::::{tab-item} Windows +Open a PowerShell prompt as an Administrator (right-click the PowerShell icon and select **Run As Administrator**). + +From the PowerShell prompt, change to the directory where you installed {{agent}}, and run: + +```shell +.\elastic-agent.exe install +``` +:::::: + +::::::{tab-item} DEB +::::{tip} +You must run this command as the root user because some integrations require root privileges to collect sensitive data. +:::: + + +```shell +sudo systemctl enable elastic-agent <1> +sudo systemctl start elastic-agent +``` + +1. The DEB package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. If you don’t have systemd, run `sudo service elastic-agent start`. +:::::: + +::::::{tab-item} RPM +::::{tip} +You must run this command as the root user because some integrations require root privileges to collect sensitive data. +:::: + + +```shell +sudo systemctl enable elastic-agent <1> +sudo systemctl start elastic-agent +``` + +1. The RPM package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. If you don’t have systemd, run `sudo service elastic-agent start`. +:::::: + +::::::: +During installation, you’re prompted with some questions: + +1. When asked if you want to install the agent as a service, enter `Y`. +2. When asked if you want to enroll the agent in Fleet, enter `n`. + + +### Step 3: Configure the {{agent}} [logs-stream-agent-config] + +With your agent installed, configure it by updating the `elastic-agent.yml` file. + + +#### Locate your configuration file [logs-stream-yml-location] + +After installing the agent, you’ll find the `elastic-agent.yml` in one of the following locations according to your system: + +:::::::{tab-set} + +::::::{tab-item} macOS +Main {{agent}} configuration file location: + +`/Library/Elastic/Agent/elastic-agent.yml` +:::::: + +::::::{tab-item} Linux +Main {{agent}} configuration file location: + +`/opt/Elastic/Agent/elastic-agent.yml` +:::::: + +::::::{tab-item} Windows +Main {{agent}} configuration file location: + +`C:\Program Files\Elastic\Agent\elastic-agent.yml` +:::::: + +::::::{tab-item} DEB +Main {{agent}} configuration file location: + +`/etc/elastic-agent/elastic-agent.yml` +:::::: + +::::::{tab-item} RPM +Main {{agent}} configuration file location: + +`/etc/elastic-agent/elastic-agent.yml` +:::::: + +::::::: + +#### Update your configuration file [logs-stream-example-config] + +The following is an example of a standalone {{agent}} configuration. To configure your {{agent}}, replace the contents of the `elastic-agent.yml` file with this configuration: + +```yaml +outputs: + default: + type: elasticsearch + hosts: ':' + api_key: 'your-api-key' +inputs: + - id: your-log-id + type: filestream + streams: + - id: your-log-stream-id + data_stream: + dataset: example + paths: + - /var/log/your-logs.log +``` + +Next, set the values for these fields: + +* `hosts` – Copy the {{es}} endpoint from **Help menu (![help icon](../../../images/observability-help-icon.png "")) → Connection details**. For example, `https://my-deployment.es.us-central1.gcp.cloud.es.io:443`. +* `api-key` – Use an API key to grant the agent access to {{es}}. To create an API key for your agent, refer to the [Create API keys for standalone agents](asciidocalypse://docs/docs-content/docs/reference/ingestion-tools/fleet/grant-access-to-elasticsearch.md#create-api-key-standalone-agent) documentation. + + ::::{note} + The API key format should be `:`. Make sure you selected **Beats** when you created your API key. Base64 encoded API keys are not currently supported in this configuration. + :::: + +* `inputs.id` – A unique identifier for your input. +* `type` – The type of input. For collecting logs, set this to `filestream`. +* `streams.id` – A unique identifier for your stream of log data. +* `data_stream.dataset` – The name for your dataset data stream. Name this data stream anything that signifies the source of the data. In this configuration, the dataset is set to `example`. The default value is `generic`. +* `paths` – The path to your log files. You can also use a pattern like `/var/log/your-logs.log*`. + + +#### Restart the {{agent}} [logs-stream-restart-agent] + +After updating your configuration file, you need to restart the {{agent}}: + +First, stop the {{agent}} and its related executables using the command that works with your system: + +:::::::{tab-set} + +::::::{tab-item} macOS +```shell +sudo launchctl unload /Library/LaunchDaemons/co.elastic.elastic-agent.plist +``` + +::::{note} +{{agent}} will restart automatically if the system is rebooted. +:::: +:::::: + +::::::{tab-item} Linux +```shell +sudo service elastic-agent stop +``` + +::::{note} +{{agent}} will restart automatically if the system is rebooted. +:::: +:::::: + +::::::{tab-item} Windows +```shell +Stop-Service Elastic Agent +``` + +If necessary, use Task Manager on Windows to stop {{agent}}. This will kill the `elastic-agent` process and any sub-processes it created (such as {{beats}}). + +::::{note} +{{agent}} will restart automatically if the system is rebooted. +:::: +:::::: + +::::::{tab-item} DEB +The DEB package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. + +Use `systemctl` to stop the agent: + +```shell +sudo systemctl stop elastic-agent +``` + +Otherwise, use: + +```shell +sudo service elastic-agent stop +``` + +::::{note} +{{agent}} will restart automatically if the system is rebooted. +:::: +:::::: + +::::::{tab-item} RPM +The RPM package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. + +Use `systemctl` to stop the agent: + +```shell +sudo systemctl stop elastic-agent +``` + +Otherwise, use: + +```shell +sudo service elastic-agent stop +``` + +::::{note} +{{agent}} will restart automatically if the system is rebooted. +:::: +:::::: + +::::::: +Next, restart the {{agent}} using the command that works with your system: + +:::::::{tab-set} + +::::::{tab-item} macOS +```shell +sudo launchctl load /Library/LaunchDaemons/co.elastic.elastic-agent.plist +``` +:::::: + +::::::{tab-item} Linux +```shell +sudo service elastic-agent start +``` +:::::: + +::::::{tab-item} Windows +```shell +Start-Service Elastic Agent +``` +:::::: + +::::::{tab-item} DEB +The DEB package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. + +Use `systemctl` to start the agent: + +```shell +sudo systemctl start elastic-agent +``` + +Otherwise, use: + +```shell +sudo service elastic-agent start +``` +:::::: + +::::::{tab-item} RPM +The RPM package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. + +Use `systemctl` to start the agent: + +```shell +sudo systemctl start elastic-agent +``` + +Otherwise, use: + +```shell +sudo service elastic-agent start +``` +:::::: + +::::::: + +## Troubleshoot your {{agent}} configuration [logs-stream-troubleshooting] + +If you’re not seeing your log files in {{kib}}, verify the following in the `elastic-agent.yml` file: + +* The path to your logs file under `paths` is correct. +* Your API key is in `:` format. If not, your API key may be in an unsupported format, and you’ll need to create an API key in **Beats** format. + +If you’re still running into issues, see [{{agent}} troubleshooting](../../../troubleshoot/ingest/fleet/common-problems.md) and [Configure standalone Elastic Agents](asciidocalypse://docs/docs-content/docs/reference/ingestion-tools/fleet/configure-standalone-elastic-agents.md). + + +## Next steps [logs-stream-next-steps] + +After you have your agent configured and are streaming log data to {{es}}: + +* Refer to the [Parse and organize logs](../../../solutions/observability/logs/parse-route-logs.md) documentation for information on extracting structured fields from your log data, rerouting your logs to different data streams, and filtering and aggregating your log data. +* Refer to the [Filter and aggregate logs](../../../solutions/observability/logs/filter-aggregate-logs.md) documentation for information on filtering and aggregating your log data to find specific information, gain insight, and monitor your systems more efficiently. From 9a9b479fe19819b7ed5b46315bf0b2b0133c9707 Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Thu, 6 Mar 2025 18:06:39 -0600 Subject: [PATCH 08/17] fix error --- solutions/observability/logs/logs-stream.md | 68 +++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 solutions/observability/logs/logs-stream.md diff --git a/solutions/observability/logs/logs-stream.md b/solutions/observability/logs/logs-stream.md new file mode 100644 index 0000000000..79ab250bab --- /dev/null +++ b/solutions/observability/logs/logs-stream.md @@ -0,0 +1,68 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/observability/current/tail-logs.html +--- + +# Logs Stream [tail-logs] + +::::{note} +**There’s a new, better way to explore your logs!** + +The Logs Stream app and dashboard panel are deactivated by default. We recommend viewing and inspecting your logs with [Logs Explorer](logs-explorer.md) as it provides more features, better performance, and more intuitive navigation. + +To activate the Logs Stream app, refer to [Activate Logs Stream](#activate-logs-stream). + +:::: + + +Within the {{logs-app}}, the **Stream** page enables you to monitor all of the log events flowing in from your servers, virtual machines, and containers in a centralized view. You can consider this as a `tail -f` in your browser, along with the power of search. + +Click **Stream Live** to view a continuous flow of log messages in real time, or click **Stop streaming** to view historical logs from a specified time range. + + +## Activate Logs Stream [activate-logs-stream] + +Because [Logs Explorer](logs-explorer.md) is replacing Logs Stream, Logs Stream and the Logs Stream dashboard panel are disabled by default. To activate Logs Stream and the Logs Stream dashboard panel complete the following steps: + +1. To open **Advanced Settings**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). +2. In **Advanced Settings**, enter *Logs Stream* in the search bar. +3. Turn on **Logs Stream**. + +After saving your settings, you’ll see Logs Stream in the Observability navigation, and the Logs Stream dashboard panel will be available. + + +## Filter logs [filter-logs] + +To help you get started with your analysis faster and extract fields from your logs, use the search bar to create structured queries using [{{kib}} Query Language](../../../explore-analyze/query-filter/languages/kql.md). For example, enter `host.hostname : "host1"` to see only the information for `host1`. + +Additionally, click **Highlights** and enter a term you would like to locate within the log events. The Logs histogram, located to the right, highlights the number of discovered terms and when the log event was ingested. This helps you quickly jump between potential areas of interest in large amounts of logs, or from a high level, view when a large number of events occurred. + + +## Inspect log event details [inspect-log-event] + +When you have searched and filtered your logs for a specific log event, you may want to examine the metadata and the structured fields associated with that event. To view the **Log event document details** fly-out, hover over the log event, click **View actions for line**, and then select **View details**. To further enhance the workflow of monitoring logs, the icons next to each field value enable you to filter the logs per that value. + +:::{image} ../../../images/observability-log-event-details.png +:alt: Log event details +:class: screenshot +::: + + +## View contextual logs [view-contextual-logs] + +Once your logs are filtered, and you find an interesting log line, the real context you are looking for is what happened before and after that log line within that data source. For example, you are running containerized applications on a Kubernetes cluster, you filter the logs for the term `error`, and you find an interesting error log line. The context you want is what happened before and after the error line within the logs of this container and application. + +Hover over the log event, click **View actions for line**, and then select **View in context**. The context is preserved and helps you find the root cause as soon as possible. + +:::{image} ../../../images/observability-contextual-logs.png +:alt: Contextual log event +:class: screenshot +::: + + +## Integrate with Uptime and APM [uptime-apm-integration] + +To see other actions related to a log event, click **Actions** in the **Log event document details** fly-out. Depending on the event and the features you have configured, you can: + +* Select **View status in Uptime** to [view related uptime information](../apps/view-monitor-status.md) in the {{uptime-app}}. +* Select **View in APM** to [view corresponding APM traces](../apps/traces-2.md) in the Applications UI. From 0e8495623894f9cbc9ec430913a47c29c00170d2 Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Tue, 1 Apr 2025 11:17:13 -0500 Subject: [PATCH 09/17] fix links --- .../fields-and-object-schemas/logs-app-fields.md | 2 +- .../cloud/monitor-cloudtrail-logs.md | 2 +- .../observability/data-set-quality-monitoring.md | 2 +- .../get-started/what-is-elastic-observability.md | 2 +- .../observability/logs/filter-aggregate-logs.md | 4 ++-- solutions/observability/logs/logs-explorer.md | 15 +++++++-------- 6 files changed, 13 insertions(+), 14 deletions(-) diff --git a/reference/observability/fields-and-object-schemas/logs-app-fields.md b/reference/observability/fields-and-object-schemas/logs-app-fields.md index 0686718704..079892b06e 100644 --- a/reference/observability/fields-and-object-schemas/logs-app-fields.md +++ b/reference/observability/fields-and-object-schemas/logs-app-fields.md @@ -6,7 +6,7 @@ mapped_pages: # Discover logs fields [logs-app-fields] -This section lists the required fields Discover uses to display log data. Please note that some of the fields listed are not [ECS fields](asciidocalypse://docs/ecs/docs/reference/index.md#_what_is_ecs). +This section lists the required fields Discover uses to display log data. Please note that some of the fields listed are not [ECS fields](ecs://reference/index.md#_what_is_ecs). `@timestamp` : Date/time when the event originated. diff --git a/solutions/observability/cloud/monitor-cloudtrail-logs.md b/solutions/observability/cloud/monitor-cloudtrail-logs.md index 48390302e2..94aec5c0c9 100644 --- a/solutions/observability/cloud/monitor-cloudtrail-logs.md +++ b/solutions/observability/cloud/monitor-cloudtrail-logs.md @@ -211,7 +211,7 @@ Navigate to {{kib}} and choose among the following monitoring options: * **Visualize your logs with Discover** - :::{image} ../../../images/observability-firehose-cloudtrail-logsexplorer.png + :::{image} ../../images/observability-firehose-cloudtrail-logsexplorer.png :alt: Visualize CloudTrail logs with Discover ::: diff --git a/solutions/observability/data-set-quality-monitoring.md b/solutions/observability/data-set-quality-monitoring.md index 76b8585812..28b3fed14f 100644 --- a/solutions/observability/data-set-quality-monitoring.md +++ b/solutions/observability/data-set-quality-monitoring.md @@ -55,7 +55,7 @@ To use Discover to find ignored fields in individual logs: 1. Find data sets with degraded documents using the **Degraded Docs** column of the data sets table. 2. Click the percentage in the **Degraded Docs** column to open the data set in Discover. -The **Documents** table in Discover is automatically filtered to show documents that were not parsed correctly. Under the **actions** column, you’ll find the degraded document icon (![degraded document icon](../../images/serverless-indexClose.svg "")). +The **Documents** table in Discover is automatically filtered to show documents that were not parsed correctly. Under the **actions** column, you’ll find the degraded document icon (![degraded document icon](../images/serverless-indexClose.svg "")). Now that you know which documents contain ignored fields, examine them more closely to find the origin of the issue: diff --git a/solutions/observability/get-started/what-is-elastic-observability.md b/solutions/observability/get-started/what-is-elastic-observability.md index bfa0967a2d..c994bd7d41 100644 --- a/solutions/observability/get-started/what-is-elastic-observability.md +++ b/solutions/observability/get-started/what-is-elastic-observability.md @@ -21,7 +21,7 @@ Analyze log data from your hosts, services, Kubernetes, Apache, and many more. In **Discover**, you can quickly search and filter your log data, get information about the structure of the fields, and display your findings in a visualization. -:::{image} ../../../images/serverless-log-explorer-overview.png +:::{image} ../../images/serverless-log-explorer-overview.png :alt: Discover showing log events :class: screenshot ::: diff --git a/solutions/observability/logs/filter-aggregate-logs.md b/solutions/observability/logs/filter-aggregate-logs.md index 909140a12e..e291969b49 100644 --- a/solutions/observability/logs/filter-aggregate-logs.md +++ b/solutions/observability/logs/filter-aggregate-logs.md @@ -110,8 +110,8 @@ For this example, let’s look for logs with a `WARN` or `ERROR` log level that ``` 1. Click the current time range, select **Absolute**, and set the **Start date** to `Sep 14, 2023 @ 00:00:00.000`. - ![Set the time range start date](../../../images/serverless-logs-start-date.png "") - + ![Set the time range start date](../../images/serverless-logs-start-date.png "") + 1. Click the end of the current time range, select **Absolute**, and set the **End date** to `Sep 15, 2023 @ 23:59:59.999`. ![Set the time range end date](/solutions/images/serverless-logs-end-date.png "") diff --git a/solutions/observability/logs/logs-explorer.md b/solutions/observability/logs/logs-explorer.md index e9c0f0a46c..ce0e9b45b0 100644 --- a/solutions/observability/logs/logs-explorer.md +++ b/solutions/observability/logs/logs-explorer.md @@ -13,12 +13,11 @@ From the `logs-*` or `All logs` data view in Discover, you can quickly search an To open **Discover**, find `Discover` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). Select the `logs-*` or `All logs` data view from the **Data view** menu. -:::{image} ../../../images/observability-log-explorer.png +:::{image} ../../images/observability-log-explorer.png :alt: Screen capture of Discover :class: screenshot ::: - ## Required {{kib}} privileges [logs-explorer-privileges] Viewing data in Discover logs data views requires `read` privileges for **Discover**, **Index**, **Logs**, and **Integrations**. For more on assigning {{kib}} privileges, refer to the [{{kib}} privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-privileges.md) docs. @@ -46,9 +45,9 @@ The actions column provides additional information about your logs. **Expand:** ![The icon to expand log details](/solutions/images/observability-expand-icon.png "") Open the log details to get an in-depth look at an individual log file. -**Degraded document indicator:** ![The icon that shows ignored fields](../../../images/observability-pagesSelect-icon.png "") This indicator shows if any of the document’s fields were ignored when it was indexed. Ignored fields could indicate malformed fields or other issues with your document. Use this information to investigate and determine why fields are being ignored. +**Degraded document indicator:** ![The icon that shows ignored fields](../../images/observability-pagesSelect-icon.png "") This indicator shows if any of the document’s fields were ignored when it was indexed. Ignored fields could indicate malformed fields or other issues with your document. Use this information to investigate and determine why fields are being ignored. -**Stacktrace indicator:** ![The icon that shows if a document contains stack traces](../../../images/observability-apmTrace-icon.png "") This indicator makes it easier to find documents that contain additional information in the form of stacktraces. +**Stacktrace indicator:** ![The icon that shows if a document contains stack traces](../../images/observability-apmTrace-icon.png "") This indicator makes it easier to find documents that contain additional information in the form of stacktraces. ## View log details [view-log-details] @@ -59,10 +58,10 @@ These details provide immediate feedback and context for what’s happening and The following actions help you filter and focus on specific fields in the log details: -* **Filter for value (![filter for value icon](../../../images/observability-plusInCircle.png "")):** Show logs that contain the specific field value. -* **Filter out value (![filter out value icon](../../../images/observability-minusInCircle.png "")):** Show logs that do **not** contain the specific field value. -* **Filter for field present (![filter for present icon](../../../images/observability-filter.png "")):** Show logs that contain the specific field. -* **Toggle column in table (![toggle column in table icon](../../../images/observability-listAdd.png "")):** Add or remove a column for the field to the main Discover table. +* **Filter for value (![filter for value icon](../../images/observability-plusInCircle.png "")):** Show logs that contain the specific field value. +* **Filter out value (![filter out value icon](../../images/observability-minusInCircle.png "")):** Show logs that do **not** contain the specific field value. +* **Filter for field present (![filter for present icon](../../images/observability-filter.png "")):** Show logs that contain the specific field. +* **Toggle column in table (![toggle column in table icon](../../images/observability-listAdd.png "")):** Add or remove a column for the field to the main Discover table. ## View log data set details [view-log-data-set-details] From 3df6235d60286cc1716bad0a72931b9f85fb10be Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Tue, 1 Apr 2025 15:15:39 -0500 Subject: [PATCH 10/17] delete raw files --- .../observability/logs-stream.md | 369 ------------------ 1 file changed, 369 deletions(-) delete mode 100644 raw-migrated-files/observability-docs/observability/logs-stream.md diff --git a/raw-migrated-files/observability-docs/observability/logs-stream.md b/raw-migrated-files/observability-docs/observability/logs-stream.md deleted file mode 100644 index 10c95f42b9..0000000000 --- a/raw-migrated-files/observability-docs/observability/logs-stream.md +++ /dev/null @@ -1,369 +0,0 @@ -# Stream any log file [logs-stream] - -This guide shows you how to manually configure a standalone {{agent}} to send your log data to {{es}} using the `elastic-agent.yml` file. - -If you don’t want to manually configure the {{agent}}, you can use the **Monitor hosts with {{agent}}** quickstart. Refer to the [quickstart documentation](../../../solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md) for more information. - -Continue with this guide for instructions on manual configuration. - - -## Prerequisites [logs-stream-prereq] - -To follow the steps in this guide, you need an {{stack}} deployment that includes: - -* {{es}} for storing and searching data -* {{kib}} for visualizing and managing data -* Kibana user with `All` privileges on {{fleet}} and Integrations. Since many Integrations assets are shared across spaces, users need the Kibana privileges in all spaces. -* Integrations Server (included by default in every {{ess}} deployment) - -To get started quickly, spin up a deployment of our hosted {{ess}}. The {{ess}} is available on AWS, GCP, and Azure. [Try it out for free](https://cloud.elastic.co/registration?page=docs&placement=docs-body). - - -## Install and configure the standalone {{agent}} [logs-stream-install-config-agent] - -Complete these steps to install and configure the standalone {{agent}} and send your log data to {{es}}: - -1. [Download and extract the {{agent}} installation package.](../../../solutions/observability/logs/stream-any-log-file.md#logs-stream-extract-agent) -2. [Install and start the {{agent}}.](../../../solutions/observability/logs/stream-any-log-file.md#logs-stream-install-agent) -3. [Configure the {{agent}}.](../../../solutions/observability/logs/stream-any-log-file.md#logs-stream-agent-config) - - -### Step 1: Download and extract the {{agent}} installation package [logs-stream-extract-agent] - -On your host, download and extract the installation package that corresponds with your system: - -:::::::{tab-set} - -::::::{tab-item} macOS -Version 9.0.0-beta1 of {{agent}} has not yet been released. -:::::: - -::::::{tab-item} Linux -Version 9.0.0-beta1 of {{agent}} has not yet been released. -:::::: - -::::::{tab-item} Windows -Version 9.0.0-beta1 of {{agent}} has not yet been released. -:::::: - -::::::{tab-item} DEB -Version 9.0.0-beta1 of {{agent}} has not yet been released. -:::::: - -::::::{tab-item} RPM -Version 9.0.0-beta1 of {{agent}} has not yet been released. -:::::: - -::::::: - -### Step 2: Install and start the {{agent}} [logs-stream-install-agent] - -After downloading and extracting the installation package, you’re ready to install the {{agent}}. From the agent directory, run the install command that corresponds with your system: - -::::{note} -On macOS, Linux (tar package), and Windows, run the `install` command to install and start {{agent}} as a managed service and start the service. The DEB and RPM packages include a service unit for Linux systems with systemd, For these systems, you must enable and start the service. -:::: - - -:::::::{tab-set} - -::::::{tab-item} macOS -::::{tip} -You must run this command as the root user because some integrations require root privileges to collect sensitive data. -:::: - - -```shell -sudo ./elastic-agent install -``` -:::::: - -::::::{tab-item} Linux -::::{tip} -You must run this command as the root user because some integrations require root privileges to collect sensitive data. -:::: - - -```shell -sudo ./elastic-agent install -``` -:::::: - -::::::{tab-item} Windows -Open a PowerShell prompt as an Administrator (right-click the PowerShell icon and select **Run As Administrator**). - -From the PowerShell prompt, change to the directory where you installed {{agent}}, and run: - -```shell -.\elastic-agent.exe install -``` -:::::: - -::::::{tab-item} DEB -::::{tip} -You must run this command as the root user because some integrations require root privileges to collect sensitive data. -:::: - - -```shell -sudo systemctl enable elastic-agent <1> -sudo systemctl start elastic-agent -``` - -1. The DEB package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. If you don’t have systemd, run `sudo service elastic-agent start`. -:::::: - -::::::{tab-item} RPM -::::{tip} -You must run this command as the root user because some integrations require root privileges to collect sensitive data. -:::: - - -```shell -sudo systemctl enable elastic-agent <1> -sudo systemctl start elastic-agent -``` - -1. The RPM package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. If you don’t have systemd, run `sudo service elastic-agent start`. -:::::: - -::::::: -During installation, you’re prompted with some questions: - -1. When asked if you want to install the agent as a service, enter `Y`. -2. When asked if you want to enroll the agent in Fleet, enter `n`. - - -### Step 3: Configure the {{agent}} [logs-stream-agent-config] - -With your agent installed, configure it by updating the `elastic-agent.yml` file. - - -#### Locate your configuration file [logs-stream-yml-location] - -After installing the agent, you’ll find the `elastic-agent.yml` in one of the following locations according to your system: - -:::::::{tab-set} - -::::::{tab-item} macOS -Main {{agent}} configuration file location: - -`/Library/Elastic/Agent/elastic-agent.yml` -:::::: - -::::::{tab-item} Linux -Main {{agent}} configuration file location: - -`/opt/Elastic/Agent/elastic-agent.yml` -:::::: - -::::::{tab-item} Windows -Main {{agent}} configuration file location: - -`C:\Program Files\Elastic\Agent\elastic-agent.yml` -:::::: - -::::::{tab-item} DEB -Main {{agent}} configuration file location: - -`/etc/elastic-agent/elastic-agent.yml` -:::::: - -::::::{tab-item} RPM -Main {{agent}} configuration file location: - -`/etc/elastic-agent/elastic-agent.yml` -:::::: - -::::::: - -#### Update your configuration file [logs-stream-example-config] - -The following is an example of a standalone {{agent}} configuration. To configure your {{agent}}, replace the contents of the `elastic-agent.yml` file with this configuration: - -```yaml -outputs: - default: - type: elasticsearch - hosts: ':' - api_key: 'your-api-key' -inputs: - - id: your-log-id - type: filestream - streams: - - id: your-log-stream-id - data_stream: - dataset: example - paths: - - /var/log/your-logs.log -``` - -Next, set the values for these fields: - -* `hosts` – Copy the {{es}} endpoint from **Help menu (![help icon](../../../images/observability-help-icon.png "")) → Connection details**. For example, `https://my-deployment.es.us-central1.gcp.cloud.es.io:443`. -* `api-key` – Use an API key to grant the agent access to {{es}}. To create an API key for your agent, refer to the [Create API keys for standalone agents](asciidocalypse://docs/docs-content/docs/reference/ingestion-tools/fleet/grant-access-to-elasticsearch.md#create-api-key-standalone-agent) documentation. - - ::::{note} - The API key format should be `:`. Make sure you selected **Beats** when you created your API key. Base64 encoded API keys are not currently supported in this configuration. - :::: - -* `inputs.id` – A unique identifier for your input. -* `type` – The type of input. For collecting logs, set this to `filestream`. -* `streams.id` – A unique identifier for your stream of log data. -* `data_stream.dataset` – The name for your dataset data stream. Name this data stream anything that signifies the source of the data. In this configuration, the dataset is set to `example`. The default value is `generic`. -* `paths` – The path to your log files. You can also use a pattern like `/var/log/your-logs.log*`. - - -#### Restart the {{agent}} [logs-stream-restart-agent] - -After updating your configuration file, you need to restart the {{agent}}: - -First, stop the {{agent}} and its related executables using the command that works with your system: - -:::::::{tab-set} - -::::::{tab-item} macOS -```shell -sudo launchctl unload /Library/LaunchDaemons/co.elastic.elastic-agent.plist -``` - -::::{note} -{{agent}} will restart automatically if the system is rebooted. -:::: -:::::: - -::::::{tab-item} Linux -```shell -sudo service elastic-agent stop -``` - -::::{note} -{{agent}} will restart automatically if the system is rebooted. -:::: -:::::: - -::::::{tab-item} Windows -```shell -Stop-Service Elastic Agent -``` - -If necessary, use Task Manager on Windows to stop {{agent}}. This will kill the `elastic-agent` process and any sub-processes it created (such as {{beats}}). - -::::{note} -{{agent}} will restart automatically if the system is rebooted. -:::: -:::::: - -::::::{tab-item} DEB -The DEB package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. - -Use `systemctl` to stop the agent: - -```shell -sudo systemctl stop elastic-agent -``` - -Otherwise, use: - -```shell -sudo service elastic-agent stop -``` - -::::{note} -{{agent}} will restart automatically if the system is rebooted. -:::: -:::::: - -::::::{tab-item} RPM -The RPM package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. - -Use `systemctl` to stop the agent: - -```shell -sudo systemctl stop elastic-agent -``` - -Otherwise, use: - -```shell -sudo service elastic-agent stop -``` - -::::{note} -{{agent}} will restart automatically if the system is rebooted. -:::: -:::::: - -::::::: -Next, restart the {{agent}} using the command that works with your system: - -:::::::{tab-set} - -::::::{tab-item} macOS -```shell -sudo launchctl load /Library/LaunchDaemons/co.elastic.elastic-agent.plist -``` -:::::: - -::::::{tab-item} Linux -```shell -sudo service elastic-agent start -``` -:::::: - -::::::{tab-item} Windows -```shell -Start-Service Elastic Agent -``` -:::::: - -::::::{tab-item} DEB -The DEB package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. - -Use `systemctl` to start the agent: - -```shell -sudo systemctl start elastic-agent -``` - -Otherwise, use: - -```shell -sudo service elastic-agent start -``` -:::::: - -::::::{tab-item} RPM -The RPM package includes a service unit for Linux systems with systemd. On these systems, you can manage {{agent}} by using the usual systemd commands. - -Use `systemctl` to start the agent: - -```shell -sudo systemctl start elastic-agent -``` - -Otherwise, use: - -```shell -sudo service elastic-agent start -``` -:::::: - -::::::: - -## Troubleshoot your {{agent}} configuration [logs-stream-troubleshooting] - -If you’re not seeing your log files in {{kib}}, verify the following in the `elastic-agent.yml` file: - -* The path to your logs file under `paths` is correct. -* Your API key is in `:` format. If not, your API key may be in an unsupported format, and you’ll need to create an API key in **Beats** format. - -If you’re still running into issues, see [{{agent}} troubleshooting](../../../troubleshoot/ingest/fleet/common-problems.md) and [Configure standalone Elastic Agents](asciidocalypse://docs/docs-content/docs/reference/ingestion-tools/fleet/configure-standalone-elastic-agents.md). - - -## Next steps [logs-stream-next-steps] - -After you have your agent configured and are streaming log data to {{es}}: - -* Refer to the [Parse and organize logs](../../../solutions/observability/logs/parse-route-logs.md) documentation for information on extracting structured fields from your log data, rerouting your logs to different data streams, and filtering and aggregating your log data. -* Refer to the [Filter and aggregate logs](../../../solutions/observability/logs/filter-aggregate-logs.md) documentation for information on filtering and aggregating your log data to find specific information, gain insight, and monitor your systems more efficiently. From 8dd138c8640c651cadb3d20c6532a3fef269caf9 Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Tue, 1 Apr 2025 16:13:41 -0500 Subject: [PATCH 11/17] remove logs app files --- .../logs/configure-data-sources.md | 61 ----------------- solutions/observability/logs/logs-stream.md | 68 ------------------- solutions/toc.yml | 2 - 3 files changed, 131 deletions(-) delete mode 100644 solutions/observability/logs/configure-data-sources.md delete mode 100644 solutions/observability/logs/logs-stream.md diff --git a/solutions/observability/logs/configure-data-sources.md b/solutions/observability/logs/configure-data-sources.md deleted file mode 100644 index f334fce419..0000000000 --- a/solutions/observability/logs/configure-data-sources.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/configure-data-sources.html -applies_to: - stack: all ---- - -# Configure data sources [configure-data-sources] - -::::{Note} - -**There’s a new, better way to explore your logs!** - -These settings only apply to the Logs Stream app. The Logs Stream app and dashboard panel are deactivated by default. We recommend viewing and inspecting your logs with [Discover](logs-explorer.md) as it provides more features, better performance, and more intuitive navigation. - -To activate the Logs Stream app, refer to [Activate Logs Stream](logs-stream.md#activate-logs-stream). - -:::: - - -Specify the source configuration for logs in the [Logs settings](kibana://reference/configuration-reference/logs-settings.md) in the [{{kib}} configuration file](kibana://reference/configuration-reference/general-settings.md). By default, the configuration uses the index patterns stored in the {{kib}} log sources advanced setting to query the data. The configuration also defines the default columns displayed in the logs stream. - -If your logs have custom index patterns, use non-default field settings, or contain parsed fields that you want to expose as individual columns, you can override the default configuration settings. - - -## Edit configuration settings [edit-config-settings] - -1. Find `Logs / Settings` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). - - | | | - | --- | --- | - | **Name** | Name of the source configuration. | - | **{{kib}} log sources advanced setting** | Use index patterns stored in the {{kib}} **log sources** advanced setting, which provides a centralized place to store and query log index patterns.To open **Advanced settings**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). | - | **{{data-source-cap}} (deprecated)** | The Logs UI integrates with {{data-sources}} toconfigure the used indices by clicking **Use {{data-sources}}**. | - | **Log indices (deprecated)** | {{kib}} index patterns or index name patterns in the {{es}} indicesto read log data from. | - | **Log columns** | Columns that are displayed in the logs **Stream** page. | - -2. When you have completed your changes, click **Apply**. - - -## Customize Stream page [customize-stream-page] - -::::{tip} -If [Spaces](../../../deploy-manage/manage-spaces.md) are enabled in your {{kib}} instance, any configuration changes you make here are specific to the current space. You can make different subsets of data available by creating multiple spaces with other data source configurations. - -:::: - - -By default, the **Stream** page within the {{logs-app}} displays the following columns. - -| | | -| --- | --- | -| **Timestamp** | The timestamp of the log entry from the `timestamp` field. | -| **Message** | The message extracted from the document.The content of this field depends on the type of log message.If no special log message type is detected, the [Elastic Common Schema (ECS)](ecs://reference/ecs-base.md)base field, `message`, is used. | - -1. To add a new column to the logs stream, select **Settings > Add column**. -2. In the list of available fields, select the field you want to add. To filter the field list by that name, you can start typing a field name in the search box. -3. To remove an existing column, click the **Remove this column** icon. -4. When you have completed your changes, click **Apply**. - -If the fields are grayed out and cannot be edited, you may not have sufficient privileges to modify the source configuration. For more information, see [Granting access to {{kib}}](../../../deploy-manage/users-roles/cluster-or-deployment-auth/built-in-roles.md). diff --git a/solutions/observability/logs/logs-stream.md b/solutions/observability/logs/logs-stream.md deleted file mode 100644 index 17c98136c7..0000000000 --- a/solutions/observability/logs/logs-stream.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/tail-logs.html ---- - -# Logs Stream [tail-logs] - -::::{note} -**There’s a new, better way to explore your logs!** - -The Logs Stream app and dashboard panel are deactivated by default. We recommend viewing and inspecting your logs with [Logs Explorer](logs-explorer.md) as it provides more features, better performance, and more intuitive navigation. - -To activate the Logs Stream app, refer to [Activate Logs Stream](#activate-logs-stream). - -:::: - - -Within the {{logs-app}}, the **Stream** page enables you to monitor all of the log events flowing in from your servers, virtual machines, and containers in a centralized view. You can consider this as a `tail -f` in your browser, along with the power of search. - -Click **Stream Live** to view a continuous flow of log messages in real time, or click **Stop streaming** to view historical logs from a specified time range. - - -## Activate Logs Stream [activate-logs-stream] - -Because [Logs Explorer](logs-explorer.md) is replacing Logs Stream, Logs Stream and the Logs Stream dashboard panel are disabled by default. To activate Logs Stream and the Logs Stream dashboard panel complete the following steps: - -1. To open **Advanced Settings**, find **Stack Management** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). -2. In **Advanced Settings**, enter *Logs Stream* in the search bar. -3. Turn on **Logs Stream**. - -After saving your settings, you’ll see Logs Stream in the Observability navigation, and the Logs Stream dashboard panel will be available. - - -## Filter logs [filter-logs] - -To help you get started with your analysis faster and extract fields from your logs, use the search bar to create structured queries using [{{kib}} Query Language](../../../explore-analyze/query-filter/languages/kql.md). For example, enter `host.hostname : "host1"` to see only the information for `host1`. - -Additionally, click **Highlights** and enter a term you would like to locate within the log events. The Logs histogram, located to the right, highlights the number of discovered terms and when the log event was ingested. This helps you quickly jump between potential areas of interest in large amounts of logs, or from a high level, view when a large number of events occurred. - - -## Inspect log event details [inspect-log-event] - -When you have searched and filtered your logs for a specific log event, you may want to examine the metadata and the structured fields associated with that event. To view the **Log event document details** fly-out, hover over the log event, click **View actions for line**, and then select **View details**. To further enhance the workflow of monitoring logs, the icons next to each field value enable you to filter the logs per that value. - -:::{image} /solutions/images/observability-log-event-details.png -:alt: Log event details -:class: screenshot -::: - - -## View contextual logs [view-contextual-logs] - -Once your logs are filtered, and you find an interesting log line, the real context you are looking for is what happened before and after that log line within that data source. For example, you are running containerized applications on a Kubernetes cluster, you filter the logs for the term `error`, and you find an interesting error log line. The context you want is what happened before and after the error line within the logs of this container and application. - -Hover over the log event, click **View actions for line**, and then select **View in context**. The context is preserved and helps you find the root cause as soon as possible. - -:::{image} /solutions/images/observability-contextual-logs.png -:alt: Contextual log event -:class: screenshot -::: - - -## Integrate with Uptime and APM [uptime-apm-integration] - -To see other actions related to a log event, click **Actions** in the **Log event document details** fly-out. Depending on the event and the features you have configured, you can: - -* Select **View status in Uptime** to [view related uptime information](../apps/view-monitor-status.md) in the {{uptime-app}}. -* Select **View in APM** to [view corresponding APM traces](../apps/traces-2.md) in the Applications UI. diff --git a/solutions/toc.yml b/solutions/toc.yml index 80cf5d3f2f..18ca998803 100644 --- a/solutions/toc.yml +++ b/solutions/toc.yml @@ -400,8 +400,6 @@ toc: - file: observability/logs/logs-explorer.md - file: observability/logs/categorize-log-entries.md - file: observability/logs/inspect-log-anomalies.md - - file: observability/logs/configure-data-sources.md - - file: observability/logs/logs-stream.md - file: observability/logs/run-pattern-analysis-on-log-data.md - file: observability/logs/add-service-name-to-logs.md - file: observability/logs/logs-index-template-reference.md From a84aef705152d2d3db54367797ed61bb35a929da Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Tue, 1 Apr 2025 16:30:28 -0500 Subject: [PATCH 12/17] change references to log sources --- reference/fleet/monitor-elastic-agent.md | 1 - .../incident-management/create-log-threshold-rule.md | 2 +- solutions/observability/infra-and-hosts/configure-settings.md | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/reference/fleet/monitor-elastic-agent.md b/reference/fleet/monitor-elastic-agent.md index 4d853fa0b5..7c151defe5 100644 --- a/reference/fleet/monitor-elastic-agent.md +++ b/reference/fleet/monitor-elastic-agent.md @@ -135,7 +135,6 @@ On the **Logs** tab you can filter, search, and explore the agent logs: * Change the log level to filter the view by log levels. Want to see debugging logs? Refer to [Change the logging level](#change-logging-level). * Change the time range to view historical logs. -* Click **Open in Logs** to tail agent log files in real time. For more information about logging, refer to [Tail log files](/solutions/observability/logs/logs-stream.md). ## Change the logging level [change-logging-level] diff --git a/solutions/observability/incident-management/create-log-threshold-rule.md b/solutions/observability/incident-management/create-log-threshold-rule.md index 29dae6932d..8592669269 100644 --- a/solutions/observability/incident-management/create-log-threshold-rule.md +++ b/solutions/observability/incident-management/create-log-threshold-rule.md @@ -332,7 +332,7 @@ When a rule check is performed, a query is built based on the configuration of t ## Settings [settings] -With log threshold rules, it’s not possible to set an explicit index pattern as part of the configuration. The index pattern is instead inferred from **Log indices** on the [Settings](../logs/configure-data-sources.md) page of the {{logs-app}}. +With log threshold rules, it’s not possible to set an explicit index pattern as part of the configuration. The index pattern is instead inferred from **Log sources** at **Stack Management** → **Advanced settings** under **Observability**. With each execution of the rule check, the **Log indices** setting is checked, but it is not stored when the rule is created. diff --git a/solutions/observability/infra-and-hosts/configure-settings.md b/solutions/observability/infra-and-hosts/configure-settings.md index 84efe64fd9..b23fc82265 100644 --- a/solutions/observability/infra-and-hosts/configure-settings.md +++ b/solutions/observability/infra-and-hosts/configure-settings.md @@ -25,7 +25,7 @@ From the main menu, go to **Infrastructure** → **Infrastructure inventory** or Click **Apply** to save your changes. ::::{note} -The patterns used to match log sources are configured in the Logs app. The default setting is `logs-*,filebeat-*,kibana_sample_data_logs*`. To change the default, refer to [Configure data sources](../../../solutions/observability/logs/configure-data-sources.md). +The patterns used to match log sources are configured in the Logs app. The default setting is `logs-*,filebeat-*,kibana_sample_data_logs*`. To change the default, go to **Log sources** at **Stack Management** → **Advanced settings** under **Observability**. :::: From 9ad3dc0aa853857a74916ae24b51f883a8685501 Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Wed, 2 Apr 2025 13:17:27 -0500 Subject: [PATCH 13/17] remove logs explorer mentions --- .../monitor-microsoft-azure-with-azure-native-isv-service.md | 4 ++-- .../observability/cloud/monitor-microsoft-azure-with-beats.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/solutions/observability/cloud/monitor-microsoft-azure-with-azure-native-isv-service.md b/solutions/observability/cloud/monitor-microsoft-azure-with-azure-native-isv-service.md index 9c40cd942d..9b5eef3c4c 100644 --- a/solutions/observability/cloud/monitor-microsoft-azure-with-azure-native-isv-service.md +++ b/solutions/observability/cloud/monitor-microsoft-azure-with-azure-native-isv-service.md @@ -98,7 +98,7 @@ To ingest Azure subscription and resource logs into Elastic, you use the Azure N :::: 3. In {{kib}}, under **{{observability}}**, find **Overview** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). Refresh the page until you see some data. This may take a few minutes. -4. To analyze your subscription and resource logs, click **Show Logs Explorer**. +4. To analyze your subscription and resource logs, click **Show Logs**. ## Step 3: Ingest logs and metrics from your virtual machines (VMs) [azure-ingest-VM-logs-metrics] @@ -112,7 +112,7 @@ To ingest Azure subscription and resource logs into Elastic, you use the Azure N ::: 3. Wait until the extension is installed and sending data (if the list does not update, click **Refresh** ). -4. Back in {{kib}}, view the **Logs Explorer** again. Notice that you can filter the view to show logs for a specific instance, for example `cloud.instance.name : "ingest-tutorial-linux"`. +4. Back in {{kib}}, view the **Discover** again. Notice that you can filter the view to show logs for a specific instance, for example `cloud.instance.name : "ingest-tutorial-linux"`. 5. To view VM metrics, go to **Infrastructure inventory** and then select a VM. (To open **Infrastructure inventory**, find **Infrastructure** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md).) To explore the data further, click **Open as page**. diff --git a/solutions/observability/cloud/monitor-microsoft-azure-with-beats.md b/solutions/observability/cloud/monitor-microsoft-azure-with-beats.md index 4e8d40c27d..8afc45fad4 100644 --- a/solutions/observability/cloud/monitor-microsoft-azure-with-beats.md +++ b/solutions/observability/cloud/monitor-microsoft-azure-with-beats.md @@ -91,7 +91,7 @@ To ingest Azure subscription and resource logs into Elastic using the Microsoft :::: 3. In {{kib}}, find the {{observability}} **Overview** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). Refresh the page until you see some data. This may take a few minutes. -4. To analyze your subscription and resource logs, click **Show Logs Explorer**. +4. To analyze your subscription and resource logs, click **Show Logs**. ## Step 3: Ingest logs and metrics from your virtual machines. [azure-step-three] @@ -104,7 +104,7 @@ To ingest Azure subscription and resource logs into Elastic using the Microsoft ![Select VMs to collect logs and metrics from](/solutions/images/observability-monitor-azure-elastic-vms.png "") -3. Wait until it is installed and sending data (if the list does not update, click **Refresh** ). To see the logs from the VM, open **Logs Explorer** (find `Logs Explorer` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md)). +3. Wait until it is installed and sending data (if the list does not update, click **Refresh** ). To see the logs from the VM, open **Discover** (find `Discover` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md)). To view VM metrics, go to **Infrastructure inventory** and then select a VM. (To open **Infrastructure inventory**, find **Infrastructure** in the main menu or use the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md).) From c4202bcca27ec9d799977abbc2b5bdad8987493e Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Wed, 2 Apr 2025 16:46:25 -0500 Subject: [PATCH 14/17] review updates --- solutions/observability/cloud/monitor-cloudtrail-logs.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/solutions/observability/cloud/monitor-cloudtrail-logs.md b/solutions/observability/cloud/monitor-cloudtrail-logs.md index 94aec5c0c9..a05745aeaf 100644 --- a/solutions/observability/cloud/monitor-cloudtrail-logs.md +++ b/solutions/observability/cloud/monitor-cloudtrail-logs.md @@ -209,12 +209,6 @@ Navigate to {{kib}} and choose among the following monitoring options: :alt: Visualize CloudTrail logs with Disocver ::: -* **Visualize your logs with Discover** - - :::{image} ../../images/observability-firehose-cloudtrail-logsexplorer.png - :alt: Visualize CloudTrail logs with Discover - - ::: * **Visualize your logs with the CloudTrail Dashboard** From 74fb40a2cbac2557f6b90a284bf7a5ceaf037bc0 Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Fri, 4 Apr 2025 11:09:55 -0500 Subject: [PATCH 15/17] review updates --- solutions/images/logs-discover.png | Bin 0 -> 213513 bytes solutions/observability.md | 2 +- ...ckstart-monitor-hosts-with-elastic-agent.md | 2 +- ...ckstart-monitor-hosts-with-opentelemetry.md | 2 +- .../what-is-elastic-observability.md | 2 +- .../infra-and-hosts/configure-settings.md | 2 +- .../tutorial-observe-kubernetes-deployments.md | 2 +- solutions/observability/logs.md | 4 ++-- .../{logs-explorer.md => discover-logs.md} | 6 +++++- solutions/observability/logs/explore-logs.md | 2 +- .../logs/plaintext-application-logs.md | 2 +- solutions/toc.yml | 2 +- 12 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 solutions/images/logs-discover.png rename solutions/observability/logs/{logs-explorer.md => discover-logs.md} (92%) diff --git a/solutions/images/logs-discover.png b/solutions/images/logs-discover.png new file mode 100644 index 0000000000000000000000000000000000000000..bc766e9d634bae51c11b358b7384936fca5c9d6d GIT binary patch literal 213513 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

*1|^JGhy42M0q6vqo#A0^qlhFzYiy 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�-NqcK1h&=KtT?xoJ;%gqG&o1HdF`Z#e}Lt; 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�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 literal 0 HcmV?d00001 diff --git a/solutions/observability.md b/solutions/observability.md index a02d5a7d59..6fd686fcb5 100644 --- a/solutions/observability.md +++ b/solutions/observability.md @@ -25,7 +25,7 @@ applies_to: ## How to [_how_to] -* [**Explore log data**](observability/logs/logs-explorer.md): Use Discover to explore your log data. +* [**Explore log data**](observability/logs/discover-logs.md): Use Discover to explore your log data. * [**Trigger alerts and triage problems**](../solutions/observability/incident-management/create-manage-rules.md): Create rules to detect complex conditions and trigger alerts. * [**Track and deliver on your SLOs**](observability/incident-management/service-level-objectives-slos.md): Measure key metrics important to the business. * [**Detect anomalies and spikes**](../explore-analyze/machine-learning/anomaly-detection.md): Find unusual behavior in time series data. diff --git a/solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md b/solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md index 450e8dc653..7e59384014 100644 --- a/solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md +++ b/solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md @@ -160,7 +160,7 @@ For host monitoring, the following capabilities and features are recommended: * [Detect anomalies](../../../solutions/observability/infra-and-hosts/detect-metric-anomalies.md) for memory usage and network traffic on hosts. * [Create alerts](../../../solutions/observability/incident-management/alerting.md) that notify you when an anomaly is detected or a metric exceeds a given value. -* In [Discover](../../../solutions/observability/logs/logs-explorer.md), search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. You can also: +* In [Discover](../../../solutions/observability/logs/discover-logs.md), search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. You can also: * [Monitor log data set quality](../../../solutions/observability/data-set-quality-monitoring.md) to find degraded documents. * [Run a pattern analysis](../../../explore-analyze/machine-learning/machine-learning-in-kibana/xpack-ml-aiops.md#log-pattern-analysis) to find patterns in unstructured log messages. diff --git a/solutions/observability/get-started/quickstart-monitor-hosts-with-opentelemetry.md b/solutions/observability/get-started/quickstart-monitor-hosts-with-opentelemetry.md index c2a9c3a62e..5c968affbe 100644 --- a/solutions/observability/get-started/quickstart-monitor-hosts-with-opentelemetry.md +++ b/solutions/observability/get-started/quickstart-monitor-hosts-with-opentelemetry.md @@ -130,7 +130,7 @@ After using the Hosts page and Discover to confirm you’ve ingested all the hos * [Detect anomalies](../../../solutions/observability/infra-and-hosts/detect-metric-anomalies.md) for memory usage and network traffic on hosts. * [Create alerts](../../../solutions/observability/incident-management/create-manage-rules.md) that notify you when an anomaly is detected or a metric exceeds a given value. -* In [Discover](../../../solutions/observability/logs/logs-explorer.md), search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. You can also: +* In [Discover](../../../solutions/observability/logs/discover-logs.md), search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. You can also: * [Monitor log data set quality](../../../solutions/observability/data-set-quality-monitoring.md) to find degraded documents. * [Run a pattern analysis](../../../explore-analyze/machine-learning/machine-learning-in-kibana/xpack-ml-aiops.md#log-pattern-analysis) to find patterns in unstructured log messages. diff --git a/solutions/observability/get-started/what-is-elastic-observability.md b/solutions/observability/get-started/what-is-elastic-observability.md index 7fbcb10c3f..d3ca45dd52 100644 --- a/solutions/observability/get-started/what-is-elastic-observability.md +++ b/solutions/observability/get-started/what-is-elastic-observability.md @@ -21,7 +21,7 @@ Analyze log data from your hosts, services, Kubernetes, Apache, and many more. In **Discover**, you can quickly search and filter your log data, get information about the structure of the fields, and display your findings in a visualization. -:::{image} ../../images/serverless-log-explorer-overview.png +:::{image} ../../images/logs-discover.png :alt: Discover showing log events :class: screenshot ::: diff --git a/solutions/observability/infra-and-hosts/configure-settings.md b/solutions/observability/infra-and-hosts/configure-settings.md index 2d1a5ce203..55fe61038f 100644 --- a/solutions/observability/infra-and-hosts/configure-settings.md +++ b/solutions/observability/infra-and-hosts/configure-settings.md @@ -25,7 +25,7 @@ From the main menu, go to **Infrastructure** → **Infrastructure inventory** or Click **Apply** to save your changes. ::::{note} -The patterns used to match log sources are configured in the Logs app. The default setting is `logs-*,filebeat-*,kibana_sample_data_logs*`. To change the default, go to **Log sources** at **Stack Management** → **Advanced settings** under **Observability**. +The patterns used to match log sources are configured in {{kib}} advanced settings. The default setting is `logs-*-*,logs-*,filebeat-*`. To change the default, go to **Log sources** at **Stack Management** → **Advanced settings** under **Observability**. :::: diff --git a/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md b/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md index 107f44bf1d..d7e993ec3b 100644 --- a/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md +++ b/solutions/observability/infra-and-hosts/tutorial-observe-kubernetes-deployments.md @@ -523,7 +523,7 @@ Find `Discover` in the [global search field](/explore-analyze/find-and-organize/ From the **Data view** menu, select `All logs`. From here, you can quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. Then, you can filter your log data and dive deeper into individual logs to find and troubleshoot issues. For more information, refer to: -* [Explore logs in Discover](../logs/logs-explorer.md) for an overview of viewing your logs in Discover. +* [Explore logs in Discover](../logs/discover-logs.md) for an overview of viewing your logs in Discover. * [Filter logs in Discover](../logs/filter-aggregate-logs.md#logs-filter-discover) for more on filtering logs in Discover. diff --git a/solutions/observability/logs.md b/solutions/observability/logs.md index 869c356c77..52acfec0f1 100644 --- a/solutions/observability/logs.md +++ b/solutions/observability/logs.md @@ -14,7 +14,7 @@ Elastic Observability allows you to deploy and manage logs at a petabyte scale, * [Stream any log file](../../solutions/observability/logs/stream-any-log-file.md): Send log files to your Observability project using a standalone {{agent}}. * [Parse and route logs](../../solutions/observability/logs/parse-route-logs.md): Parse your log data and extract structured fields that you can use to analyze your data. * [Filter and aggregate logs](../../solutions/observability/logs/filter-aggregate-logs.md#logs-filter): Filter and aggregate your log data to find specific information, gain insight, and monitor your systems more efficiently. -* [Explore logs](../../solutions/observability/logs/logs-explorer.md): Find information on visualizing and analyzing logs. +* [Explore logs](../../solutions/observability/logs/discover-logs.md): Find information on visualizing and analyzing logs. * [Run pattern analysis on log data](../../solutions/observability/logs/run-pattern-analysis-on-log-data.md): Find patterns in unstructured log messages and make it easier to examine your data. * [Troubleshoot logs](../../troubleshoot/observability/troubleshoot-logs.md): Find solutions for errors you might encounter while onboarding your logs. @@ -81,7 +81,7 @@ Use **Discover** to search, filter, and tail all your logs ingested into your pr The following resources provide information on viewing and monitoring your logs: -* [Discover and explore](../../solutions/observability/logs/logs-explorer.md): Discover and explore all of the log events flowing in from your servers, virtual machines, and containers in a centralized view. +* [Discover and explore](../../solutions/observability/logs/discover-logs.md): Discover and explore all of the log events flowing in from your servers, virtual machines, and containers in a centralized view. * [Detect log anomalies](../../explore-analyze/machine-learning/anomaly-detection.md): Use {{ml}} to detect log anomalies automatically. diff --git a/solutions/observability/logs/logs-explorer.md b/solutions/observability/logs/discover-logs.md similarity index 92% rename from solutions/observability/logs/logs-explorer.md rename to solutions/observability/logs/discover-logs.md index b291e48c33..1b3e848b61 100644 --- a/solutions/observability/logs/logs-explorer.md +++ b/solutions/observability/logs/discover-logs.md @@ -13,6 +13,10 @@ From the `logs-*` or `All logs` data view in Discover, you can quickly search an To open **Discover**, find `Discover` in the [global search field](/explore-analyze/find-and-organize/find-apps-and-objects.md). Select the `logs-*` or `All logs` data view from the **Data view** menu. +:::{note} +For a contextual logs experience, set the **Solution view** for your space to **Observability**. Refer to [Managing spaces](../../../deploy-manage/manage-spaces.md) for more information. +::: + :::{image} ../../images/observability-log-explorer.png :alt: Screen capture of Discover :class: screenshot @@ -20,7 +24,7 @@ To open **Discover**, find `Discover` in the [global search field](/explore-anal ## Required {{kib}} privileges [logs-explorer-privileges] -Viewing data in Discover logs data views requires `read` privileges for **Discover**, **Index**, **Logs**, and **Integrations**. For more on assigning {{kib}} privileges, refer to the [{{kib}} privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-privileges.md) docs. +Viewing data in Discover logs data views requires `read` privileges for **Discover**, **Index**, and **Logs**. For more on assigning {{kib}} privileges, refer to the [{{kib}} privileges](../../../deploy-manage/users-roles/cluster-or-deployment-auth/kibana-privileges.md) docs. ## Find your logs [find-your-logs] diff --git a/solutions/observability/logs/explore-logs.md b/solutions/observability/logs/explore-logs.md index 1062e4158f..b6cd9a768a 100644 --- a/solutions/observability/logs/explore-logs.md +++ b/solutions/observability/logs/explore-logs.md @@ -7,6 +7,6 @@ mapped_pages: From Discover in {{kib}} or your Observability Serverless project, you can search, filter, and tail all your logs ingested into {{es}}. Instead of having to log into different servers, change directories, and tail individual files, all your logs are available in Discover. -Discover allows you to quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. Refer to [Explore logs in Discover](logs-explorer.md) for more. +Discover allows you to quickly search and filter your log data, get information about the structure of log fields, and display your findings in a visualization. Refer to [Explore logs in Discover](discover-logs.md) for more. Elastic also provides {{ml}} to detect specific [log anomalies](inspect-log-anomalies.md) automatically and [categorize log messages](categorize-log-entries.md) to quickly identify patterns in your log events. \ No newline at end of file diff --git a/solutions/observability/logs/plaintext-application-logs.md b/solutions/observability/logs/plaintext-application-logs.md index 0d21e68d73..e37bf39277 100644 --- a/solutions/observability/logs/plaintext-application-logs.md +++ b/solutions/observability/logs/plaintext-application-logs.md @@ -351,4 +351,4 @@ Learn about correlating plaintext logs in the agent-specific ingestion guides: ## View logs [view-plaintext-logs] -To view logs ingested by {{filebeat}}, go to **Discover** from the main menu and create a data view based on the `filebeat-*` index pattern. Refer to [Create a data view](../../../explore-analyze/find-and-organize/data-views.md) for more information. \ No newline at end of file +To view logs ingested by {{filebeat}}, go to **Discover** from the main menu and create a data view based on the `filebeat-*` index pattern. You can also select **All logs** from the **Data views** menu as it includes the `filebeat-*` index pattern by default. Refer to [Create a data view](../../../explore-analyze/find-and-organize/data-views.md) for more information. \ No newline at end of file diff --git a/solutions/toc.yml b/solutions/toc.yml index 880293fe23..4a4e54ce7b 100644 --- a/solutions/toc.yml +++ b/solutions/toc.yml @@ -398,7 +398,7 @@ toc: - file: observability/logs/filter-aggregate-logs.md - file: observability/logs/explore-logs.md children: - - file: observability/logs/logs-explorer.md + - file: observability/logs/discover-logs.md - file: observability/logs/categorize-log-entries.md - file: observability/logs/inspect-log-anomalies.md - file: observability/logs/run-pattern-analysis-on-log-data.md From 7c555094596e40351c0133cca48453227e8b356c Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Mon, 7 Apr 2025 08:30:20 -0500 Subject: [PATCH 16/17] remove log explorer fields docs --- .../fields-and-object-schemas.md | 9 +- .../logs-app-fields.md | 128 ------------------ reference/observability/toc.yml | 1 - 3 files changed, 3 insertions(+), 135 deletions(-) delete mode 100644 reference/observability/fields-and-object-schemas/logs-app-fields.md diff --git a/reference/observability/fields-and-object-schemas.md b/reference/observability/fields-and-object-schemas.md index c1ee6751f0..0979952696 100644 --- a/reference/observability/fields-and-object-schemas.md +++ b/reference/observability/fields-and-object-schemas.md @@ -5,16 +5,13 @@ mapped_pages: # Fields and object schemas [fields-reference] -This section lists Elastic Common Schema (ECS) fields the Logs and Infrastructure apps use to display data. +This section lists Elastic Common Schema (ECS) fields the Infrastructure apps use to display data. ECS is an open source specification that defines a standard set of fields to use when storing event data in {{es}}, such as logs and metrics. -Beat modules (for example, [{{filebeat}} modules](beats://reference/filebeat/filebeat-modules.md)) are ECS-compliant, so manual field mapping is not required, and all data is populated automatically in the Logs and Infrastructure apps. If you cannot use {{beats}}, map your data to [ECS fields](ecs://reference/ecs-converting.md)). You can also try using the experimental [ECS Mapper](https://github.com/elastic/ecs-mapper) tool. +Beat modules (for example, [{{filebeat}} modules](beats://reference/filebeat/filebeat-modules.md)) are ECS-compliant, so manual field mapping is not required, and all data is populated automatically in the Infrastructure app. If you cannot use {{beats}}, map your data to [ECS fields](ecs://reference/ecs-converting.md)). You can also try using the experimental [ECS Mapper](https://github.com/elastic/ecs-mapper) tool. -This reference covers: - -* [Logs Discover fields](/reference/observability/fields-and-object-schemas/logs-app-fields.md) -* [{{infrastructure-app}} fields](/reference/observability/fields-and-object-schemas/metrics-app-fields.md) +This reference covers [{{infrastructure-app}} fields](/reference/observability/fields-and-object-schemas/metrics-app-fields.md). diff --git a/reference/observability/fields-and-object-schemas/logs-app-fields.md b/reference/observability/fields-and-object-schemas/logs-app-fields.md deleted file mode 100644 index 079892b06e..0000000000 --- a/reference/observability/fields-and-object-schemas/logs-app-fields.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/observability/current/logs-app-fields.html ---- - -# Discover logs fields [logs-app-fields] - - -This section lists the required fields Discover uses to display log data. Please note that some of the fields listed are not [ECS fields](ecs://reference/index.md#_what_is_ecs). - -`@timestamp` -: Date/time when the event originated. - - This is the date/time extracted from the event, typically representing when the event was generated by the source. If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. - - type: date - - required: True - - ECS field: True - - example: `May 27, 2020 @ 15:22:27.982` - - -`_doc` -: This field is used to break ties between two entries with the same timestamp. - - required: True - - ECS field: False - - -`container.id` -: Unique container id. - - type: keyword - - required: True - - ECS field: True - - example: `data` - - -`event.dataset` -: Name of the dataset. - - If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. - - It’s recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. - - type: keyword - - required: True, if you want to use the {{ml-features}}. - - ECS field: True - - example: `apache.access` - - -`host.hostname` -: Name of the host. - - It normally contains what the `hostname` command returns on the host machine. - - type: keyword - - required: True, if you want to enable and use the **View in Context** feature. - - ECS field: True - - example: `Elastic.local` - - -`host.name` -: Name of the host. - - It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. - - type: keyword - - required: True - - ECS field: True - - example: `MacBook-Elastic.local` - - -`kubernetes.pod.uid` -: Kubernetes Pod UID. - - type: keyword - - required: True - - ECS field: False - - example: `8454328b-673d-11ea-7d80-21010a840123` - - -`log.file.path` -: Full path to the log file this event came from, including the file name. It should include the drive letter, when appropriate. - - If the event wasn’t read from a log file, do not populate this field. - - type: keyword - - required: True, if you want to use the **View in Context** feature. - - ECS field: True - - example: `/var/log/demo.log` - - -`message` -: For log events the message field contains the log message, optimized for viewing in a log viewer. - - For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. - - If multiple messages exist, they can be combined into one message. - - type: text - - required: True - - ECS field: True - - example: `Hello World` diff --git a/reference/observability/toc.yml b/reference/observability/toc.yml index 167c31621d..f93a5019c0 100644 --- a/reference/observability/toc.yml +++ b/reference/observability/toc.yml @@ -2,7 +2,6 @@ toc: - file: index.md - file: fields-and-object-schemas.md children: - - file: fields-and-object-schemas/logs-app-fields.md - file: fields-and-object-schemas/metrics-app-fields.md - file: elastic-entity-model.md - file: serverless/infrastructure-app-fields.md \ No newline at end of file From 9b0b40e374f8f474af9f897e38e2b33d556efe4e Mon Sep 17 00:00:00 2001 From: Mike Birnstiehl Date: Mon, 7 Apr 2025 09:24:16 -0500 Subject: [PATCH 17/17] add redirect --- redirects.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/redirects.yml b/redirects.yml index 697d4ef677..d2deca4129 100644 --- a/redirects.yml +++ b/redirects.yml @@ -3,4 +3,5 @@ redirects: 'deploy-manage/security/manually-configure-security-in-self-managed-cluster.md': '!deploy-manage/security/self-setup.md' 'deploy-manage/security/security-certificates-keys.md': '!deploy-manage/security/self-auto-setup.md' 'deploy-manage/security/ece-traffic-filtering-through-the-api.md': 'deploy-manage/security/ec-traffic-filtering-through-the-api.md' - 'deploy-manage/security/install-stack-demo-secure.md': '!deploy-manage/security/self-setup.md' \ No newline at end of file + 'deploy-manage/security/install-stack-demo-secure.md': '!deploy-manage/security/self-setup.md' + 'reference/observability/fields-and-object-schemas/logs-app-fields.md': '!reference/observability/fields-and-object-schemas.md' \ No newline at end of file