Overview
What OBSESC is, how it fits alongside your existing observability stack, and what it deploys in your AWS account.
OBSESC is a log retention and analysis system that runs inside your own AWS account. You point your existing log shippers at it as well as your current observability platform, and it keeps a complete, queryable copy of everything for as long as you choose.
A parallel destination, not a replacement
OBSESC doesn’t ask you to migrate. Your shippers (Fluent Bit, Vector, the OpenTelemetry Collector, Filebeat, Logstash and others) already support sending the same stream to more than one place. You add OBSESC as a second output, and nothing about your current pipeline changes.
┌──> your current platform (short retention, live ops)
your log shipper ───────┤
└──> OBSESC (complete history, in your AWS account)
This means you can:
- run OBSESC in parallel for as long as you need to trust it
- keep your current platform for live alerting and on-call work
- decide later, with evidence, whether to shorten retention elsewhere
- stop at any time, because removing an output stanza undoes the change
OBSESC isn’t a log shipper, an APM or tracing product, or a hosted service. It doesn’t collect from hosts directly. It accepts what your shippers already send.
Where your data lives
Everything OBSESC stores stays in resources you own:
| What | Where | Format |
|---|---|---|
| Complete events (the fidelity tier) | Your S3 bucket, under your KMS key | Open Apache Parquet files, readable by Athena, DuckDB, Spark, Trino and similar tools |
| The data that makes exploring history fast (the navigation tier) | Encrypted EBS volumes attached to the OBSESC node | Internal to OBSESC |
| Recently accepted events not yet written to S3 | A dedicated encrypted EBS volume on the node (the write-ahead log, or WAL) | Internal to OBSESC |
We have no role in your account and no access to your logs, queries or results. If you stop using OBSESC, every raw event is still in your bucket in an open format.
For more, see The map and the territory and Storage and formats.
What gets deployed
OBSESC ships as an AWS Marketplace AMI with a CloudFormation template. A default deployment creates:
- One EC2 instance from the
c6infamily (network-optimised, x86_64), running ingest, query and the console on one host. - Three encrypted EBS gp3 volumes for the node’s data.
- A security group that admits shipper and console traffic from a CIDR range you choose.
- An IAM role for the instance. It grants access to OBSESC’s prefixes in your raw bucket and to your KMS key, read access to the optional secrets and parameters you name, Session Manager access, AWS Marketplace metering, and permission to manage EC2 instances and volumes tagged to this stack.
- A daily EBS snapshot policy for the data volumes (on by default).
The S3 bucket is either one you already own (the default) or one the stack creates with a Standard → Standard-IA → Glacier Instant Retrieval lifecycle. You supply the VPC, the subnet and the customer-managed KMS key.
Optional modules add an internal Application Load Balancer for the console, a private DNS name, TLS, and single sign-on through your identity provider. See Deployment (AWS Marketplace).
The stock template deploys a single node. Contact us about multi-node deployments.
How data gets in
The node speaks the protocols your shippers already use. The ones the default security group opens are:
| Protocol | Port | Typical shippers |
|---|---|---|
| OTLP/gRPC | 4317 | OpenTelemetry Collector, OTel SDKs |
| OTLP/HTTP (protobuf only) | 4318 | OpenTelemetry Collector |
Elasticsearch _bulk | 9200 | Filebeat, Logstash, rsyslog (omelasticsearch), Vector’s elasticsearch sink |
The node also listens for Fluent Forward (24224), Splunk HTTP Event Collector (HEC, 8088) and Vector’s native protocol (9000). To use those, you add a rule to the security group yourself. See Supported sources for the full list.
OTLP traces are accepted too. Each span is stored as an ordinary event, unsampled.
How you use it
Once events are flowing, the console lets you:
- Explore any time range and see how each service behaved.
- Spot unusual behaviour and open the raw events behind it.
- Search across services and drill down to the exact events you need.
- Ask What changed?, Seen this before? and What tends to follow? while you investigate.
You can also query the raw events yourself with SQL, through OBSESC or with your own tools over the Parquet files in your bucket.
The console is served by the node on port 18080, the same port as the query API. You can put it behind an internal load balancer with sign-in through your identity provider.
Next steps
- Quick start: the shortest path from subscription to your first event.
- Deployment (AWS Marketplace): the stack parameters, explained.
- Your first logs: point a shipper at OBSESC and confirm events are landing.
- What happens next: what happens to your data after it’s accepted, and what to review in your first week.