Stream Activity events from Aptible to any Logstash-supported destination using Aptible’s activity-forwarder container. The forwarder uses Filebeat (HTTPJSON input) and Logstash to poll the Activity API and forward events to a configurable output.
Prerequisites
Supported Destinations
This guide includes configuration for Sumo Logic. For other providers, contact Aptible Support for guidance.
Setup
Step 1: Create an App
Create a new Account and App on Aptible to host the forwarder. This App will have access to a long-term token with full visibility into your organization’s Activity, so only grant access to its Environment to roles and users for whom that level of access is appropriate.
Do not add a Log Drain to this Account yet. The forwarder starts in a preview mode that prints the initial backfill window (the last 30 days of activity by default) to stdout, which could be tens or hundreds of thousands of lines.
Step 2: Deploy the Forwarder
Deploy the forwarder image with your activity token:
aptible deploy --app ${HANDLE} --docker-image aptible/activity-forwarder \
"APTIBLE_ACTIVITY_ACCESS_TOKEN=long_term_token_placeholder"
Set the service to use a simple health check and a longer stop timeout to handle releases and restarts gracefully:
aptible services:settings --app ${HANDLE} cmd --simple-health-check --stop-timeout 60
Step 4: Verify the Connection
Stream the app’s logs and confirm that recent activities appear. Events should show up within about two minutes:
aptible logs --app ${HANDLE}
Connected to logs from log-tail-zyvwad
User Login by Alex Kubacki at 2026-03-18T20:20:26.312Z
App Configure by Alex Kubacki at 2026-03-18T20:20:32.823Z
Step 5: Request Persistent Storage
Contact Aptible Support to attach a persistent volume to this container before proceeding. Without persistent storage, the forwarder’s cursor resets on every restart, causing it to re-send the last 30 days of activity to your destination.
Set OUTPUT_CONFIG to forward events to your provider. The value should be a complete Logstash output { ... } block.
Sumo Logic
Set up a new HTTP source in Sumo Logic and copy the pre-signed URL. The default settings will work. Then configure the output:
aptible config:set --app ${HANDLE} OUTPUT_CONFIG='output {
http {
url => "https://endpoint4.collection.sumologic.com/receiver/v1/http/YOUR_TOKEN"
http_method => "post"
format => "json"
content_type => "application/json"
}
}'
Step 7: Confirm Events Are Arriving
Verify that activity events are appearing in your destination. The initial backfill covers 30 days by default, and new completed activity typically appears within about two minutes.
Step 8: Enable Cursor Persistence
After persistent storage is attached (Step 5), disable cursor cleanup so the forwarder resumes from its saved position after restarts instead of re-importing the backfill window:
aptible config:set --app ${HANDLE} CLEAN_CURSOR=false