gitlab Clone Pull Pushログ情報

3908 ワード

背景:
会社は情報の安全を掴んで、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(同期、プッシュ操作によって発生するフラグは、このフィールドを通じてログが更新またはプッシュ操作であるかどうかをスクリーニングする必要がある)
  • 参考文献:
  • Gitlab公式ログ解釈ドキュメント
  • この文章は最初に
    BigYoung小駅