Harbor审计日志需在harbor.yml中显式启用audit_log.enabled:true,配置location:/var/log/harbor/audit.log并映射宿主机持久卷,设置max_size:200M、max_backup:10,重启后通过tail -f验证登录、项目创建等操作日志。

直接用 Docker Compose 部署 Harbor 并开启完整审计日志,核心在于正确配置 harbor.yml 中的日志策略、启用审计模块,并确保容器持久化存储审计数据。Harbor 默认已集成审计功能,无需额外安装插件,但必须显式启用且配对正确的日志输出路径与保留策略。
部署前必备基础环境
确保主机满足以下最低要求:
- Docker 20.10+(Harbor v2.8+ 推荐)
- Docker Compose v2.15+(v1 已弃用,v2 命令语法为
docker compose) - 至少 4GB 内存、空闲磁盘空间 ≥20GB(审计日志持续写入需预留容量)
- 关闭 SELinux 或设为 permissive 模式;firewalld/ufw 开放 443(HTTPS)、80(HTTP 重定向)、4443(内部端口)
启用审计日志的关键配置项
编辑 harbor.yml 文件,在 audit_log 区块中明确设置:
- enabled: true — 必须设为 true,否则整个审计模块不启动
-
level: info — 可选
info(推荐,记录登录、push/pull、项目创建/删除等关键操作)或debug(含请求参数,仅调试用) - max_size: 200M — 单个日志文件上限,建议 100–500MB
- max_backup: 10 — 保留最多 10 个归档日志文件
-
location: /var/log/harbor/audit.log — 容器内路径,需与
log下的location分开(避免混入系统日志)
注意:该路径必须映射到宿主机持久卷(如 ./data/log/audit:/var/log/harbor),否则容器重启后日志丢失。
启动并验证审计日志是否生效
执行标准部署流程:
- 下载离线安装包(如
harbor-offline-installer-v2.10.2.tgz),解压后修改harbor.yml - 运行
sudo ./install.sh --with-trivy(含漏洞扫描可选)或仅sudo ./install.sh - 等待所有容器(
harbor-core,harbor-db,harbor-jobservice等)状态为Up
验证方式:
- 登录 Harbor Web UI(https://your-harbor-domain),执行一次用户登录、创建项目、推送一个镜像
- 在宿主机查看日志文件:
tail -f ./data/log/audit.log,应实时看到类似以下条目:
{"level":"info","time":"2026-04-14T04:33:02Z","action":"project.create","project":"demo-app","user":"admin","remote_addr":"192.168.10.5:52124"}
进阶:对接外部日志系统(如 ELK 或 Loki)
Harbor 不直接支持 syslog 或 Fluentd 输出,但可通过挂载日志目录 + sidecar 容器实现:
- 在
docker-compose.yml中为harbor-core添加卷映射:./data/log/audit:/var/log/harbor:ro - 启动一个独立的
fluent-bit容器,监听该目录,过滤audit.log并转发至 Elasticsearch 或 Loki - 或使用
rsyslog宿主机服务,通过imfile模块读取 audit.log 并转出
审计日志字段固定包含 action(操作类型)、user(执行者)、project(关联项目)、repo(仓库名)、remote_addr(客户端 IP),足够支撑安全合规分析。


















