Files
compose-anything/apps/openobserve/README.zh.md
2026-01-18 23:48:30 +08:00

166 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OpenObserve
[OpenObserve](https://openobserve.ai/) 是一个专为日志、指标、追踪、分析等构建的云原生可观测平台。与 Elasticsearch、Splunk 和 Datadog 等传统可观测解决方案相比,它提供了 10 倍更简单的部署、140 倍更低的存储成本和高性能。
## 功能特性
- **统一可观测性**日志、指标、追踪和前端监控RUM集成在单一平台
- **成本效益**:通过 Parquet 列式存储和 S3 原生架构,存储成本比 Elasticsearch 低 140 倍
- **高性能**:查询性能优于 Elasticsearch同时仅使用 1/4 的硬件资源
- **单一二进制**:从可扩展至 TB 级的单一二进制开始,或部署高可用模式以处理 PB 级工作负载
- **易于使用**:无需复杂调优,直观的 UI支持 SQL 和 PromQL
- **OpenTelemetry 原生**:内置 OTLP 日志、指标和追踪采集
- **灵活存储**支持本地磁盘、S3、MinIO、GCS 或 Azure Blob 存储
- **生产就绪**:全球数千个部署,最大部署每天处理 2 PB 数据
## 快速开始
1. 复制环境变量示例文件:
```bash
cp .env.example .env
```
2. 编辑 `.env` 并配置:
- `ZO_ROOT_USER_EMAIL`:管理员邮箱(修改默认值)
- `ZO_ROOT_USER_PASSWORD`:管理员密码(修改默认值,最少 8 个字符且包含特殊字符)
- `OPENOBSERVE_PORT_OVERRIDE`Web UI 端口默认5080
3. 启动 OpenObserve
```bash
docker compose up -d
```
4. 访问 Web UI`http://localhost:5080`
5. 使用配置的凭据登录
## 配置说明
### 基础配置
| 环境变量 | 说明 | 默认值 |
| --------------------------- | -------------------- | ------------------ |
| `OPENOBSERVE_VERSION` | OpenObserve 镜像版本 | `v0.50.0` |
| `OPENOBSERVE_PORT_OVERRIDE` | Web UI 端口 | `5080` |
| `ZO_ROOT_USER_EMAIL` | 根用户邮箱 | `root@example.com` |
| `ZO_ROOT_USER_PASSWORD` | 根用户密码 | `Complexpass#123` |
| `ZO_DATA_DIR` | 容器内数据目录 | `/data` |
### S3 对象存储(可选)
对于生产部署,配置兼容 S3 的对象存储:
| 环境变量 | 说明 |
| ------------------- | ------------- |
| `ZO_S3_BUCKET_NAME` | S3 存储桶名称 |
| `ZO_S3_REGION_NAME` | S3 区域 |
| `ZO_S3_ACCESS_KEY` | S3 访问密钥 |
| `ZO_S3_SECRET_KEY` | S3 密钥 |
配置 S3 后OpenObserve 将使用它进行数据存储,而不是本地卷。
### 资源限制
根据工作负载调整 CPU 和内存限制:
| 环境变量 | 说明 | 默认值 |
| -------------------------------- | --------------- | ------ |
| `OPENOBSERVE_CPU_LIMIT` | 最大 CPU 核心数 | `2.0` |
| `OPENOBSERVE_CPU_RESERVATION` | 预留 CPU 核心数 | `0.5` |
| `OPENOBSERVE_MEMORY_LIMIT` | 最大内存 | `2G` |
| `OPENOBSERVE_MEMORY_RESERVATION` | 预留内存 | `512M` |
## 数据采集
OpenObserve 支持多种采集方式:
### OpenTelemetry (OTLP)
发送 OTLP 数据到 `http://localhost:5080/api/default/` 并进行身份验证。
### 通过 HTTP 采集日志
```bash
curl -u root@example.com:Complexpass#123 \
-H "Content-Type: application/json" \
http://localhost:5080/api/default/logs/_json \
-d '[{"message": "Hello OpenObserve", "level": "info"}]'
```
### Prometheus 远程写入
配置 Prometheus 使用 OpenObserve 作为远程写入目标。
更多采集方法请参见[官方文档](https://openobserve.ai/docs/ingestion/)。
## 架构
OpenObserve 通过以下方式实现其性能和成本效率:
- **Parquet 列式存储**:高效压缩和查询性能
- **S3 原生设计**:利用廉价对象存储与智能缓存
- **Rust 构建**:内存安全、高性能实现
- **智能分区和索引**:大多数查询可将搜索空间减少高达 99%
- **无状态架构**:支持快速扩展和灾难恢复
## 数据卷
- `openobserve_data`:使用本地磁盘存储时存储所有数据(配置 S3 时不使用)
## 安全注意事项
1. **修改默认凭据**:在生产环境中务必修改 `ZO_ROOT_USER_EMAIL` 和 `ZO_ROOT_USER_PASSWORD`
2. **密码要求**:使用强密码,至少 8 个字符且包含特殊字符
3. **网络安全**:生产部署时考虑使用带 TLS 的反向代理
4. **S3 凭据**:安全存储 S3 凭据,在可能的情况下考虑使用 IAM 角色
5. **数据不可变性**:所有采集的数据在设计上都是不可变的,以满足审计合规要求
## 升级
升级到新版本:
1. 在 `.env` 中更新 `OPENOBSERVE_VERSION`
2. 拉取新镜像并重启:
```bash
docker compose pull
docker compose up -d
```
OpenObserve 会自动处理模式迁移,无需手动步骤。
## 企业版功能
企业版包含:
- 单点登录SSOOIDC、OAuth、SAML、LDAP/AD
- 高级 RBAC基于角色的访问控制与自定义角色
- 审计跟踪:不可变审计日志
- 联合搜索:跨多个集群查询
- 敏感数据脱敏:自动 PII 脱敏
- 带 SLA 保证的优先支持
详情请参见[价格页面](https://openobserve.ai/downloads/)。
## 许可证
- 开源版AGPL-3.0
- 企业版:商业许可证
## 相关链接
- [官方网站](https://openobserve.ai/)
- [文档](https://openobserve.ai/docs/)
- [GitHub 仓库](https://github.com/openobserve/openobserve)
- [Slack 社区](https://short.openobserve.ai/community)
- [客户案例](https://openobserve.ai/customer-stories/)
## 支持
- 通过 [Slack](https://short.openobserve.ai/community) 获得社区支持
- GitHub [Issues](https://github.com/openobserve/openobserve/issues)
- GitHub [Discussions](https://github.com/openobserve/openobserve/discussions)
- 商业许可证提供企业支持