Logstash Log Forwarder
Logstash can be configured to send data to RunReveal using the HTTP output plugin. It collects, parses, filters, and forwards logs to external systems—ideal for streaming security and application events into RunReveal.
Quick Start
This guide mirrors a typical production setup. It uses absolute paths, environment variables for secrets, and retry/timeouts. Optional persistent queues are included for durability.
Step 1: Create a Webhook Source in RunReveal
- Navigate to RunReveal: Go to your RunReveal dashboard
- Create Source: Click on "Sources" in the left sidebar
- Add Webhook: Create a source for "Structured Webhook or Generic Webhook" based on your data format.
- Configure: Give your webhook a name and description
- Copy URL: Copy the generated webhook URL to use in your configuration. (It's always available after you save the source)
Step 2: Install Logstash
Step 3: Create a Test Log (RunReveal Schema)
Create a JSON Lines file that matches RunReveal's ** Webhooks** schema (fields like eventName, eventTime, actor, src, service).
If you already have application logs, you can also transform them into this schema with Logstash filters. See the “Optional: Transform JSON to structured log format” section below.
Step 4: Configure Logstash
Use absolute paths, env vars for secrets, and retry/timeouts. Choose one of the following tabs.
Basic Configuration — No Authentication
Notes:
- Use absolute paths for inputs (
/var/log/...). - Never hardcode secrets; prefer environment variables (
$\{YOUR_BEARER_TOKEN\}). - Retries and timeouts improve resilience in production.
- If your environment proxies outbound traffic, set
HTTP_PROXY/HTTPS_PROXYaccordingly.
Step 5: (Optional) Enable Persistent Queues
Persistent queues protect against data loss during outages. Configure them in your Logstash settings file (not the pipeline). On many systems this is /etc/logstash/logstash.yml. For user-scoped installs, use $LS_SETTINGS_DIR/logstash.yml.
Restart the service after changing settings:
If you run Logstash manually (not as a service), set LS_SETTINGS_DIR to point to a folder containing your logstash.yml.
Step 6: Validate & Start Logstash
Validate:
Start:
The
fileinput tails new lines. Append to the application log file to trigger ingest:
Step 7: Verify Delivery in RunReveal
- Open Sources → your ** Webhook** source card
- Confirm the Last Event time updates
- Explore logs in Explorer. A starter query:
Optional: Transform JSON to structured log format
If your existing app logs don’t already match the schema, transform them in Logstash.
Example json log to remap
Mapping pipeline → schema
Restart or re-run Logstash with this mapping to produce Webhook events for RunReveal.
Running as a Service (systemd)
For production, place your pipeline config in /etc/logstash/conf.d/runreveal.conf and manage via systemd:
Export your environment variables in a file sourced by the service (e.g., /etc/sysconfig/logstash or /etc/default/logstash) depending on your distro/service wrapper, or use the native mechanism for passing env vars to the Logstash service.
Troubleshooting
No configuration found
- Use absolute path with
-forcdinto the directory containinglogstash.conf - Avoid mixing
-fandpipelines.ymlunless intended
No new events read
- The
fileinput tails; append new lines or usesincedb_path => "/dev/null"for test reruns - Check file permissions and SELinux/AppArmor if applicable
HTTP/SSL errors
- Verify the webhook URL and that outbound egress is allowed
- For custom CAs, configure JVM truststore env or plugin SSL settings
Check pipeline health
Debug run