feat: add openlit & openobserve & buildingai

This commit is contained in:
Sun-ZhenXing
2026-01-15 09:12:18 +08:00
parent b3c2708a53
commit 3efc2150fe
14 changed files with 1741 additions and 0 deletions

View File

@@ -0,0 +1,165 @@
# 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` | 根用户邮箱 | `admin@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 admin@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)
- 商业许可证提供企业支持