--- title: "VictoriaLogs" description: "Connect VictoriaLogs so OpenSRE can pull structured log evidence during investigations" --- OpenSRE queries [VictoriaLogs](https://docs.victoriametrics.com/victorialogs/) using LogsQL to retrieve structured log evidence — correlating recent application errors, request anomalies, and stream-level events with the alert under investigation. ## Prerequisites - A reachable VictoriaLogs instance (e.g. `http://vmlogs:9428`) - LogsQL knowledge for any custom queries you want OpenSRE to run ## Setup ### Option 1: Environment variables Add to your `.env`: ```bash VICTORIA_LOGS_URL=http://vmlogs.monitoring.svc:9428 # Optional — only set this if your deployment is multi-tenant. # Single-tenant clusters should leave it unset; OpenSRE will not send # the AccountID header at all. # VICTORIA_LOGS_TENANT_ID=acme ``` | Variable | Default | Description | | --- | --- | --- | | `VICTORIA_LOGS_URL` | — | **Required.** Base URL of your VictoriaLogs instance | | `VICTORIA_LOGS_TENANT_ID` | _(unset)_ | Optional. Sent as the `AccountID` header on multi-tenant deployments | ### Option 2: Persistent store ```json { "version": 1, "integrations": [ { "id": "victoria-logs-prod", "service": "victoria_logs", "status": "active", "credentials": { "base_url": "http://vmlogs.monitoring.svc:9428" } } ] } ``` ## Verify ```bash opensre integrations verify victoria_logs ``` Expected output: ``` Service: victoria_logs Status: passed Detail: Connected to VictoriaLogs at http://vmlogs.monitoring.svc:9428. ``` ## How it works in investigations When VictoriaLogs is configured, the `victoria_logs_query` tool becomes available to the investigation agent. It runs LogsQL queries against `/select/logsql/query` and returns structured rows — defaulting to a wildcard match over the past hour, but the agent narrows the query based on alert context (service, level, trace ID, time window). Typical agent uses: - Pull recent error-level logs for the affected service to surface stack traces - Filter by request ID or trace ID to follow a single failing transaction across services - Compare log volume in the incident window against a known-good baseline to spot regressions ## Troubleshooting | Symptom | Fix | | --- | --- | | **Status: missing** | Set `VICTORIA_LOGS_URL` or add a `victoria_logs` entry to your integrations store | | **Connection refused** | Verify the URL is reachable from this host; check firewall rules | | **404 on `/select/logsql/query`** | Confirm you are pointing at VictoriaLogs (not VictoriaMetrics for time-series); they expose different endpoints | | **Empty rows** | Normal when no logs match — widen the time range with a longer `start` (e.g. `-24h`) or relax the LogsQL filter |