Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 34 additions & 50 deletions troubleshoot/elasticsearch/add-tier.md
Copy link
Collaborator

Choose a reason for hiding this comment

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

this tutorial is no longer really doing anything / it's unclear what the "action" is. the order needs to be:

  • determine the desired tier for an index
  • make sure there's room in the tier

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I've fixed this in a new commit, let me know what you think.

Copy link
Collaborator

Choose a reason for hiding this comment

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

we don't want to be in a situation where we only have ECH and self-managed instructions, when the page is supposed to apply to ECH/ECE/ECK/self-managed (self-managed in docs always meaning a fully, manually self-managed cluster). this organization is close, but ECE follows the ECH path and ECK has some extra requirements not documented at this link.

IMO the easiest way to fix this is to break it up into two sections:

step 1: determine target tier
step 2: resize (with pathways for each deployment type)

the info customers need here is similar to this note:
https://github.com/elastic/docs-content/pull/4475/files#diff-2ffc185dff3a45f8a151a9cc15e01e15f80e04641d514bda1a53996490a46e63R16

I also provided some info here: #4465 (comment)

if you prefer, you can take the changes to this file out of this PR and we can handle it separately

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Okay, this makes more sense. Please let me know if this looks better now: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4465/troubleshoot/elasticsearch/add-tier

Original file line number Diff line number Diff line change
Expand Up @@ -14,66 +14,25 @@ products:

# Add a preferred data tier to a deployment [add-tier]

The allocation of indices in an {{es}} deployment can be allocated on [data tiers](../../manage-data/lifecycle/data-tiers.md).
In an {{es}} deployment, an index and its shards can be allocated to [data tiers](../../manage-data/lifecycle/data-tiers.md) using routing and allocation settings.

In order to allow indices to be allocated, follow these steps to add the [data tier](../../manage-data/lifecycle/data-tiers.md) the indices expect to be allocated on to your deployment:
To allow indices to be allocated, follow these steps:

:::::::{tab-set}
1. [Determine which tiers](#determine-target-tier) an index's shards can be allocated to.
1. [Resize your deployment](#resize-your-deployment).

::::::{tab-item} {{kib}}
In order to get the shards assigned we need enable a new tier in the deployment.

## Determine the target tier [determine-target-tier]

1. Log in to the [{{ecloud}} console](https://cloud.elastic.co?page=docs&placement=docs-body).
2. On the **Hosted deployments** panel, click the name of your deployment.
You can run the following step using either [API console](/explore-analyze/query-filter/tools/console.md) or direct [Elasticsearch API](elasticsearch://reference/elasticsearch/rest-apis/index.md) calls.

::::{note}
If the name of your deployment is disabled your {{kib}} instances might be unhealthy, in which case contact [Elastic Support](https://support.elastic.co). If your deployment doesn’t include {{kib}}, all you need to do is [enable it first](../../deploy-manage/deploy/elastic-cloud/access-kibana.md).
::::

3. Open your deployment’s side navigation menu (placed under the Elastic logo in the upper left corner) and go to **Dev Tools > Console**.

:::{image} /troubleshoot/images/elasticsearch-reference-kibana-console.png
:alt: {{kib}} Console
:screenshot:
:::

4. Determine which tier an index expects for assignment. [Retrieve](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-get-settings) the configured value for the `index.routing.allocation.include._tier_preference` setting:

```console
GET /my-index-000001/_settings/index.routing.allocation.include._tier_preference?flat_settings
```

The response will look like this:

```console-result
{
"my-index-000001": {
"settings": {
"index.routing.allocation.include._tier_preference": "data_warm,data_hot" <1>
}
}
}
```

1. Represents a comma-separated list of data tier node roles this index is allowed to be allocated on, the first one in the list being the one with the higher priority i.e. the tier the index is targeting. e.g. in this example the tier preference is `data_warm,data_hot` so the index is targeting the `warm` tier and more nodes with the `data_warm` role are needed in the {{es}} cluster.

5. Open your deployment’s side navigation menu (placed under the Elastic logo in the upper left corner) and go to **Manage this deployment**.
6. From the right hand side, click to expand the **Manage** dropdown button and select **Edit deployment** from the list of options.
7. On the **Edit** page, click on **+ Add Capacity** for the tier you identified you need to enable in your deployment. Choose the desired size and availability zones for the new tier.
8. Navigate to the bottom of the page and click the **Save** button.
::::::

::::::{tab-item} API
In order to get the shards assigned you can add more nodes to your {{es}} cluster and assign the index’s target tier [node role](../../manage-data/lifecycle/index-lifecycle-management/migrate-index-allocation-filters-to-node-roles.md#assign-data-tier) to the new nodes.

To determine which tier an index requires for assignment, use the [get index setting](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-get-settings) API to retrieve the configured value for the `index.routing.allocation.include._tier_preference` setting:
To determine which tiers an index's shards can be allocated to, use the [get index setting](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-get-settings) API to retrieve the configured value for the `index.routing.allocation.include._tier_preference` setting:

```console
GET /my-index-000001/_settings/index.routing.allocation.include._tier_preference?flat_settings
```

The response will look like this:
The response looks like this:

```console-result
{
Expand All @@ -86,6 +45,31 @@ The response will look like this:
```

1. Represents a comma-separated list of data tier node roles this index is allowed to be allocated on, the first one in the list being the one with the higher priority i.e. the tier the index is targeting. e.g. in this example the tier preference is `data_warm,data_hot` so the index is targeting the `warm` tier and more nodes with the `data_warm` role are needed in the {{es}} cluster.

## Resize your deployment [resize-your-deployment]



:::::::{applies-switch}

::::::{applies-item} { ess:, ece: }
To enable a new tier in your {{ech}} deployment, you edit the deployment topology to add a new data tier.

1. In {{kib}}, open your deployment’s navigation menu (placed under the Elastic logo in the upper left corner) and go to **Manage this deployment**.
1. From the right hand side, click to expand the **Manage** dropdown button and select **Edit deployment** from the list of options.
1. On the **Edit** page, click on **+ Add Capacity** for the tier you identified you need to enable in your deployment. Choose the desired size and availability zones for the new tier.
1. Navigate to the bottom of the page and click the **Save** button.
::::::

::::::{applies-item} { self: }

Add more nodes to your {{es}} cluster and assign the index’s target tier [node role](/manage-data/lifecycle/data-tiers.md#configure-data-tiers-on-premise) to the new nodes, by adjusting the configuration in `elasticsearch.yml`.
::::::


::::::{applies-item} { eck: }
Add more nodes to your {{es}} cluster and assign the index’s target tier [node role](/deploy-manage/distributed-architecture/clusters-nodes-shards/node-roles.md#change-node-role) to the new nodes, by adjusting the [node configuration](/deploy-manage/deploy/cloud-on-k8s/node-configuration.md) in the `spec` section of your {{es}} resource manifest.

::::::

:::::::
:::::::
5 changes: 0 additions & 5 deletions troubleshoot/elasticsearch/all-shards-failed.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
---
applies_to:
stack:
deployment:
eck:
ess:
ece:
self:
navigation_title: "Error: All shards failed"
---

Expand Down
72 changes: 5 additions & 67 deletions troubleshoot/elasticsearch/allow-all-cluster-allocation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,6 @@ mapped_pages:
- https://www.elastic.co/guide/en/elasticsearch/reference/current/allow-all-cluster-allocation.html
applies_to:
stack:
deployment:
eck:
ess:
ece:
self:
products:
- id: elasticsearch
---
Expand All @@ -19,68 +14,14 @@ The allocation of data in an {{es}} deployment can be controlled using the [enab

Forgetting to re-allow all data allocations can lead to unassigned shards.

In order to (re)allow all data to be allocated follow these steps:
To get the shards assigned we need to change the value of the [configuration](elasticsearch://reference/elasticsearch/configuration-reference/cluster-level-shard-allocation-routing-settings.md#cluster-routing-allocation-enable) that restricts the assignment of the shards to allow all shards to be allocated.

:::::::{tab-set}
We achieve this by inspecting the system-wide `cluster.routing.allocation.enable` [cluster setting](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-cluster-get-settings) and changing the configured value to `all`.

::::::{tab-item} {{ech}}
In order to get the shards assigned we’ll need to change the value of the [configuration](elasticsearch://reference/elasticsearch/configuration-reference/cluster-level-shard-allocation-routing-settings.md#cluster-routing-allocation-enable) that restricts the assignemnt of the shards to allow all shards to be allocated.
To allow all data to be allocated, follow these steps.

We’ll achieve this by inspecting the system-wide `cluster.routing.allocation.enable` [cluster setting](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-cluster-get-settings) and changing the configured value to `all`.
You can run the following steps using either [API console](/explore-analyze/query-filter/tools/console.md) or direct [Elasticsearch API](elasticsearch://reference/elasticsearch/rest-apis/index.md) calls.

**Use {{kib}}**

1. Log in to the [{{ecloud}} console](https://cloud.elastic.co?page=docs&placement=docs-body).
2. On the **Hosted deployments** panel, click the name of your deployment.

::::{note}
If the name of your deployment is disabled your {{kib}} instances might be unhealthy, in which case contact [Elastic Support](https://support.elastic.co). If your deployment doesn’t include {{kib}}, all you need to do is [enable it first](../../deploy-manage/deploy/elastic-cloud/access-kibana.md).
::::

3. Open your deployment’s side navigation menu (placed under the Elastic logo in the upper left corner) and go to **Dev Tools > Console**.

:::{image} /troubleshoot/images/elasticsearch-reference-kibana-console.png
:alt: {{kib}} Console
:screenshot:
:::

4. Inspect the `cluster.routing.allocation.enable` [cluster setting](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-cluster-get-settings):

```console
GET /_cluster/settings?flat_settings
```

The response will look like this:

```console-result
{
"persistent": {
"cluster.routing.allocation.enable": "none" <1>
},
"transient": {}
}
```

1. Represents the current configured value that controls if data is partially or fully allowed to be allocated in the system.

5. [Change](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-cluster-put-settings) the [configuration](elasticsearch://reference/elasticsearch/configuration-reference/cluster-level-shard-allocation-routing-settings.md#cluster-routing-allocation-enable) value to allow all the data in the system to be fully allocated:

```console
PUT _cluster/settings
{
"persistent" : {
"cluster.routing.allocation.enable" : "all" <1>
}
}
```

1. The new value for the `allocation.enable` system-wide configuration is changed to allow all the shards to be allocated.
::::::

::::::{tab-item} Self-managed
In order to get the shards assigned we’ll need to change the value of the [configuration](elasticsearch://reference/elasticsearch/configuration-reference/cluster-level-shard-allocation-routing-settings.md#cluster-routing-allocation-enable) that restricts the assignemnt of the shards to allow all shards to be allocated.

We’ll achieve this by inspecting the system-wide `cluster.routing.allocation.enable` [cluster setting](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-cluster-get-settings) and changing the configured value to `all`.

1. Inspect the `cluster.routing.allocation.enable` [cluster setting](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-cluster-get-settings):

Expand Down Expand Up @@ -112,7 +53,4 @@ We’ll achieve this by inspecting the system-wide `cluster.routing.allocation.e
}
```

1. The new value for the `allocation.enable` system-wide configuration is changed to allow all the shards to be allocated.
::::::

:::::::
1. The new value for the `allocation.enable` system-wide configuration is changed to allow all the shards to be allocated.
67 changes: 3 additions & 64 deletions troubleshoot/elasticsearch/allow-all-index-allocation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,6 @@
- https://www.elastic.co/guide/en/elasticsearch/reference/current/allow-all-index-allocation.html
applies_to:
stack:
deployment:
eck:
ess:
ece:
self:
products:
- id: elasticsearch
---
Expand All @@ -22,65 +17,11 @@

Forgetting to re-allow all data allocation can lead to unassigned shards.

In order to (re)allow all data to be allocated follow these steps:
In order to get the shards assigned we’ll need to change the value of the [configuration](elasticsearch://reference/elasticsearch/index-settings/index-modules.md#index-routing-allocation-enable-setting) that restricts the assignment of the shards to `all`.

Check notice on line 20 in troubleshoot/elasticsearch/allow-all-index-allocation.md

View workflow job for this annotation

GitHub Actions / preview / vale

Elastic.Wordiness: Consider using 'to' instead of 'In order to'.

:::::::{tab-set}
To allow all data to be allocated, follow these steps.

::::::{tab-item} {{ech}}
In order to get the shards assigned we’ll need to change the value of the [configuration](elasticsearch://reference/elasticsearch/index-settings/index-modules.md#index-routing-allocation-enable-setting) that restricts the assignemnt of the shards to `all`.

**Use {{kib}}**

1. Log in to the [{{ecloud}} console](https://cloud.elastic.co?page=docs&placement=docs-body).
2. On the **Hosted deployments** panel, click the name of your deployment.

::::{note}
If the name of your deployment is disabled your {{kib}} instances might be unhealthy, in which case contact [Elastic Support](https://support.elastic.co). If your deployment doesn’t include {{kib}}, all you need to do is [enable it first](../../deploy-manage/deploy/elastic-cloud/access-kibana.md).
::::

3. Open your deployment’s side navigation menu (placed under the Elastic logo in the upper left corner) and go to **Dev Tools > Console**.

:::{image} /troubleshoot/images/elasticsearch-reference-kibana-console.png
:alt: {{kib}} Console
:screenshot:
:::

4. Inspect the `index.routing.allocation.enable` [index setting](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-get-settings) for the index with unassigned shards:

```console
GET /my-index-000001/_settings/index.routing.allocation.enable?flat_settings
```

The response will look like this:

```console-result
{
"my-index-000001": {
"settings": {
"index.routing.allocation.enable": "none" <1>
}
}
}
```

1. Represents the current configured value that controls if the index is allowed to be partially or totally allocated.

5. [Change](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-put-settings) the [configuration](elasticsearch://reference/elasticsearch/index-settings/index-modules.md#index-routing-allocation-enable-setting) value to allow the index to be fully allocated:

```console
PUT /my-index-000001/_settings
{
"index" : {
"routing.allocation.enable" : "all" <1>
}
}
```

1. The new value for the `allocation.enable` configuration for the `my-index-000001` index is changed to allow all the shards to be allocated.
::::::

::::::{tab-item} Self-managed
In order to get the shards assigned we’ll need to change the value of the [configuration](elasticsearch://reference/elasticsearch/index-settings/index-modules.md#index-routing-allocation-enable-setting) that restricts the assignemnt of the shards to `all`.
You can run the following steps using either [API console](/explore-analyze/query-filter/tools/console.md) or direct [Elasticsearch API](elasticsearch://reference/elasticsearch/rest-apis/index.md) calls.

1. Inspect the `index.routing.allocation.enable` [index setting](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-get-settings) for the index with unassigned shards:

Expand Down Expand Up @@ -114,6 +55,4 @@
```

1. The new value for the `allocation.enable` configuration for the `my-index-000001` index is changed to allow all the shards to be allocated.
::::::

:::::::
5 changes: 0 additions & 5 deletions troubleshoot/elasticsearch/circuit-breaker-errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@ mapped_pages:
- https://www.elastic.co/guide/en/elasticsearch/reference/current/circuit-breaker-errors.html
applies_to:
stack:
deployment:
eck:
ess:
ece:
self:
products:
- id: elasticsearch
---
Expand Down
7 changes: 5 additions & 2 deletions troubleshoot/elasticsearch/corruption-troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@
mapped_pages:
- https://www.elastic.co/guide/en/elasticsearch/reference/current/corruption-troubleshooting.html
applies_to:
stack:
deployment:
eck:
ess:
ece:
self:
products:
Expand All @@ -15,7 +13,12 @@

# Troubleshoot data corruption [corruption-troubleshooting]

:::{note}
:applies_to: {"serverless": "ga", "ess": "ga", }
While this section applies to troubleshooting fully self-managed {{es}} clusters, {{ech}} deployments and {{serverless-full}} projects are designed to minimize the risk of data corruption through managed infrastructure and automated operations. If you encounter any of these issues in {{ecloud}}, contact Elastic Support.
:::

{{es}} expects that the data it reads from disk is exactly the data it previously wrote. If it detects that the data on disk is different from what it wrote then it will report some kind of exception such as:

Check notice on line 21 in troubleshoot/elasticsearch/corruption-troubleshooting.md

View workflow job for this annotation

GitHub Actions / preview / vale

Elastic.FutureTense: 'will report' might be in future tense. Write in the present tense to describe the state of the product as it is now.

* `org.apache.lucene.index.CorruptIndexException`
* `org.elasticsearch.gateway.CorruptStateException`
Expand Down
Loading