> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bronto.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure Virtual Machines Logs and Traces

> Choose the right ingestion path for system logs, application logs, and distributed traces from Azure Virtual Machines and VM Scale Sets.

Azure Virtual Machines and VM Scale Sets emit OS / system logs and application log files, and — when your applications are instrumented — distributed traces. Because you control the compute, a collector can run directly on the instance.

## Recommended method

[**Self-Managed OTel Collector**](./azure-otel#self-managed-opentelemetry-collector) — install the OpenTelemetry Collector as a systemd service (Linux) or a Windows service to tail log files, accept OTLP from local applications, and ship logs and traces to Bronto. For VM Scale Sets, bake the collector into your image or install it via a custom-script extension or cloud-init so every instance starts the collector on boot. Use the same `service.name` / `service.namespace` routing as your other OTel workloads (see [Data Organization](/Search-and-Visualize/Partitions)).

On **Windows** VMs, collect Windows Event Log channels (Application, System, Security) with the `windowseventlog` receiver and file-based logs such as IIS access logs with the `filelog` receiver — see [Collecting Windows OS Logs](./azure-windows-logs).

## Alternatives

* [**Azure Event Hub Forwarder**](./azure-client) — for VM platform / diagnostic logs exported through Azure Monitor diagnostic settings.

See [Ingesting Azure Data into Bronto](./azure-overview) for the full service-to-method mapping.

## References

* [Monitor virtual machines with Azure Monitor](https://learn.microsoft.com/en-us/azure/azure-monitor/vm/monitor-virtual-machine)
