1. Les points de réception #
Quatre façons d'envoyer vos données.
Vue d'ensemble #
| Format | Chemin | Essai |
|---|---|---|
| JSON | /api/default/<flux>/_json | Testé |
| Bulk, compatible Elasticsearch | /api/default/_bulk | Testé |
| OTLP HTTP | /api/default/v1/logs, /v1/metrics, /v1/traces | Testé |
| Prometheus remote write | /api/default/prometheus/api/v1/write | Documenté |
2. OpenTelemetry #
La voie recommandée pour les applications.
Le Collector vers OpenObserve #
L'exportateur otlphttp ajoute lui-même /v1/logs, /v1/metrics et /v1/traces : indiquez seulement la base /api/default. L'en-tête stream-name choisit le flux des logs et des traces.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
batch:
exporters:
otlphttp/openobserve:
endpoint: http://openobserve:5080/api/default
headers:
Authorization: "Basic ${env:O2_AUTH}"
stream-name: applis
service:
pipelines:
logs:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/openobserve]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/openobserve]
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/openobserve]export O2_AUTH=$(printf 'root@example.com:Complexpass#123' | base64)Où arrivent les données ? #
| Signal | Résultat constaté |
|---|---|
| Logs | Flux nommé par stream-name, avec body, severity et service_name |
| Traces | Flux de type traces (par défaut default) |
| Métriques | Un flux de type metrics par métrique, interrogeable en PromQL |
3. Prometheus et Fluent Bit #
Réutiliser les collecteurs en place.
Prometheus remote write #
remote_write:
- url: http://openobserve:5080/api/default/prometheus/api/v1/write
basic_auth:
username: root@example.com
password: Complexpass#123Fluent Bit #
La sortie http vise le point _json. Json_date_key _timestamp garde l'horodatage d'origine.
[OUTPUT]
Name http
Match *
URI /api/default/applis/_json
Host openobserve
Port 5080
tls Off
Format json
Json_date_key _timestamp
Json_date_format iso8601
HTTP_User root@example.com
HTTP_Passwd Complexpass#123Filebeat ou tout client bulk #
Le point _bulk reprend le format d'Elasticsearch : la migration d'un collecteur en place est souvent un simple changement d'adresse. Le nom de l'index devient le nom du flux.
cat > lot.ndjson <<'EOF'
{"index":{"_index":"applis"}}
{"level":"warn","message":"file presque pleine"}
EOF
curl -u 'root@example.com:Complexpass#123' \
-H 'Content-Type: application/x-ndjson' \
--data-binary @lot.ndjson http://localhost:5080/api/default/_bulk4. Authentification #
Ne pas tout envoyer avec le compte racine.
Utiliser un jeton d'ingestion #
Chaque utilisateur dispose d'un jeton d'ingestion, visible dans l'interface sous Data Sources ou via l'API. Créez un compte dédié à la collecte plutôt que d'utiliser le mot de passe racine.
curl -s -u 'root@example.com:Complexpass#123' http://localhost:5080/api/default/passcode