Amazon Linux 1 does not support native installation of the Observe Agent or Fluent Bit due to missing system-level dependencies (such as systemd). The recommended and fully supported deployment method for this OS is to run the Observe Agent in a Docker container. This approach avoids OS-level limitations and provides a consistent deployment environment.
This guide walks through preparing configuration, running the agent in Docker, and verifying successful operation. It also includes optional notes for Jenkins environments.
Prerequisites
- Amazon Linux 1 host with Docker installed
- Access to your Observe tenant
- An Observe ingest token
- (Optional) Jenkins installed, if you plan to ingest Jenkins logs/metrics
1. Create Configuration Files
a. observe-agent.yaml
Create a file named observe-agent.yaml and populate it with the following content.
Replace ${TOKEN} and YOUR_TENANT_ID with appropriate values.
token: "${TOKEN}"
observe_url: https://YOUR_TENANT_ID.collect.observeinc.com/
application:
RED_metrics:
enabled: true
debug: false
forwarding:
enabled: true
endpoints:
grpc: 0.0.0.0:4317
http: 0.0.0.0:4318
metrics:
output_format: otel
traces:
max_span_duration: 1h
health_check:
enabled: true
endpoint: 0.0.0.0:13133
path: /status
host_monitoring:
enabled: true
logs:
auto_multiline_detection: false
enabled: true
exclude: []
include:
- /hostfs/var/log/**/*.log
- /hostfs/var/log/syslog
- /hostfs/var/lib/jenkins/**/*.log
- /hostfs/var/lib/jenkins/jobs/**/log
metrics:
host:
enabled: true
process:
enabled: true
internal_telemetry:
enabled: true
logs:
enabled: true
encoding: console
level: info
metrics:
enabled: true
host: 0.0.0.0
level: detailed
port: 8888
otel_config_overrides: {}
resource_attributes: {}
self_monitoring:
enabled: true
Important:
Setting the forwarding endpoints to 0.0.0.0 (instead of localhost) is critical—this resolves common ingestion and connectivity issues when running in Docker.
b. .env File
Create a .env file in the same directory:
TOKEN=your_observe_token_here
2. Run the Observe Agent Container
Standard Networking
sudo docker run \
--detach \
--pid=host \
--restart=unless-stopped \
-v /proc:/hostfs/proc:ro \
-v /var/lib/docker:/hostfs/var/lib/docker:ro \
-v /var/log:/hostfs/var/log:ro \
-v /var/lib/jenkins:/hostfs/var/lib/jenkins:ro \
-v "${PWD}/observe-agent.yaml:/etc/observe-agent/observe-agent.yaml" \
--env-file .env \
-p 4317:4317 \
-p 4318:4318 \
-p 13133:13133 \
YOUR_IMAGE_REGISTRY/observeinc/observe-agent:2.8.1
Alternative: Host Networking
If you encounter issues with Docker port binding or firewall behavior, switch to host networking:
sudo docker run \
--detach \
--pid=host \
--restart=unless-stopped \
--network host \
-v /proc:/hostfs/proc:ro \
-v /var/lib/docker:/hostfs/var/lib/docker:ro \
-v /var/log:/hostfs/var/log:ro \
-v /var/lib/jenkins:/hostfs/var/lib/jenkins:ro \
-v "${PWD}/observe-agent.yaml:/etc/observe-agent/observe-agent.yaml" \
--env-file .env \
YOUR_IMAGE_REGISTRY/observeinc/observe-agent:2.8.1
3. Verify the Agent is Running
Check the container
sudo docker ps
Look for the Observe Agent container in the output.
Verify listening ports
sudo ss -ltnp | grep :4318
sudo ss -ltnp | grep :4317
sudo ss -ltnp | grep :13133
These confirm:
- OTLP gRPC (4317)
- OTLP HTTP (4318)
- Health check endpoint (13133)