Skip to content

Commit

Permalink
[AWS Firehose] Improve Firehose documentation (#4818) (#4829)
Browse files Browse the repository at this point in the history
* update firehose endpoint and data stream details

Signed-off-by: Kavindu Dodanduwa <[email protected]>

* improve api key and retry duration section

Signed-off-by: Kavindu Dodanduwa <[email protected]>

* fix wording of storage location

Signed-off-by: Kavindu Dodanduwa <[email protected]>

* improve further by modifying all related documents

Signed-off-by: Kavindu Dodanduwa <[email protected]>

* Update docs/en/observability/cloud-monitoring/aws/ingest-aws-firehose.asciidoc

Co-authored-by: Arianna Laudazzi <[email protected]>

---------

Signed-off-by: Kavindu Dodanduwa <[email protected]>
Co-authored-by: Arianna Laudazzi <[email protected]>
(cherry picked from commit 9813ea7)

Co-authored-by: Kavindu Dodanduwa <[email protected]>
  • Loading branch information
mergify[bot] and Kavindu-Dodan authored Feb 28, 2025
1 parent 63d829b commit 1b22c58
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,20 +53,21 @@ NOTE: For advanced use cases, source records can be transformed by invoking a cu

. From the *Destination settings* panel, specify the following settings:
+
* *Elastic endpoint URL*: Enter the Elastic endpoint URL of your Elasticsearch cluster. To find the Elasticsearch endpoint, go to the Elastic Cloud console and select *Connection details*. Here is an example of how it looks like: `https://my-deployment.es.us-east-1.aws.elastic-cloud.com`.
* *Elastic endpoint URL*: Enter the {es} endpoint here. To find the {es} endpoint, go to the https://cloud.elastic.co/[Elastic Cloud] console, select your deployment and use *Copy endpoint* next to *Elasticsearch*. Example: `https://<deployment_name>.es.<region>.<csp>.elastic-cloud.com`.
+
* *API key*: Enter the encoded Elastic API key. To create an API key, go to the Elastic Cloud console, select *Connection details* and click *Create and manage API keys*. If you are using an API key with *Restrict privileges*, make sure to review the Indices privileges to provide at least "auto_configure" & "write" permissions for the indices you will be using with this delivery stream.
* *API key*: Enter the encoded Elastic API key. This can be created in Kibana by following the instructions under API Keys. If you are using an API key with Restricted privileges, be sure to review the Indices privileges to provide at least "auto_configure" & "write" permissions for the indices you will be using with this delivery stream.
+
* *Content encoding*: For a better network efficiency, leave content encoding set to GZIP.
* *Content encoding*: To reduce the data transfer costs, use GZIP encoding.
+
* *Retry duration*: Determines how long Firehose continues retrying the request in the event of an error. A duration of 60-300s should be suitable for most use cases.
* *Retry duration*: Determines how long Firehose continues retrying the request in the event of an error. A duration between 60 and 300 seconds should be suitable for most use cases.
+
* *Parameters*:
+
** `es_datastream_name`: This parameter is optional and can be used to set which data stream documents will be stored. If this parameter is not specified, data is sent to the `logs-awsfirehose-default` data stream by default.
** `es_datastream_name`: This parameter is optional and can be used to set which data stream documents will be stored. If not specified, logs are stored in `logs-awsfirehose-default` data stream and metrics are stored in `metrics-aws.cloudwatch-default` data stream.
** `include_cw_extracted_fields`: This parameter is optional and can be set when using a CloudWatch logs subscription filter as the Firehose data source. When set to true, extracted fields generated by the filter pattern in the subscription filter will be collected. Setting this parameter can add many fields into each record and may significantly increase data volume in Elasticsearch. As such, use of this parameter should be carefully considered and used only when the extracted fields are required for specific filtering and/or aggregation.
** `set_es_document_id`: This parameter is optional and can be set to allow Elasticsearch to assign each document a random ID or use a calculated unique ID for each document. Default is true. When set to false, a random ID will be used for each document which will help indexing performance.
. In the *Backup settings* panel, it is recommended to configure S3 backup for failed records. It’s then possible to configure workflows to automatically retry failed records, for example by using {esf-ref}/aws-elastic-serverless-forwarder.html[Elastic Serverless Forwarder].
+
* *Backup settings*: It is recommended to configure S3 backup for failed records. These backups can be used to restore data losses caused by unforeseen service outages.

[discrete]
[[firehose-step-four]]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ For more information on how to set up a Amazon Data Firehose delivery stream to
.. Go to the https://cloud.elastic.co/[Elastic Cloud] console
.. Find your deployment in the *Hosted deployments* card and select *Manage*.
.. Under *Applications* click *Copy endpoint* next to *Elasticsearch*.
.. Make sure that your *Elasticsearch endpoint URL* includes `.es.` between the *deployment name* and *region*. Example: `https://<deployment_name>.es.<region>.<csp>.elastic-cloud.com`

- *To create the API key*:
.. Go to the https://cloud.elastic.co/[Elastic Cloud] console
Expand All @@ -99,11 +100,9 @@ For more information on how to set up a Amazon Data Firehose delivery stream to
+
- Elastic endpoint URL: The URL that you copied in the previous step.
- API key: The API key that you created in the previous step.
- Content encoding: gzip
- Retry duration: 60 (default)
- Backup settings: failed data only to s3 bucket

IMPORTANT: Verify that your *Elasticsearch endpoint URL* includes `.es.` between the *deployment name* and *region*. Example: `https://my-deployment.es.us-east-1.aws.elastic-cloud.com`
- Content encoding: To reduce the data transfer costs, use GZIP encoding.
- Retry duration: A duration between 60 and 300 seconds should be suitable for most use cases.
- Backup settings: It is recommended to configure S3 backup for failed records. These backups can then be used to restore failed data ingestion caused by unforeseen service outages.

You now have an Amazon Data Firehose delivery specified with:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,19 +106,18 @@ NOTE: For advanced use cases, source records can be transformed by invoking a cu
.. Go to the https://cloud.elastic.co/[Elastic Cloud] console
.. Find your deployment in the *Hosted deployments* card and select *Manage*.
.. Under *Applications* click *Copy endpoint* next to *Elasticsearch*.
.. Make sure that your *Elasticsearch endpoint URL* includes `.es.` between the *deployment name* and *region*. Example: `https://<deployment_name>.es.<region>.<csp>.elastic-cloud.com`
+
* *To create the API key*:
.. Go to the https://cloud.elastic.co/[Elastic Cloud] console
.. Select *Open Kibana*.
.. Expand the left-hand menu, under *Management* select *Stack management > API Keys* and click *Create API key*. If you are using an API key with *Restrict privileges*, make sure to review the Indices privileges to provide at least `auto_configure` and `write` permissions for the indices you will be using with this delivery stream.
+
* *Content encoding*: For a better network efficiency, leave content encoding set to GZIP.
* *Content encoding*: To reduce the data transfer costs, use GZIP encoding.
+
* *Retry duration*: Determines how long Firehose continues retrying the request in the event of an error. A duration of 60-300s should be suitable for most use cases.
+
* *es_datastream_name*: `logs-aws.generic-default`
* *Retry duration*: Determines how long Firehose continues retrying the request in the event of an error. A duration between 60 and 300 seconds should be suitable for most use cases.

IMPORTANT: Verify that your *Elasticsearch endpoint URL* includes `.es.` between the *deployment name* and *region*. Example: `https://my-deployment.es.us-east-1.aws.elastic-cloud.com`
. It is recommended to configure S3 backup for failed records from the *Backup settings* panel. These backups can be used to restore data losses caused by unforeseen service outages.

The Firehose stream is now ready to send logs to your Elastic Cloud deployment.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,22 +61,20 @@ image::firehose-networkfirewall-stream.png[Firehose stream]
.. Go to the https://cloud.elastic.co/[Elastic Cloud] console
.. Find your deployment in the *Hosted deployments* card and select *Manage*.
.. Under *Applications* click *Copy endpoint* next to *Elasticsearch*.
.. Make sure that your *Elasticsearch endpoint URL* includes `.es.` between the *deployment name* and *region*. Example: `https://<deployment_name>.es.<region>.<csp>.elastic-cloud.com`

- *To create the API key*:
- *To create the API key*:
.. Go to the https://cloud.elastic.co/[Elastic Cloud] console
.. Select *Open Kibana*.
.. Expand the left-hand menu, under *Management* select *Stack management > API Keys* and click *Create API key*. If you are using an API key with *Restrict privileges*, make sure to review the Indices privileges to provide at least `auto_configure` and `write` permissions for the indices you will be using with this delivery stream.

. Set up the delivery stream by specifying the following data:
+
- Elastic endpoint URL
- API key
- Content encoding: gzip
- Retry duration: 60 (default)
- Parameter *es_datastream_name* = `logs-aws.firewall_logs-default`
- Backup settings: failed data only to S3 bucket

IMPORTANT: Verify that your *Elasticsearch endpoint URL* includes `.es.` between the *deployment name* and *region*. Example: `https://my-deployment.es.us-east-1.aws.elastic-cloud.com`
- Elastic endpoint URL: The URL that you copied in the previous step.
- API key: The API key that you created in the previous step.
- Content encoding: To reduce the data transfer costs, use GZIP encoding.
- Retry duration: A duration between 60 and 300 seconds should be suitable for most use cases.
- Backup settings: It is recommended to configure S3 backup for failed records. These backups can then be used to restore failed data ingestion caused by unforeseen service outages.

The Firehose stream is ready to send logs to our Elastic Cloud deployment.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,19 +58,18 @@ NOTE: For advanced use cases, source records can be transformed by invoking a cu
.. Go to the https://cloud.elastic.co/[Elastic Cloud] console
.. Find your deployment in the *Hosted deployments* card and select *Manage*.
.. Under *Applications* click *Copy endpoint* next to *Elasticsearch*.
.. Make sure that your *Elasticsearch endpoint URL* includes `.es.` between the *deployment name* and *region*. Example: `https://<deployment_name>.es.<region>.<csp>.elastic-cloud.com`
+
* *To create the API key*:
.. Go to the https://cloud.elastic.co/[Elastic Cloud] console
.. Select *Open Kibana*.
.. Expand the left-hand menu, under *Management* select *Stack management > API Keys* and click *Create API key*. If you are using an API key with *Restrict privileges*, make sure to review the Indices privileges to provide at least `auto_configure` and `write` permissions for the indices you will be using with this delivery stream.
+
* *Content encoding*: For a better network efficiency, leave content encoding set to GZIP.
* *Content encoding*: To reduce the data transfer costs, use GZIP encoding.
+
* *Retry duration*: Determines how long Firehose continues retrying the request in the event of an error. A duration of 60-300s should be suitable for most use cases.
+
* *es_datastream_name*: `logs-aws.waf-default`
* *Retry duration*: Determines how long Firehose continues retrying the request in the event of an error. A duration between 60 and 300 seconds should be suitable for most use cases.

IMPORTANT: Verify that your *Elasticsearch endpoint URL* includes `.es.` between the *deployment name* and *region*. Example: `https://my-deployment.es.us-east-1.aws.elastic-cloud.com`
. It is recommended to configure S3 backup for failed records from the *Backup settings* panel. These backups can be used to restore data losses caused by unforeseen service outages.

[discrete]
[[firehose-waf-step-four]]
Expand Down

0 comments on commit 1b22c58

Please sign in to comment.