Skip to main content

OpenObserve

  • zinclabs/openobserve
    • Apache-2.0, Rust
    • 原 ZincObserve
    • 从 ZincSearch 演化而来
    • Log & Trace & Metrics
    • 存储 Parquet + Datafusion
  • HA
    • Etcd + 对象存储
    • 组件 Ingester、Querier、Compactor、AlterManager
caution
  • 接受最近 5h 内的数据 - ZO_INGEST_ALLOWED_UPTO
  • 还处于相当早期阶段
    • 日志功能相对完善
    • 其他基本可用
  • CE 功能限制
    • 无 Elastic 兼容接口
    • Cloud 在 CE 基础上加 Proxy 做了额外的权限功能和 UI
    • 无 Grafana 插件
  • Metric 可能写爆磁盘 - 暂时不建议使用
  • 会 flat object - 例如 {"request":{"url":"https://wener.me"}} -> {"request_url":"https://wener.me"}
ZO_ROOT_USER_PASSWORD=$(uuidgen)
docker run --rm -it \
-v $PWD/data:/data \
-e ZO_TELEMETRY=false \
-e ZO_DATA_DIR=/data \
-e [email protected] \
-e ZO_ROOT_USER_PASSWORD=$ZO_ROOT_USER_PASSWORD \
-e ZO_COMPACT_DATA_RETENTION_DAYS=30 \
-p 5080:5080 \
--name openobserve zinclabs/openobserve:latest
envdefaultnote
主要配置
ZO_COMPACT_DATA_RETENTION_DAYS保留多少天
ZO_TELEMETRYtrue
ZO_INGEST_ALLOWED_UPTO5允许插入 5h 内数据
ZO_DATA_DIR./data/zincobserve/
其他配置
ZO_LOCAL_MODEtrue
ZO_LOCAL_MODE_STORAGEdisks3
ZO_NODE_ROLEall
ZO_INSTANCE_NAME
ZO_HTTP_PORT5080
ZO_GRPC_PORT5081
ZO_GRPC_TIMEOUT600
ZO_ROUTE_TIMEOUT600
ZO_GRPC_ORG_HEADER_KEYzinc-org-id
ZO_BASE_URI
ZO_DATA_WAL_DIR./data/zincobserve/wal/$ZO_DATA_DIR/wal
ZO_DATA_STREAM_DIR./data/zincobserve/stream/$ZO_DATA_DIR/stream
ZO_TIME_STAMP_COL_timestamp
ZO_UI_ENABLEDtrue
ZO_TRACING_ENABLEDfalse发送
OTEL_OTLP_HTTP_ENDPOINT
ZO_JSON_LIMIT209715200200M
ZO_PAYLOAD_LIMIT209715200200M
ZO_MAX_FILE_SIZE_ON_DISK1010mb
ZO_MAX_FILE_RETENTION_TIME600600s
ZO_FILE_PUSH_INTERVAL1010s
ZO_COMPACT_ENABLEDtrue
ZO_MEMORY_CACHE_ENABLEDtrue
ZO_PROMETHEUS_ENABLEDfalse/metrics
RUST_LOGinfo
ZO_SLED_DATA_DIR./data/zincobserve/sled/
ZO_SLED_PREFIX/zinc/oxide/
ZO_COMPACT_ENABLEDtrue
ZO_COMPACT_INTERVAL60
ZO_COMPACT_MAX_FILE_SIZE256多少 MB 时 compact
docker run --rm -it \
-v $PWD/data:/data \
-e ZO_DATA_DIR="/data" \
-e [email protected] -e ZO_ROOT_USER_PASSWORD=PASSWORD \
-e ZO_TELEMETRY=false \
-p 5080:5080 \
--name openobserve zinclabs/openobserve:latest
POST /api/{organization}/{stream}/_json

[{}]
  • organization
    • default
    • 如果不存在会自动创建
  • stream
    • default
    • 如果不存在会自动创建
# 测试
curl -X POST zincobserve:5080/api/default/default/_json --user $ZO_USER --password $ZO_PASSWORD -d '[]'
  • $DATA/stream/files/ORG/{logs|metrics}/NAME/YRAR/MONTH/DAY/HOUR/ID.parquet
  • $DTAT/db
  • $DTAT/wal

配置

ZO_S3_SERVER_URL=http://minio:9000
ZO_S3_ACCESS_KEY=
ZO_S3_SECRET_KEY=
ZO_S3_BUCKET_NAME=openobserve
ZO_S3_PROVIDER=minio
ZO_S3_FEATURE_FORCE_PATH_STYLE=true

API

采集数据大小

  • 采集数据大小 - JSON
  • 实际数据大小 - parquet

_timestamp