Elastic
The Elastic backend is ingest-only. Delivery is selected via a transport config field so one backend type can support multiple Elastic ingest paths over time.
Transports
filebeat (default)
Sends events to a Filebeat HTTP input endpoint.
See Filebeat HTTP input configuration for details on setting up the input server.
Configuration
transport: (string)"filebeat"(default when omitted — preserves existing backends)url: (string, required) a valid HTTP(S) endpointusername: (string, optional) used for basic authpassword: (string, optional) used for basic auth
Implementation is based on the webhook backend.
otlp
Exports logs via OTLP HTTP/protobuf — the same delivery path as the OTLP adaptor. Use this for Elastic managed OTLP ingest (e.g. Supabase log drains).
Configuration
transport: (string, required)"otlp"endpoint: (string, required) OTLP HTTP endpoint, e.g.https://abc.ingest.us-central1.gcp.elastic.cloud:443/supabase/v1/logsprotocol: (string) fixed to"http/protobuf"for nowgzip: (boolean) enables gzip compression; defaults totrueheaders: (map) additional HTTP headers (auth, content-type, etc.)
logstash
Sends events to a Logstash http input as a JSON array. Use this to route Logflare events through an existing Logstash pipeline — for filtering, enrichment, or fan-out to Elasticsearch and beyond.
Configuration
transport: (string, required)"logstash"url: (string, required) the Logstash HTTP(S) input endpoint, e.g.http://logstash.internal:8080username: (string, optional) used for basic auth; maps to the input'suseroptionpassword: (string, optional) used for basic authgzip: (boolean) enables gzip compression; defaults totrueheaders: (map) additional HTTP headers
Payload
Unlike the filebeat transport, which forwards event bodies as-is, this transport reshapes each event into an ECS-flavoured document. timestamp becomes the ECS @timestamp (ISO8601) and event_message becomes message, so no date filter is required on the Logstash side. Remaining fields stay at the top level and Logflare metadata is namespaced under logflare:
[
{
"@timestamp": "2026-09-07T10:00:00.000000Z",
"message": "hello logstash",
"my_field": "abc",
"logflare": {
"id": "9b0b1d3e-...",
"source": "my-source",
"source_uuid": "3d2f...",
"event_type": "log"
}
}
]
If an event has no timestamp, its Logflare ingest time is used instead.
Logstash pipeline
The input must use the json codec so that the JSON array is split into one event per element:
input {
http {
port => 8080
codec => json
# user => "logflare"
# password => "changeme"
}
}
output {
elasticsearch {
hosts => ["https://elasticsearch:9200"]
index => "logflare-%{+YYYY.MM.dd}"
}
}
Implementation is based on the webhook backend.