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
(每次同步、推送操作出現的標誌,需要透過這個欄位來來篩選日誌是否是更新或者推送操作)
參考文件:
- [Gitlab官方日誌解釋文件]docs.gitlab.com/ee/administration/logs.html#production_jsonlog
> 本文首發於[BigYoung小站] bigyoung.cn
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4662/viewspace-2826663/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 啊~ 修改gitlab本地檔案許可權導致不能push、pull!千古罪人Gitlab
- Docker: docker pull, wget, curl, git clone 等如何更快?DockerwgetGit
- 兩種資料消費方式:pull與push,陰與陽
- gitlab如何實現批次clone倉庫Gitlab
- git和TortoiseGit pull和push報錯:git did not exit cleanlyGit
- rxjs Observable 設計原理背後的 Pull 和 Push 思路JS
- Docker應用容器日誌資訊收集Docker
- laravel5.7 不記錄 sql 報錯日誌,自定義日誌資訊LaravelSQL
- git修改檔案後無法push,需要先pull.並且pull後檔案有衝突Git
- remote: GitLab: You are not allowed to push code to protected branches on this project.REMGitlabProject
- 解決Git Pull,push每次都需要輸入密碼問題Git密碼
- 『無為則無心』Python日誌 — 66、將日誌資訊儲存到檔案中Python
- 如何在專案中記錄日誌資訊?
- 系統日誌及資料庫相關資訊收集資料庫
- 另一種列印輸出日誌資訊的方式
- 阿里高開二面:Nacos配置中心互動模型是 push 還是 pull ?阿里模型
- 如何列印完整的MYSQL帶引數SQL日誌資訊MySql
- C++簡單日誌/debug除錯資訊輸出C++除錯
- 日誌服務之敏感資訊脫敏與審計
- GitLab 通過Push操作提交專案,GitLab部分頁面訪問出現500錯誤Gitlab
- 記錄騰訊雲使用日誌
- Git中git pull/push 老是重複輸入使用者名稱密碼Git密碼
- Nacos配置中心互動模型是 push 還是 pull ?你應該這麼回答模型
- nohup不輸出nohup.out日誌資訊,已解決。
- go fiber: 把異常資訊寫到錯誤日誌中Go
- 日誌分析-apache日誌分析Apache
- git操作之pull拉取遠端指定分支以及push推送到遠端指定分支Git
- asp.net core使用serilog將日誌推送到騰訊雲日誌服務ASP.NET
- [日誌分析篇]-利用ELK分析jumpserver日誌-日誌拆分篇Server
- 系統日誌中出現大量的truncating integer value to 32 bits資訊
- Laravel/Lumen 自定義錯誤日誌格式過濾堆疊資訊Laravel
- 日誌資訊記錄表|全方位認識 mysql 系統庫MySql
- dataWarehouseOss專案總結(二)_讀取日誌資訊寫入kafkaKafka
- 日誌
- Yii2 log 模組,訊息日誌
- 一條日誌訊息的現代生活
- Gitlab利用Webhook實現Push程式碼後的jenkins自動構建GitlabWebHookJenkins
- 在日誌中記錄Java異常資訊的正確姿勢Java