amir20/dozzle
GitHub: amir20/dozzle
一款轻量级的 Web 端容器日志实时查看器,专注于即时调试与监控,无需搭建复杂的日志收集系统即可在浏览器中直接观测容器输出。
Stars: 12283 | Forks: 528
# Dozzle - [dozzle.dev](https://dozzle.dev/)
Dozzle 是一个轻量级的基于 Web 的实时监控 Docker 日志的应用程序。它不存储任何日志文件——其设计纯粹用于实时查看日志。
https://github.com/user-attachments/assets/66a7b4b2-d6c9-4fca-ab04-aef6cd7c0c31
[](https://hub.docker.com/r/amir20/dozzle/)
[](https://hub.docker.com/r/amir20/dozzle/)
[](https://hub.docker.com/r/amir20/dozzle/)

## 功能
- 针对容器名称的智能模糊搜索
- 使用正则表达式搜索日志
- 使用 [SQL 查询](https://dozzle.dev/guide/sql-engine) 搜索日志
- 内存占用小
- 分屏查看多个日志
- 包含内存和 CPU 使用情况的实时统计
- 支持 forward proxy 授权的多用户[身份验证](https://dozzle.dev/guide/authentication)
- 支持 [Swarm 模式](https://dozzle.dev/guide/swarm-mode)
- 用于监控多个 Docker 主机的 [Agent 模式](https://dozzle.dev/guide/agent)
- 深色模式
Dozzle 已经过数百个容器的测试。但是,它不支持离线搜索。[Loggly](https://www.loggly.com)、[Papertrail](https://papertrailapp.com) 或 [Kibana](https://www.elastic.co/products/kibana) 等产品更适合实现完整的搜索功能。
## 入门指南
Dozzle 是一个小型容器(压缩后仅 7 MB)。使用以下命令拉取最新版本:
```
$ docker pull amir20/dozzle:latest
```
### 运行 Dozzle
使用 Dozzle 最简单的方法是运行 Docker 容器。使用 `--volume` 将 Docker Unix socket 挂载到 `/var/run/docker.sock`:
```
$ docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest
```
Dozzle 将在 [http://localhost:8080/](http://localhost:8080/) 上可用。
以下是一个 Docker Compose 示例:
```
services:
dozzle:
container_name: dozzle
image: amir20/dozzle:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 8080:8080
```
有关[身份验证](https://dozzle.dev/guide/authentication)、[远程主机](https://dozzle.dev/guide/remote-hosts)或常见[问题](https://dozzle.dev/guide/faq)等高级选项,请参阅 [dozzle.dev](https://dozzle.dev/guide/getting-started) 上的文档。
## Swarm 模式
Dozzle 支持 Docker Swarm。你可以将 Dozzle 作为全局服务运行:
```
$ docker service create --name dozzle --env DOZZLE_MODE=swarm --mode global --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest
```
有关更多详细信息,请参阅 [Swarm 模式](https://dozzle.dev/guide/swarm-mode) 文档。
## Agent 模式
Dozzle 可以监控多个 Docker 主机。使用以下命令以 Agent 模式运行 Dozzle:
```
$ docker run -v /var/run/docker.sock:/var/run/docker.sock -p 7007:7007 amir20/dozzle:latest agent
```
有关更多详细信息,请参阅 [Agent 模式](https://dozzle.dev/guide/agent) 文档。
## 技术细节
Dozzle 使用自动 API 协商,适用于大多数 Docker 配置。Dozzle 也支持 [Colima](https://github.com/abiosoft/colima) 和 [Podman](https://podman.io/)。
### 在 Podman 上安装
默认情况下,Podman 没有后台进程,但你可以启用 remote socket 以使 Dozzle 正常工作。
首先,检查你的 Podman 安装是否启用了 remote socket:
```
podman info
```
如果你在 remote socket 键下看到类似这样的输出,说明它已经启用:
```
remoteSocket:
exists: true
path: /run/user/1000/podman/podman.sock
```
如果未启用,请按照[此教程](https://github.com/containers/podman/blob/main/docs/tutorials/socket_activation.md)进行启用。
启用 Podman remote socket 后,你可以运行 Dozzle:
```
podman run --volume=/run/user/1000/podman/podman.sock:/var/run/docker.sock -d -p 8080:8080 docker.io/amir20/dozzle:latest
```
此外,你需要创建一个伪造的 engine-id 以防止 `host not found` 错误。由于其无守护进程(daemonless)架构,Podman 不会像 Docker 那样生成 engine-id。
在 `/var/lib/docker` 下创建一个名为 `engine-id` 的文件。在使用 Podman 的系统上,你还需要创建该文件夹路径。在文件中放入一个 UUID,例如使用 `uuidgen > engine-id`。该文件应包含类似这样的标识符:`b9f1d7fc-b459-4b6e-9f7a-e3d1cd2e14a9`。
有关更多详细信息,请参阅 [Podman 信息](docs/guide/podman.md) 或 [常见问题解答](docs/guide/faq.md#i-am-seeing-host-not-found-error-in-the-logs-how-do-i-fix-it)。
## 安全
Dozzle 支持基于文件的身份验证和使用 [Authelia](https://www.authelia.com/) 等工具的 forward proxy 身份验证。请参阅 https://dozzle.dev/guide/authentication 上的文档。
## 分析
Dozzle 使用 Google Analytics 收集匿名的用户配置。为什么?Dozzle 是一个没有资金支持的开源项目,因此没有时间进行正式的用户研究。分析有助于根据人们使用 Dozzle 的方式来确定功能和修复的优先级。这些数据完全是公开的,可以在 [Data Studio 仪表板](https://datastudio.google.com/s/naeIu0MiWsY)上实时查看。
要禁用分析,请使用 `--no-analytics` 标志。
## 环境变量与配置
Dozzle 遵循 [12-factor](https://12factor.net/) 模型。可以通过 CLI 标志或环境变量进行配置。有关更多详细信息,请参阅 [dozzle.dev/guide/supported-env-vars](https://dozzle.dev/guide/supported-env-vars) 上的文档。
## 支持
有多种方式可以支持 Dozzle:
- 使用它!写下你的体验!给它点 Star!如果你喜欢 Dozzle,请给我留言告诉我你喜欢它什么。
- 写博客介绍 Dozzle 以扩大影响。如果你擅长写作,可以提交 PR 来改进 [dozzle.dev](https://dozzle.dev/) 上的文档。
- 在 https://www.buymeacoffee.com/amirraminfar 赞助我的工作
## 许可证
[MIT](LICENSE)
## 构建
要在本地构建和测试:
1. 安装 [Node.js](https://nodejs.org/en/download/) 和 [pnpm](https://pnpm.io/installation)。
2. 安装 [Go](https://go.dev/doc/install)。
3. 安装 [protoc](https://grpc.io/docs/protoc-installation/)。
4. 使用 `go install tool` 安装 Go 工具。
5. 使用 `pnpm install` 安装 Node 模块。
6. 运行 `make dev` 以启动带有热重载的开发服务器。
标签:CPU监控, Docker, Docker日志, EVTX分析, LangChain, Swarm, 内存监控, 多宿主监控, 安全防御评估, 实时日志, 容器监控, 容器管理, 开源, 日志审计, 日志查看器, 模糊搜索, 正则搜索, 请求拦截, 轻量级, 运维工具