Caso necessite configurar uma EC2, verifique a documentação da AWS, porém antes de concluir a criação, certifique-se de:
- Realizar a configuração do User Data, conforme a ceção Configurando o User Data da EC2
- Habilitar tráfego de entrada para TCP 4318 e TCP 4317 no security group.
- Habilitar o IP público.
Para automatizar a configuração do OpenTelemetry Collector, isto é, não precisar se conectar na máquina e realizar cada passo manualmente, é possível utilizar o campo de “User Data” que será um script executado ao inicializar a máquina.
Crie uma cópia do script user_data.sh, e edite-a, substituindo o
<TENANT_ID>
pelo nome da organização, que será igual ao valor emX-Scope-OrgId: <TENANT_ID-here>
e<YOUR-TOKEN>
pelo valor emAuthorization: Bearer <YOUR-TOKEN-here>
, ambos fornecidos ao realizar o cadastro da organization pelo time da Elven Works.Copie o script editado dentro do campo User Data, na seção Advanced Details durante a criação da EC2:
#!/bin/bash
# Update packages and install Docker
apt-get update -y
apt-get install docker.io -y
# Add the ubuntu user to the docker group
usermod -aG docker $USER
# Create the otel-config.yaml file
cat < /home/ubuntu/otel-config.yaml
receivers:
otlp:
protocols:
grpc:
endpoint: "0.0.0.0:4317"
http:
endpoint: "0.0.0.0:4318"
exporters:
otlphttp:
endpoint: https://tempo.elvenobservability.com/http
headers:
X-Scope-OrgID: ""
Authorization: "Bearer "
prometheusremotewrite:
endpoint: https://mimir.elvenobservability.com/api/v1/push
headers:
X-Scope-OrgID: ""
Authorization: "Bearer "
loki:
endpoint: "http://loki.elvenobservability.com/loki/api/v1/push"
default_labels_enabled:
exporter: false
job: true
headers:
X-Scope-OrgID: ""
Authorization: "Bearer "
processors:
batch: {}
resource:
attributes:
- action: insert
key: loki.tenant
value: host.name
filter:
metrics:
exclude:
match_type: regexp
metric_names:
- "go_.*"
- "scrape_.*"
- "otlp_.*"
- "promhttp_.*"
service:
pipelines:
metrics:
receivers: [otlp]
processors: [batch, filter]
exporters: [prometheusremotewrite]
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp]
logs:
receivers: [otlp]
processors: [resource, batch]
exporters: [loki]
EOF
# Run Otel Collector Contrib using Docker
docker run -d --name otel-collector-contrib \
-p 4317:4317 -p 4318:4318 \
-v /home/ubuntu/otel-config.yaml:/etc/otel-config.yaml:ro \
otel/opentelemetry-collector-contrib:latest \
--config /etc/otel-config.yaml
# Configure Docker to automatically start on boot
sudo systemctl enable docker