Overview
This documentation provides detailed instructions on configuring the OpenTelemetry Collector to read logs from a file and push them to SigNoz, enabling you to analyze your application logs effectively.
Sample Log File
As an example, we can create a sample log file called app.log
with the following dummy data:
This is log line 1
This is log line 2
This is log line 3
This file represents a log file of your application. You can choose any file that contains your application's log entries.
Setup
1. Install OpenTelemetry Collector
The OpenTelemetry Collector provides a vendor-neutral way to collect, process, and export your telemetry data such as logs, metrics, and traces.
Follow this guide to install the OpenTelemetry Collector as an agent on your Virtual Machine.
2. Configure Filelog Receiver
Modify the config.yaml
file created during the installation of the OpenTelemetry Collector to include the filelog
receiver. Specify the path to your app.log
file and set the start_at
parameter.
receivers:
filelog/app:
include: [ /tmp/app.log ] # Include the full path to your log file
start_at: end
The start_at: end
configuration ensures that only newly added logs are transmitted. To include historical logs, set start_at
to beginning
.
3. Update Pipeline Configuration
Update the pipeline settings in config.yaml
to include the new filelog receiver:
service:
pipelines:
logs:
receivers: [otlp, filelog/app]
processors: [batch]
exporters: [otlp]
Restart the OpenTelemetry Collector for the changes to take effect. Follow this guide for restart instructions.
4. Verify Export
The logs will be visible in the Logs Tab of SigNoz. As more entires are added to app.log
it will reflect Logs tab.

Scenarios
Scenario 1: SigNoz on the Same Host
Install SigNoz
Follow this guide to install self-hosted SigNoz.
Modify Docker Compose File
Edit the docker-compose.yaml
file in the deploy/docker
directory to mount your application's log file to the tmp
directory of the OpenTelemetry Collector.
volumes:
- ~/<path>/app.log:/tmp/app.log
Replace <path>
with the actual path of your log file.
Add Filelog Receiver
Update otel-collector-config.yaml
with the following configuration:
receivers:
filelog:
include: [ /tmp/app.log ]
start_at: end
The start_at: end
configuration ensures only newly added logs are transmitted. To include historical logs, set start_at
to beginning
.
Update Pipeline Configuration
Modify the pipeline to include the filelog receiver:
service:
pipelines:
logs:
receivers: [otlp, filelog]
processors: [batch]
exporters: [clickhouselogsexporter]
Restart the OpenTelemetry Collector for the changes to take effect.
Scenario 2: SigNoz on a Different Host
Create OTel Collector Configuration
Create an otel-collector-config.yaml
file:
receivers:
filelog:
include: [ /tmp/app.log ]
start_at: end
processors:
batch:
send_batch_size: 10000
send_batch_max_size: 11000
timeout: 10s
exporters:
otlp/log:
endpoint: http://<host>:<port>
tls:
insecure: true
service:
pipelines:
logs:
receivers: [filelog]
processors: [batch]
exporters: [otlp/log]
To use https
, provide the certificate and key. Refer to this guide for details.
Mount Log File and Run Collector
Run the following command to start the OpenTelemetry Collector in Docker:
docker run -d --name signoz-host-otel-collector --user root -v $(pwd)/app.log:/tmp/app.log:ro -v $(pwd)/otel-collector-config.yaml:/etc/otel/config.yaml signoz/signoz-otel-collector:0.88.11
Adding more entries to app.log
will make them visible in SigNoz UI.
