The Free plan is free forever, and the Enterprise plan is free throughout 2026 — no credit card required. After you accept, AWS redirects you to our registration page to kick off the deployment.
2
Register and launch the CloudFormation stack
On the registration page at app.virtuallog.io/aws-marketplace/register, enter the email address you want tied to this VirtualLog deployment. We use it to send you a Launch Stack URL, pre-populated with your customer ID and a provisioning key.
Click the button; AWS CloudFormation opens in your account with the template pre-filled. Keep the default stack name (virtuallog) and click through to create the stack.
One stack deploys everything VirtualLog needs — VPC, OpenSearch, S3 archive bucket, ECS Fargate service, Network Load Balancer, DynamoDB, and IAM roles. Typical deploy time is around 15 minutes, most of it spent on the OpenSearch domain.
Note
Deleting this stack deletes your logs. If you need to redeploy without losing data, reach out to support@virtuallog.io — a split-stack option that retains data is on the roadmap.
3
Open VirtualLog from the CloudFormation Outputs
Once the stack finishes, that’s where your VirtualLog URL lives — it’s easy to miss on the first deploy.
Open the AWS Console and go to CloudFormation → Stacks.
Select your virtuallog stack.
Switch to the Outputs tab.
Copy the NLBEndpoint value. It’s an AWS load balancer DNS name, looking like virtuallog-nlb-abc123.elb.eu-central-1.amazonaws.com.
Open that endpoint in a browser as http://<NLBEndpoint> (the default stack uses a plain HTTP listener; you’ll add TLS in the custom domain step — coming soon). You’ll land on the VirtualLog sign-in screen.
Sign in with the built-in admin account:
Username: admin
Password: admin
Warning
Change the admin password immediately after your first sign-in. The default credentials are identical for every fresh install.
4
Create an API key
API keys authenticate log ingestion and (optionally) read access. To create one, open Settings → API Keys in the sidebar, then click Create API Key.
Give the key a name you’ll recognise (for example my-app-prod) and pick a role:
INGESTION — can push logs only. Best for application code.
READ_ONLY — can query logs only. Good for dashboards or exporters.
FULL — can read and write. Use sparingly.
Click Create. VirtualLog shows the full key exactly once — it starts with vl_ followed by 64 hex characters.
Warning
Copy the key now and store it somewhere safe (a secrets manager, your CI vault, etc.). Once you close the dialog, only the prefix is displayed in the API Keys list — the full value is never shown again.
5
Send your first log
Logs are sent to POST /logs on your VirtualLog endpoint. Authenticate with your API key in the x-api-key header, and put a JSON object (or an array of them for a batch) in the body.
Go back to VirtualLog and open the Search page (the home page). You should see the log you just sent, within a second or two.
The layout:
Chart at the top — a bar per bucket with event counts. Click any bar to zoom in; drag to box-select a custom range.
Logs table below the chart. Columns: timestamp, level (colour-coded), message. Click any row to expand the full JSON payload.
Attributes and Values panels on the left. Pick a field (for example service), then pick a value to add it as a filter.
Use the time-range picker at the top of the page to scope the view: 10m, 1h, 1d, 7d, or a custom range. Active filters appear as removable chips just below the search bar.
That’s it — you’re up and running. Wire the same POST /logs call into your application, your CI, or a log shipper, and the logs will show up here as they arrive.
Next steps
Configure a custom domain
Put VirtualLog behind logs.yourcompany.com instead of the raw NLB hostname.
Stuck on deployment or have a question we didn’t cover here? Email support@virtuallog.io.
We use cookies to improve your experience and analyze site traffic. By clicking "Accept", you consent to our use of cookies for analytics via Google Analytics. Learn more in our Privacy Policy.