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 - Pull RequestGitlab
- [android]adb push/pullAndroid
- GITLAB 中的 PULL REQUESTGitlab
- 啊~ 修改gitlab本地檔案許可權導致不能push、pull!千古罪人Gitlab
- Docker: docker pull, wget, curl, git clone 等如何更快?DockerwgetGit
- gitlab如何實現批次clone倉庫Gitlab
- redo日誌組資訊查詢
- ORACLE 歸檔日誌資訊sqlOracleSQL
- jdon框架日誌資訊錯誤框架
- 告警日誌出現kewastUnPackStats資訊AST
- 察看FreeBSD日誌資訊(轉)
- 兩種資料消費方式:pull與push,陰與陽
- git和TortoiseGit pull和push報錯:git did not exit cleanlyGit
- rxjs Observable 設計原理背後的 Pull 和 Push 思路JS
- git修改檔案後無法push,需要先pull.並且pull後檔案有衝突Git
- 解決Git Pull,push每次都需要輸入密碼問題Git密碼
- Docker應用容器日誌資訊收集Docker
- 日誌資訊存放位置dump_dest
- nginx日誌中顯示cookie資訊NginxCookie
- nginx+phpfpm日誌報錯資訊NginxPHP
- 日誌資訊:kewastUnPackStats(): bad magic 1AST
- laravel5.7 不記錄 sql 報錯日誌,自定義日誌資訊LaravelSQL
- 阿里高開二面:Nacos配置中心互動模型是 push 還是 pull ?阿里模型
- 如何在專案中記錄日誌資訊?
- 『無為則無心』Python日誌 — 66、將日誌資訊儲存到檔案中Python
- java獲取redis的日誌資訊和動態監控資訊JavaRedis
- Nacos配置中心互動模型是 push 還是 pull ?你應該這麼回答模型
- Git中git pull/push 老是重複輸入使用者名稱密碼Git密碼
- GitLab 通過Push操作提交專案,GitLab部分頁面訪問出現500錯誤Gitlab
- mysql之 日誌體系(錯誤日誌、查詢日誌、二進位制日誌、事務日誌、中繼日誌)MySql中繼
- 另一種列印輸出日誌資訊的方式
- YD_顯示RMAN備份資訊及日誌
- HQ_顯示RMAN備份資訊及日誌
- Linux系統檢視日誌資訊總結Linux
- git操作之pull拉取遠端指定分支以及push推送到遠端指定分支Git
- php日誌,記錄日誌PHP
- 日誌分析-apache日誌分析Apache
- Android Push Notification實現資訊推送功能Android