Skip to content

Commit 451be67

Browse files
authored
Merge branch 'main' into add-style-guide
2 parents 09ee8fd + 34e9aa4 commit 451be67

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+1079
-137
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
# Add LLM/AI related files
1010
AGENTS.md
1111
.github/copilot-instructions.md
12-
.github/instructions/**.instructions.md
12+
.github/instructions
1313
CLAUDE.md
1414
GEMINI.md
1515
.cursor
1616

1717
# VS code settings
18-
.vscode
18+
.vscode

deploy-manage/api-keys/elastic-cloud-api-keys.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,11 @@ These keys provides access to the API that enables you to manage your deployment
3434

3535
::::{note}
3636
When an API key is nearing expiration, Elastic sends an email to the creator of the API key and each of the operational contacts. When you use an API key to authenticate, the API response header `X-Elastic-Api-Key-Expiration` indicates the key’s expiration date. You can log this value to detect API keys that are nearing expiration.
37+
38+
Once an API key expires, it will automatically be removed from the API Keys tab.
3739
::::
3840

39-
5. Click **Create API key**, copy the generated API key, and store it in a safe place. You can also download the key as a CSV file.
41+
6. Click **Create API key**, copy the generated API key, and store it in a safe place. You can also download the key as a CSV file.
4042

4143
The API key needs to be supplied in the `Authorization` header of a request, in the following format:
4244

deploy-manage/deploy/cloud-enterprise/ece-networking-prereq.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ For versions 2.4.0 and 2.4.1, IPv6 should remain enabled on any host with the Pr
1616

1717
* [Inbound traffic](#ece-inbound)
1818
* [Outbound traffic](#ece-outbound)
19+
* [Container communication on the same host](#ece-container-communication-on-same-host)
1920
* [Hosts in multiple data centers](#ece-multiple-data-centers)
2021

21-
2222
## Inbound traffic [ece-inbound]
2323

2424
When there are multiple hosts for each role, the inbound networking and ports can be represented by the following diagram:
@@ -68,6 +68,21 @@ Outbound traffic must also permit connections to the [snapshot repositories](../
6868
::::
6969

7070

71+
## Container communication on the same host [ece-container-communication-on-same-host]
72+
73+
The following ports need to be open for containers communicating with the host or with each other on the same host:
74+
75+
| Port(s) | Purpose | Host role |
76+
| --- | --- | --- |
77+
| 53 | DNS resolver | All roles |
78+
| 2180 | ZooKeeper admin port | All roles |
79+
| 2375 | Docker admin port | All roles |
80+
| 2191-2199 | Debug ports | Director |
81+
| 5000-5010 | Java Virtual Machine (JVM)/debug ports | All roles |
82+
| 8080-8084 | Health/monitoring ports | All roles |
83+
| 9000, 9043 | Internal proxy use | Proxy |
84+
| 9244 | Internal proxy port | All roles |
85+
7186

7287
## Hosts in multiple data centers [ece-multiple-data-centers]
7388

deploy-manage/deploy/cloud-on-k8s/pod-disruption-budget.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@ In {{eck}} 3.1 and earlier, all clusters follow the [default PodDisruptionBudget
1919
:::
2020

2121
## Advanced rules (Enterprise license required)
22+
2223
```{applies_to}
2324
deployment:
2425
eck: ga 3.2
2526
```
2627

27-
In Elasticsearch clusters managed by ECK and licensed with an Enterprise license, a separate PDB is created for each type of `nodeSet` defined in the manifest. This setup allows Kubernetes upgrade or maintenance operations to be executed more quickly. Each PDB permits one Elasticsearch Pod per `nodeSet` to be disrupted at a time, provided the Elasticsearch cluster maintains the health status described in the following table:
28+
In {{es}} clusters managed by ECK and licensed with an Enterprise license, PDBs are created based on {{es}} node roles, allowing Kubernetes upgrade or maintenance operations to be executed more quickly. Multiple `nodeSets` with the same roles, such as `master` or `ml`, are combined into a single PDB. Each PDB permits one {{es}} Pod to be disrupted at a time, provided the {{es}} cluster maintains the health status described in the following table.
2829

2930
| Role | Cluster health required | Notes |
3031
|------|------------------------|--------|
@@ -40,6 +41,7 @@ In Elasticsearch clusters managed by ECK and licensed with an Enterprise license
4041
Single-node clusters are not considered highly available and can always be disrupted regardless of license type.
4142

4243
## Default rules (Basic license) [default-pdb-rules]
44+
4345
:::{note}
4446
In {{eck}} 3.1 and earlier, all clusters follow this behavior regardless of license type.
4547
:::
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
applies_to:
3+
deployment:
4+
self:
5+
ece:
6+
eck:
7+
navigation_title: Configure Elastic agent with custom certificate
8+
products:
9+
- id: cloud-kubernetes
10+
- id: cloud-enterprise
11+
---
12+
13+
# Configure AutoOps {{agent}} with a custom SSL certificate
14+
15+
{{agent}} might not recognize your SSL certificate if it is signed by a custom or internal Certificate Authority (CA). In this case, {{agent}} will fail to connect your self-managed cluster to AutoOps and you might encounter an error like the following:
16+
17+
```sh
18+
... x509: certificate signed by unknown authority ...
19+
```
20+
21+
This error occurs because the machine where you have installed {{agent}} does not trust your custom or internal CA. To fix this error, follow the steps on this page to configure the agent with your custom SSL certificate.
22+
23+
## Add custom certificate path to the `elastic-agent.yml` file
24+
25+
To configure {{agent}} with your custom SSL certificate, add the path to your certificate to the [`elastic-agent.yml`](/reference/fleet/configure-standalone-elastic-agents.md) policy file on the host machine where the agent is installed.
26+
27+
Complete the following steps:
28+
29+
1. On the host machine, open the `elastic-agent.yml` file. The default location is `/opt/Elastic/Agent/elastic-agent.yml`.
30+
2. In the `elastic-agent.yml` file, locate the `receivers.metricbeatreceiver.metricbeat.modules` section.
31+
3. In this section, there are two modules configured for `autoops_es`, one for metrics and one for templates. \
32+
Add the `ss.certificate_authorities` setting to both these modules using one of the following options:
33+
34+
:::::{tab-set}
35+
:group: add-cert-auth-setting-to-module
36+
37+
::::{tab-item} Use environment variable (recommended)
38+
:sync: env-variable
39+
40+
We recommend using this method because it's flexible and keeps sensitive paths out of your main configuration.
41+
42+
Add the following line to both `autoops_es` modules:
43+
44+
```yaml
45+
ssl.certificate_authorities:
46+
- ${env:AUTOOPS_CA_CERT}
47+
```
48+
After adding this line to both modules, make sure the` AUTOOPS_CA_CERT` environment variable is set on the host machine and contains the full path to your certificate file (for example: `/etc/ssl/certs/my_internal_ca.crt`).
49+
::::
50+
51+
::::{tab-item} Hardcode file path
52+
:sync: hardcode-file-path
53+
54+
Use this method to specify the path directly. This method is often simpler for fixed or test environments.
55+
56+
Edit the following line with the path to your CA and add it to both `autoops_es` modules:
57+
58+
```yaml
59+
ssl.certificate_authorities:
60+
- "/path/to/your/ca.crt"
61+
```
62+
The following codeblock shows what your final configuration should look like when you use the hardcode method.
63+
64+
```yaml
65+
receivers:
66+
metricbeatreceiver:
67+
metricbeat:
68+
modules:
69+
# Metrics
70+
- module: autoops_es
71+
hosts: ${env:AUTOOPS_ES_URL}
72+
period: 10s
73+
metricsets:
74+
- cat_shards
75+
- cluster_health
76+
- cluster_settings
77+
- license
78+
- node_stats
79+
- tasks_management
80+
# --- ADD THIS LINE ---
81+
ssl.certificate_authorities:
82+
- "/path/to/your/ca.crt"
83+
84+
# Templates
85+
- module: autoops_es
86+
hosts: ${env:AUTOOPS_ES_URL}
87+
period: 24h
88+
metricsets:
89+
- cat_template
90+
- component_template
91+
- index_template
92+
# --- ADD THIS LINE ---
93+
ssl.certificate_authorities:
94+
- "/path/to/your/ca.crt"
95+
```
96+
97+
::::
98+
99+
:::::
100+
101+
4. Save your changes to the `elastic-agent.yml` file.
102+
5. Restart {{agent}} so that the new settings can take effect.\
103+
In most systemd-based Linux environments, you can use the following command to restart the agent:
104+
```bash
105+
sudo systemctl restart elastic-agent
106+
```
107+
6. Check the agent logs again to confirm that the error is gone and that {{agent}} has successfully connected your self-managed cluster to AutoOps.
108+
109+
:::{note}
110+
If you encounter the following error in the agent logs, there might be a formatting issue in the `elastic-agent.yml` file.
111+
```sh
112+
... can not convert 'object' into 'string' ... ssl.certificate_authorities ...
113+
```
114+
To fix this error, ensure your configuration is correctly formatted. The `ss.certificate_authorities` setting must be a list item (indicated by the `-`) containing one or more strings (the respective path to your certification files).
115+
:::

deploy-manage/monitor/autoops/cc-cloud-connect-autoops-troubleshooting.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Use this guide to troubleshoot any issues you may encounter.
2323
* [My cluster was disconnected from {{ecloud}} and I want to reconnect it.](#disconnected-cluster)
2424
* [After running the installation command, I can't move on to the next steps.](#next-steps)
2525
* [My organization's firewall may be preventing {{agent}} from collecting and sending metrics.](#firewall)
26+
* [{{agent}} is failing to connect because it doesn't recognize my SSL certificate.](#custom-cert)
2627

2728
$$$single-cloud-org$$$**I’m trying to create a Cloud organization, but I’m already part of a different one.**
2829
: :::{include} /deploy-manage/monitor/_snippets/single-cloud-org.md
@@ -166,6 +167,9 @@ $$$firewall$$$**My organization's firewall may be preventing {{agent}} from coll
166167
If you are using Docker, you may need to complete this configuration directly via the `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` environment variables.
167168
:::
168169

170+
$$$custom-cert$$$**{{agent}} is failing to connect because it doesn't recognize my SSL certificate.**
171+
: If {{agent}} is failing to connect your self-managed cluster to AutoOps because it doesn't recognize your SSL certificate, refer to [](/deploy-manage/monitor/autoops/autoops-sm-custom-certification.md).
172+
169173
## Potential errors
170174

171175
The following table shows the errors you might encounter if something goes wrong while you set up and use AutoOps on your clusters.
@@ -184,3 +188,4 @@ The following table shows the errors you might encounter if something goes wrong
184188
| `VERSION_MISMATCH` | {{es}} version is unsupported | Upgrade your cluster to a [supported version](https://www.elastic.co/support/eol). |
185189
| `UNKNOWN_ERROR` | Installation failed | {{agent}} couldn't be installed due to an unknown issue. Consult the troubleshooting guide or contact [Elastic support](https://support.elastic.co/) for more help. |
186190
| | Failed to register Cloud Connected Mode: cluster license type is not supported | The cluster you are trying to connect doesn't have the required license to connect to AutoOps. For more information, refer to the [prerequisites](/deploy-manage/monitor/autoops/cc-connect-self-managed-to-autoops.md#prerequisites). |
191+
| `x509` | Certificate signed by unknown authority | {{agent}} couldn't connect. SSL certificate signed by unknown authority. |

deploy-manage/remote-clusters/_snippets/apikeys-local-ece-remote-private.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
This snippet is in use in the following locations:
33
- ece-remote-cluster-self-managed.md
44
- ece-remote-cluster-other-ece.md
5+
- ece-enable-ccs-for-eck.md
56
67
It requires remote_type substitution to be defined
78
-->
@@ -10,7 +11,7 @@ It requires remote_type substitution to be defined
1011

1112
Narrow the list by name, ID, or choose from several other filters. To further define the list, use a combination of filters.
1213

13-
3. Access the **Security** page of the deployment.
14+
3. From the navigation menu, select **Security**.
1415
4. Select **Remote Connections > Add trusted environment** and choose **{{remote_type}}**. Then click **Next**.
1516
5. Select **API keys** as authentication mechanism and click **Next**.
1617
6. When asked whether the Certificate Authority (CA) of the remote environment’s proxy or load-balancing infrastructure is public, select **No, it is private**.
@@ -21,13 +22,13 @@ It requires remote_type substitution to be defined
2122
* For the **Remote cluster name**, enter the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
2223
* For the **Cross-cluster API key**, paste the encoded cross-cluster API key.
2324

24-
2. Click **Add** to save the API key to the keystore.
25+
2. Click **Add** to save the API key.
2526
3. Repeat these steps for each API key you want to add. For example, if you want to use several clusters of the remote environment for CCR or CCS.
2627

2728
8. Add the CA certificate of the remote environment.
2829
9. Provide a name for the trusted environment. That name will appear in the trust summary of your deployment's **Security** page.
2930
10. Select **Create trust** to complete the configuration.
30-
11. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
31+
11. Restart the local deployment to reload the new settings. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
3132

3233
::::{note}
3334
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.

deploy-manage/remote-clusters/_snippets/apikeys-local-ece-remote-public.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,24 @@ This snippet is in use in the following locations:
44
- ece-remote-cluster-same-ece.md
55
- ece-remote-cluster-other-ece.md
66
- ece-remote-cluster-ece-ess.md
7+
- ece-enable-ccs-for-eck.md
78
-->
89
1. [Log into the Cloud UI](/deploy-manage/deploy/cloud-enterprise/log-into-cloud-ui.md).
910
2. On the **Deployments** page, select your deployment.
1011

1112
Narrow the list by name, ID, or choose from several other filters. To further define the list, use a combination of filters.
1213

13-
3. From the deployment menu, select **Security**.
14+
3. From the navigation menu, select **Security**.
1415
4. Locate **Remote Connections > Trust management > Connections using API keys** and select **Add API key**.
1516

1617
1. Fill both fields.
1718

18-
* For the **Remote cluster name**, enter the the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
19+
* For the **Remote cluster name**, enter the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
1920
* For the **Cross-cluster API key**, paste the encoded cross-cluster API key.
2021

21-
2. Click **Add** to save the API key to the keystore.
22+
2. Click **Add** to save the API key.
2223

23-
5. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment's main page (named after your deployment's name), locate the **Actions** menu, and select **Restart {{es}}**.
24+
5. Restart the local deployment to reload the new setting. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
2425

2526
::::{note}
2627
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.

deploy-manage/remote-clusters/_snippets/apikeys-local-ech-remote-private.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
This snippet is in use in the following locations:
33
- ec-remote-cluster-self-managed.md
44
- ec-remote-cluster-ece.md
5+
- ec-enable-ccs-for-eck.md
56
67
It requires remote_type substitution to be defined
78
-->
@@ -21,13 +22,13 @@ It requires remote_type substitution to be defined
2122
* For the **Remote cluster name**, enter the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
2223
* For the **Cross-cluster API key**, paste the encoded cross-cluster API key.
2324

24-
2. Click **Add** to save the API key to the keystore.
25+
2. Click **Add** to save the API key.
2526
3. Repeat these steps for each API key you want to add. For example, if you want to use several clusters of the remote environment for CCR or CCS.
2627

2728
8. Add the CA certificate of the remote environment.
2829
9. Provide a name for the trusted environment. That name will appear in the trust summary of your deployment's **Security** page.
2930
10. Select **Create trust** to complete the configuration.
30-
11. Restart the local deployment to reload the keystore with its new setting. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
31+
11. Restart the local deployment to reload the new settings. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
3132

3233
::::{note}
3334
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.

deploy-manage/remote-clusters/_snippets/apikeys-local-ech-remote-public.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ This snippet is in use in the following locations:
44
- ec-remote-cluster-same-ess.md
55
- ec-remote-cluster-other-ess.md
66
- ec-remote-cluster-ece.md
7+
- ec-enable-ccs-for-eck.md
8+
79
-->
810
1. Log in to the [{{ecloud}} Console](https://cloud.elastic.co?page=docs&placement=docs-body).
911
2. On the home page, find your hosted deployment and select **Manage** to access it directly. Or, select **Hosted deployments** to go to the **Hosted deployments** page to view all of your deployments.
@@ -15,12 +17,12 @@ This snippet is in use in the following locations:
1517

1618
1. Fill both fields.
1719

18-
* For the **Remote cluster name**, enter the the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
20+
* For the **Remote cluster name**, enter the alias of your choice. You will use this alias to connect to the remote cluster later. It must be lowercase and only contain letters, numbers, dashes and underscores.
1921
* For the **Cross-cluster API key**, paste the encoded cross-cluster API key.
2022

2123
2. Click **Add** to save the API key.
2224

23-
5. Restart the local deployment to reload the new setting. To do that, go to the deployment's main page (named after your deployment's name), locate the **Actions** menu, and select **Restart {{es}}**.
25+
5. Restart the local deployment to reload the new setting. To do that, go to the deployment's main page, locate the **Actions** menu, and select **Restart {{es}}**.
2426

2527
::::{note}
2628
If the local deployment runs on version 8.14 or greater, you no longer need to perform this step because the keystore is reloaded automatically with the new API keys.

0 commit comments

Comments
 (0)