# Nginx Log

本节介绍 Nginx UI 中 Nginx 日志处理和分析功能的配置选项。

## 索引

### IndexingEnabled

- 类型: `boolean`
- 默认值: `false`
- 环境变量: `NGINX_UI_NGINX_LOG_INDEXING_ENABLED`
- 版本: `>= v2.2.0`

此选项启用 Nginx 日志的索引功能，提供高性能的日志搜索和分析能力。

#### 关闭时的行为（基础模式）

当 `IndexingEnabled` 为 `false` 时，Nginx UI 仍会从 Nginx 配置中发现日志入口，并在日志列表中展示。在基础模式下：

- 可以查看已检测到的日志文件列表（基于简单的轮转规则进行分组），但不提供索引指标、文档计数和分片搜索等高级功能。
- 基于解析到的访问/错误日志路径，实时查看（tail）仍可使用。

### IndexPath

- 类型：`string`
- 版本：`>= v2.2.0`

- 默认情况下，Bleve 索引文件存放在 Nginx UI 配置目录下的 `log-index` 目录（例如：`/usr/local/nginx-ui/log-index`）。
- 如果无法确定配置目录，回退路径为应用相对路径的 `./log-index`。

### IncrementalIndexInterval

- 类型：`int`（分钟）
- 默认值：当配置为 `0` 或负数时使用 `15`
- 版本：`>= v2.2.0`

控制增量索引任务扫描访问日志的频率。数值越小，分析数据越接近实时，但后台 CPU 占用越高；数值越大则降低 CPU 占用，但分析数据更新会更滞后。配置为 `0` 或负数时会自动回退到安全的默认 15 分钟。

## 系统要求

### 最低要求
- **CPU**: 最少 1 核心
- **内存**: 最少 2GB RAM
- **存储**: 至少 20GB 可用磁盘空间

### 推荐配置
- **CPU**: 建议 2 核心或以上
- **内存**: 建议 4GB RAM 或以上
- **存储**: 建议使用 SSD 以获得更好的 I/O 性能

## 性能指标

基于生产环境验证和全面测试（M2 Pro 12核心，2025年9月）：

| 指标 | 数值 | 说明 |
|------|------|------|
| **生产环境管道** | **~10,000 条记录/秒** | 包含搜索功能的完整索引 |
| **解析器性能** | **~932K 条记录/秒** | 仅流式处理 |
| **CPU 利用率** | **90%+** | 优化的多核处理 |
| **内存效率** | **零分配设计** | 高级内存池系统 |
| **自适应扩展** | **12→36 工作线程** | 动态资源优化 |
| **批处理优化** | **1000→6000** | 实时吞吐量调优 |

## 功能特性

启用高级索引后，您将获得以下功能：

### 核心能力
- **零分配管道** - 优化内存使用以实现高性能处理
- **动态分片管理** - 智能分布日志数据到各个分片
- **增量索引扫描** - 仅索引新的日志条目以提高效率
- **自动日志轮转检测** - 无缝处理轮转的日志文件

### 搜索与分析
- **高级搜索和过滤** - 支持多条件的复杂查询
- **支持正则表达式的全文搜索** - 强大的模式匹配能力
- **跨文件时间线关联** - 分析多个日志文件中的事件
- **错误模式识别** - 自动检测错误模式

### 数据处理
- **压缩日志文件支持** - 支持 gzip 和其他压缩格式
- **离线 GeoIP 分析** - 无需外部服务的位置分析
- **实时分析仪表板** - 实时监控和统计
- **多维数据可视化** - 高级图表和图形

### 使用注意事项

::: tip 性能影响提示
高级索引提供企业级性能，完整日志处理吞吐量达到 **~10,000 条记录/秒**。系统会根据您的硬件自动优化 CPU 利用率（90%+）并调整工作线程数量（12→36）以获得最佳性能。
:::

::: info 开源限制
- 高级日志索引功能对所有用户免费开源
- 我们不接受该功能的功能请求
- 如需商业或专业使用，请联系 business@uozi.com
:::

::: warning 初始索引
当您启用高级索引时，系统将立即开始索引现有日志文件。此初始索引过程可能会暂时影响系统性能。
:::

