温馨提示×

linux gitlab怎样审计

小樊
42
2026-09-16 16:22:11
栏目: 智能运维

Linux 上的 GitLab(CE/EE) 中,“审计”通常包含几个不同层面,下面按常见需求系统说明,你可以按需查看。


一、GitLab 自带审计功能(推荐优先)

1. 审计日志(Audit Events)

适用版本:GitLab EE(企业版)功能更完整,CE 有部分基础审计

路径:

GitLab 网页 → 左上角菜单 → 管理中心(Admin) → 监控 → 审计日志

可审计内容包括:

  • 用户登录 / 登出
  • 权限变更
  • 项目 / 组创建删除
  • Token 创建删除
  • 密钥 / 保护分支变更

CE 版本仅支持部分事件,EE 支持完整审计。


2. 项目级审计

项目 → 设置 → 审计事件

可查看:

  • 成员变更
  • 分支保护
  • 合并请求操作

3. 用户登录与操作日志

Admin → 用户 → 某用户 → 活动日志

二、Linux 系统层审计(GitLab 服务器)

1. GitLab 日志位置(重要)

GitLab 日志目录:

/var/log/gitlab/

常用日志:

/var/log/gitlab/gitlab-rails/production.log     # 核心请求
/var/log/gitlab/gitlab-rails/audit_json.log     # 审计事件(EE)
/var/log/gitlab/nginx/gitlab_access.log         # HTTP 访问
/var/log/gitlab/gitlab-shell/gitlab-shell.log   # Git 操作

查看示例:

tail -f /var/log/gitlab/gitlab-rails/audit_json.log

2. 使用 auditd(操作系统级审计)

适合审计:

  • 谁修改了 GitLab 配置
  • 谁访问了密钥文件

示例:监控 GitLab 配置

auditctl -w /etc/gitlab/gitlab.rb -p wa -k gitlab_config

查看日志:

ausearch -k gitlab_config

三、Git 操作审计(代码层)

1. Git 操作日志

/var/log/gitlab/gitlab-shell/gitlab-shell.log

包含:

  • git push / pull
  • 用户 & IP
  • 仓库

2. 强制提交记录(Push Rules)

项目 → 设置 → 仓库 → Push Rules

可限制:

  • 强制推送
  • 删除分支
  • 提交格式

四、外部审计方案(合规/安全)

1. 日志集中化

  • ELK / Graylog
  • Splunk
  • Loki + Promtail

示例(Filebeat):

paths:
  - /var/log/gitlab/**/*.log

2. SIEM 集成

GitLab EE 支持:

  • 审计事件导出
  • Webhook
  • Syslog

五、常见审计场景速查

场景 方法
谁删了分支 审计日志 / Push Rules
谁登录了 audit_json.log
谁改了权限 Admin → 审计日志
谁 push 了代码 gitlab-shell.log
服务器被改配置 auditd

六、版本说明

  • GitLab CE:基础审计
  • GitLab EE:完整审计、合规报表

如果你能告诉我:

  • GitLab 版本(CE / EE)
  • 审计目的(安全 / 合规 / 溯源)
  • 是否允许装插件

我可以给你更精确的操作步骤或脚本

0