Troubleshooting your installation
Initial checksβ
Before diving into complex troubleshooting, ensure the following basic checks are complete:
- Collector Version: Verify you are using a supported and stable version of otelcol-contrib.
- System Requirements: Confirm your environment meets the minimum CPU, memory, and disk space requirements for the expected load.
- Configuration File Location: Ensure the Collector is loading the correct configuration file. The default location varies based on the installation method (e.g., /etc/otelcol/config.yaml for Linux service installations).
- Firewall Rules: Check that inbound and outbound ports used by the Collector (e.g., 4317/4318 for OTLP) are open in your firewall settings.
Reviewing logsβ
Logs are the most critical resource for diagnosing problems. The location of Collector logs depends on how it was installed:
- Systemd Service (Linux):
journalctl -u otelcol-contrib.service. - Windows: In Windows Event Viewer, select Windows Logs > Application, then filter on otelcol-contrib.
- Execute the collector directly from its installation directory (
otelcol-contrib.exe --config config.yaml): Look at the standard output (stdout) or as configured in the--configfile.
Common log messagesβ
Pay close attention to error or warning messages related to:
- Configuration Parsing: Errors here indicate syntax issues (e.g., incorrect YAML indentation) or references to undefined components.
- Receiver Binding: If the Collector cannot bind to the configured port (e.g., port 4317), it suggests another process is using that port or a permission issue.
- Exporter Failures: Errors connecting to the backend usually result in connection refused or timeout messages.
- Processor Errors: Issues during data manipulation or batching can indicate resource constraints or misconfiguration.
Configuration validationβ
A significant portion of Collector issues stem from misconfiguration.
Checking rightsβ
If you do not receive expected logs in Centreon Log Management, check that the otelcol-contrib user has sufficient rights to read the required files, according to the type of receiver. Example:
ls -l /var/log/messages
id otelcol-contrib
usermod -aG root otelcol-contrib
Validating YAML syntaxβ
Use a YAML linter tool to verify the structural integrity of your configuration file. Missing colons, incorrect nesting, or invalid characters can prevent startup.
Checking component integrityβ
Ensure every component listed in the service::pipelines section is defined in the respective receivers, processors, and exporters sections.
A simple configuration example for verification:
receivers:
otlp:
protocols:
grpc:
http:
exporters:
logging:
loglevel: debug
service:
pipelines:
traces:
receivers: [otlp]
exporters: [logging]
Reviewing endpoint and credentialsβ
Check that the exporter configuration includes the correct endpoint URL and the necessary authentication token.
| Component | Information to Check |
|---|---|
| Receivers | Correct protocol (e.g., otlp GRPC/HTTP) and port number |
| Processors | Correct ordering in the pipeline; ensure required sub-settings are present |
| Exporters | Target endpoint URL and port, authnetication token |
Network and connectivityβ
If the Collector starts successfully but no data reaches Centreon Log Management, the issue is likely network-related.
- Check port availability: Use tools like netstat or ss to verify that the Collector process is listening on the configured receiver ports. Example (Linux):
sudo netstat -tuln | grep 4317 - Test backend reachability: From the Collector's host, test connectivity to Log Management's endpoint using tools like ping, telnet, or curl. Example (Testing OTLP Exporter Target):
telnet <backend_ip> 4317(Ensure the connection is established.) - Source agent/application check: Ensure the applications sending data (e.g., instrumented services) are configured to send data to the Collector's IP and port. This is often the most overlooked step.
Advanced Debuggingβ
If basic steps fail, enable detailed debugging.
Set logging to debugβ
Set the loglevel in the Collector's configuration to debug. This provides verbose output, including details about data ingestion and processing.
service:
telemetry:
logs:
level: debug
Using the Health Check extensionβ
If using the Collector Contrib distribution, add the health_check extension to monitor the Collector's operational status.
Add the following to your configuration:
extensions:
health_check:
service:
extensions: [health_check]
Accessing the status at http://localhost:13133 can provide immediate insight into any failing components. The Collector must be running to access the health check endpoint.
See alsoβ
Refer to the official OpenTelemetry documentation.