zoukankan      html  css  js  c++  java
  • gitlab Clone Pull Push 日志信息

    背景:

    公司抓信息安全,使用gitlab进行代码管理,要求所有用户的远程操作(推送、同步)都记录下来。

    通过查看Gitlab官方文档,整理信息如下:

    gitlab 后台的各种日志保存位置 /var/log/gitlab/

    production.log

    注意:本日志只记录通过http操作的日志

    存放目录:/var/log/gitlab/gitlab-rails/

    production_json.log里面是Json请求串。

    {
        "method": "GET",
        "path": "/test_user/test_project.git/info/refs",
        "format": "*/*",
        "controller": "Projects::GitHttpController",
        "action": "info_refs",
        "status": 200,
        "duration": 268.22,
        "view": 0.48,
        "db": 14.41,
        "time": "2019-06-27T10:59:56.324Z",
        "params": [
            {
                "key": "service",
                "value": "git-receive-pack"
            },
            {
                "key": "namespace_id",
                "value": "test_user"
            },
            {
                "key": "project_id",
                "value": "test_project.git"
            }
        ],
        "remote_ip": "192.168.XX.XX",
        "user_id": 3,
        "username": "test_user",
        "ua": "git/2.21.0.windows.1",
        "queue_duration": null,
        "correlation_id": "b02c02f9-0167-49bf-965f-e4cc86d6751f"
    }
    

    日志中有价值的信息:

    • 同步动作:service:git-receive-pack
    • 推送操作:service:git-upload-pack
    • 项目名: project_id:test_project.git
    • IP地址:remote_ip:192.168.XX.XX
    • 用户名: username:test_user
    • 时间:time:2019-06-27T10:59:56.324Z(UTC格式,加上8个小时等于北京时间)
    • 状态:status:200 (200表示操作成功,其他表示失败)
    • 动作信息:action:info_refs (每次同步、推送操作出现的标志,需要通过这个字段来来筛选日志是否是更新或者推送操作)

    对存在Json嵌套的数据操作,建议看看这篇文章,能够提高工作效率。
    Go 如何优雅的获取嵌套Json数据内容

    gitlab-shell.log

    **注意:此日志只记录Gitclone协议的操作

    日志目录:/var/log/gitlab/gitlab-shell
    以下日志就不是Json格式了,需要自己对字符串进行操作处理。

    time="2019-07-02T11:17:48+08:00" level=info msg="executing git command" command="gitaly-receive-pack unix:/var/opt/gitlab/gitaly/gitaly.socket {"repository":{"storage_name":"default","relative_path":"test_user/test_project.git","git_object_directory":"","git_alternate_object_directories":[],"gl_repository":"project-5","gl_project_path":"test_user/test_project"},"gl_repository":"project-5","gl_project_path":"test_user/test_project","gl_id":"key-3","gl_username":"test_user","git_config_options":[],"git_protocol":null}" pid=23657 user="user with id key-3"
    

    日志中有价值的信息:

    • 同步动作:command:gitaly-receive-pack
    • 推送操作:command:gitaly-upload-pack
    • 项目名: gl_project_path:test_user/test_project
    • IP地址:remote_ip:192.168.XX.XX
    • 用户名: gl_username:test_user
    • 时间:time:2019-07-02T11:17:48+08:00(UTC格式,加上8个小时等于北京时间)
    • 状态:status:200 (200表示操作成功,其他表示失败)
    • 动作信息:action:info_refs (每次同步、推送操作出现的标志,需要通过这个字段来来筛选日志是否是更新或者推送操作)

    参考文档:

    1. Gitlab官方日志解释文档

    本文首发于BigYoung小站

  • 相关阅读:
    线程基础知识归纳
    并发编程情况下几个相应问题简介
    Spring Security的RBAC数据模型嵌入
    Mysql插入中文的字段内容时乱码的解决方法
    部分排序算法总结
    sendEmail 阿里云使用587端口
    linux服务器关闭ipv6 方法
    centos 6.8 安装git 报错
    强大的xargs
    nfs环境搭建报错clnt_create: RPC: Program not registered
  • 原文地址:https://www.cnblogs.com/bigyoung/p/14115944.html
Copyright © 2011-2022 走看看