---
title: Ingest architectures
description: We offer a variety of ingest architectures to serve a wide range of use cases and network configurations. To ingest data into Elasticsearch, use the simplest...
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures
products:
  - Elastic Agent
---

# Ingest architectures
We offer a variety of ingest architectures to serve a wide range of use cases and network configurations.
To ingest data into Elasticsearch, use the *simplest option that meets your needs* and satisfies your use case. For many users and use cases, the simplest approach is ingesting data with Elastic Agent and sending it to Elasticsearch. Elastic Agent and [Elastic Agent integrations](https://www.elastic.co/integrations/) are available for many popular platforms and services, and are a good place to start.
<tip>
  You can host Elasticsearch on your own hardware or send your data to Elasticsearch on Elastic Cloud. For most users, Elastic Agent writing directly to Elasticsearch on Elastic Cloud provides the easiest and fastest time to value. Elastic Cloud Hosted is available on AWS, GCP, and Azure, and you can [try it for free](https://cloud.elastic.co/registration).
</tip>

**Decision tree**
[Data ingestion](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest)

| **Ingest architecture**Ingest architecture                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | **Use when**Use when                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [*Elastic Agent to Elasticsearch*](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/agent-to-es)*Elastic Agent to Elasticsearch*Elastic Agent to Elasticsearch![Image showing Elastic Agent collecting data and sending to Elasticsearch](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/images/ingest-ea-es.png)Image showing Elastic Agent collecting data and sending to Elasticsearch                                                                                                                                                                                          | An [Elastic Agent integration](https://docs.elastic.co/en/integrations)Elastic Agent integration is available for your data source:* Software components with [Elastic Agent installed](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/agent-installed)Elastic Agent installed* Software components using [APIs for data collection](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/agent-apis)APIs for data collection                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [*Elastic Agent to Logstash to Elasticsearch*](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/agent-ls)*Elastic Agent to Logstash to Elasticsearch*Elastic Agent to Logstash to Elasticsearch![Image showing Elastic Agent to Logstash to Elasticsearch](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/images/ingest-ea-ls-es.png)Image showing Elastic Agent to Logstash to Elasticsearch                                                                                                                                                                                      | You need additional capabilities offered by Logstash:* [**enrichment**](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/ls-enrich)**enrichment**enrichment between Elastic Agent and Elasticsearch* [**persistent queue (PQ) buffering**](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/lspq)**persistent queue (PQ) buffering**persistent queue (PQ) buffering to accommodate network issues and downstream unavailability* [**proxying**](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/ls-networkbridge)**proxying**proxying in cases where Elastic Agents have network restrictions for connecting outside of the Elastic Agent network* data needs to be [**routed to multiple**](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/ls-multi)**routed to multiple**routed to multiple Elasticsearch clusters and other destinations depending on the content |
| [*Elastic Agent to proxy to Elasticsearch*](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/agent-proxy)*Elastic Agent to proxy to Elasticsearch*Elastic Agent to proxy to Elasticsearch![Image showing connections between Elastic Agent and Elasticsearch using a proxy](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/images/ingest-ea-proxy-es.png)Image showing connections between Elastic Agent and Elasticsearch using a proxy                                                                                                                                           | Agents have [network restrictions](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/agent-proxy)network restrictions that prevent connecting outside of the Elastic Agent network. [Logstash as proxy](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/ls-networkbridge)Logstash as proxy is one option.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| [*Elastic Agent to Elasticsearch with Kafka as middleware message queue*](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/agent-kafka-es)*Elastic Agent to Elasticsearch with Kafka as middleware message queue*Elastic Agent to Elasticsearch with Kafka as middleware message queue![Image showing Elastic Agent collecting data and using Kafka as a message queue enroute to Elasticsearch](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/images/ingest-ea-kafka.png)Image showing Elastic Agent collecting data and using Kafka as a message queue enroute to Elasticsearch | Kafka is your [middleware message queue](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/agent-kafka-es)middleware message queue:* [Kafka ES sink connector](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/agent-kafka-essink)Kafka ES sink connector to write from Kafka to Elasticsearch* [Logstash to read from Kafka and route to Elasticsearch](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/agent-kafka-ls)Logstash to read from Kafka and route to Elasticsearch                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| [*Logstash to Elasticsearch*](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/ls-for-input)*Logstash to Elasticsearch*Logstash to Elasticsearch![Image showing Logstash collecting data and sending to Elasticsearch](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/images/ingest-ls-es.png)Image showing Logstash collecting data and sending to Elasticsearch                                                                                                                                                                                                                  | You need to collect data from a source that Elastic Agent can’t read (such as databases, AWS Kinesis). Check out the [Logstash input plugins](https://docs-v3-preview.elastic.dev/elastic/logstash-docs-md/tree/main/lsr/input-plugins)Logstash input plugins.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [*Elastic air-gapped architectures*](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/ingest/ingest-reference-architectures/airgapped-env)*Elastic air-gapped architectures*Elastic air-gapped architectures![Image showing Elastic Stack in an air-gapped environment](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/images/ingest-ea-airgapped.png)Image showing Elastic Stack in an air-gapped environment                                                                                                                                                                                                           | You want to deploy Elastic Agent and Elastic Stack in an air-gapped environment (no access to outside networks)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |