- 로그 레벨
 - 로그 회전
 production_json.logproduction.logapi_json.logapplication.log(deprecated)application_json.logintegrations_json.logkubernetes.log(사용 중단됨)git_json.logaudit_json.log- Sidekiq 로그
 gitlab-shell.log- Gitaly logs
 - Puma logs
 repocheck.logimporter.logexporter.logfeatures_json.logci_resource_groups_json.logauth.logauth_json.loggraphql_json.logclickhouse.logmigrations.logmail_room_json.log(기본값)web_hooks.log- Reconfigure logs
 sidekiq_exporter.log및web_exporter.logdatabase_load_balancing.logzoekt.logelasticsearch.logexceptions_json.logservice_measurement.loggeo.logupdate_mirror_service_json.log- 
llm.log epic_work_item_sync.logsecret_push_protection.log- Registry logs
 - NGINX logs
 - Pages logs
 - Let’s Encrypt 로그
 - Mattermost 로그
 - Workhorse 로그
 - PgBouncer 로그
 - PostgreSQL 로그
 - Prometheus 로그
 - Redis 로그
 - Alertmanager 로그
 - crond 로그
 - Grafana 로그
 - LogRotate 로그
 - GitLab Monitor 로그
 - GitLab Exporter
 - GitLab agent server
 - Praefect 로그
 - 백업 로그
 - 성능 바 통계
 - 로그 수집
 - 상관 관계 ID로 관련 로그 항목 찾기
 
로그 시스템
GitLab은 모든 것을 기록하는 고급 로그 시스템을 가지고 있어, 다양한 시스템 로그 파일을 사용하여 인스턴스를 분석할 수 있습니다. 로그 시스템은 감사 이벤트와 유사합니다.
시스템 로그 파일은 일반적으로 표준 로그 파일 형식의 일반 텍스트로 되어 있습니다. 이 가이드는 이러한 시스템 로그 파일을 읽고 사용하는 방법에 대해 설명합니다.
로그 시스템 및 로그 사용에 대한 추가 정보는 다음을 참조하세요:
- 
    
Linux 패키지 설치에서 로깅 사용자 지정
로그 보존 조정, 로그 전달, JSON에서 일반 텍스트 로깅으로 변경 등을 포함합니다. 
로그 레벨
각 로그 메시지는 중요성과 상세도를 나타내는 할당된 로그 레벨을 가지고 있습니다.
각 로거는 할당된 최소 로그 레벨이 있습니다.
로거는 로그 레벨이 최소 로그 레벨과 같거나 높은 경우에만 로그 메시지를 발생시킵니다.
다음 로그 레벨이 지원됩니다:
| Level | Name | 
|---|---|
| 0 | DEBUG | 
    
| 1 | INFO | 
    
| 2 | WARN | 
    
| 3 | ERROR | 
    
| 4 | FATAL | 
    
| 5 | UNKNOWN | 
    
GitLab 로거는 기본적으로 DEBUG로 설정되어 있으므로 모든 로그 메시지를 발생시킵니다.
기본 로그 레벨 재정의
GITLAB_LOG_LEVEL 환경 변수를 사용하여 GitLab 로거에 대한 최소 로그 레벨을 재정의할 수 있습니다.
유효 값은 0에서 5까지의 값 또는 로그 레벨의 이름입니다.
예시:
GITLAB_LOG_LEVEL=info
일부 서비스의 경우 이 설정에 영향을 받지 않는 다른 로그 레벨이 적용됩니다.
이 서비스 중 일부는 로그 레벨을 재정의하기 위한 자체 환경 변수를 가지고 있습니다. 예를 들어:
| Service | Log level | Environment variable | 
|---|---|---|
| GitLab Cleanup | INFO | 
      DEBUG | 
    
| GitLab Doctor | INFO | 
      VERBOSE | 
    
| GitLab Export | INFO | 
      EXPORT_DEBUG | 
    
| GitLab Import | INFO | 
      IMPORT_DEBUG | 
    
| GitLab QA Runtime | INFO | 
      QA_LOG_LEVEL | 
    
| Google APIs | INFO | 
      |
| Rack Timeout | ERROR | 
      |
| Snowplow Tracker | FATAL | 
      |
| gRPC Client (Gitaly) | WARN | 
      GRPC_LOG_LEVEL | 
    
| LLM | INFO | 
      LLM_DEBUG | 
    
로그 회전
주어진 서비스의 로그는 다음에 의해 관리되고 회전될 수 있습니다:
logrotate- 
svlogd(runit의 서비스 로깅 데몬) - 
logrotate및svlogd - 또는 전혀 관리되지 않음
 
다음 표는 포함된 서비스의 로그 관리 및 회전에 대한 정보를 포함합니다. 
svlogd에 의해 관리되는 로그는 current라는 파일에 기록됩니다. 
GitLab에 내장된 logrotate 서비스는 runit에 의해 포착된 로그를 제외한 모든 로그를 관리합니다.
| Log type | Managed by logrotate | Managed by svlogd/runit | 
|---|---|---|
| Alertmanager logs | No | Yes | 
| crond logs | No | Yes | 
| Gitaly | Yes | Yes | 
| GitLab Exporter for Linux package installations | No | Yes | 
| GitLab Pages logs | Yes | Yes | 
| GitLab Rails | Yes | No | 
| GitLab Shell logs | Yes | No | 
| Grafana logs | No | Yes | 
| LogRotate logs | No | Yes | 
| Mailroom | Yes | Yes | 
| NGINX | Yes | Yes | 
| PgBouncer logs | No | Yes | 
| PostgreSQL logs | No | Yes | 
| Praefect logs | Yes | Yes | 
| Prometheus logs | No | Yes | 
| Puma | Yes | Yes | 
| Redis logs | No | Yes | 
| Registry logs | No | Yes | 
| Workhorse logs | Yes | Yes | 
production_json.log
이 파일은 다음 경로에 있습니다:
- 리눅스 패키지 설치시: 
/var/log/gitlab/gitlab-rails/production_json.log - 자체 컴파일 설치시: 
/home/git/gitlab/log/production_json.log 
이 파일은 GitLab에서 받은 Rails 컨트롤러 요청의 구조화된 로그를 포함합니다. 이는 Lograge 덕분입니다.
API에서의 요청은 api_json.log의 별도 파일에 기록됩니다.
각 행은 Elasticsearch 및 Splunk와 같은 서비스에서 수집할 수 있는 JSON을 포함합니다.
가독성을 위해 예제에 줄 바꿈이 추가되었습니다:
{
  "method":"GET",
  "path":"/gitlab/gitlab-foss/issues/1234",
  "format":"html",
  "controller":"Projects::IssuesController",
  "action":"show",
  "status":200,
  "time":"2017-08-08T20:15:54.821Z",
  "params":[{"key":"param_key","value":"param_value"}],
  "remote_ip":"18.245.0.1",
  "user_id":1,
  "username":"admin",
  "queue_duration_s":0.0,
  "gitaly_calls":16,
  "gitaly_duration_s":0.16,
  "redis_calls":115,
  "redis_duration_s":0.13,
  "redis_read_bytes":1507378,
  "redis_write_bytes":2920,
  "correlation_id":"O1SdybnnIq7",
  "cpu_s":17.50,
  "db_duration_s":0.08,
  "view_duration_s":2.39,
  "duration_s":20.54,
  "pid": 81836,
  "worker_id":"puma_0"
}
이 예제는 특정 문제에 대한 GET 요청이었습니다.
각 행은 또한 성능 데이터를 포함하고 있으며, 시간은 초 단위로 표시됩니다:
- 
duration_s: 요청을 검색하는데 걸린 총 시간 - 
queue_duration_s: 요청이 GitLab Workhorse 내에서 대기한 총 시간 - 
view_duration_s: Rails 뷰 내에서의 총 시간 - 
db_duration_s: PostgreSQL에서 데이터를 검색하는데 걸린 총 시간 - 
cpu_s: CPU에서 소비된 총 시간 - 
gitaly_duration_s: Gitaly 호출에 의한 총 시간 - 
gitaly_calls: Gitaly에 대해 발생한 호출의 총 수 - 
redis_calls: Redis에 대해 발생한 호출의 총 수 - 
redis_cross_slot_calls: Redis에 대해 발생한 크로스 슬롯 호출의 총 수 - 
redis_allowed_cross_slot_calls: Redis에 대해 발생한 허용된 크로스 슬롯 호출의 총 수 - 
redis_duration_s: Redis에서 데이터를 검색하는데 걸린 총 시간 - 
redis_read_bytes: Redis에서 읽은 총 바이트 - 
redis_write_bytes: Redis에 기록된 총 바이트 - 
redis_<instance>_calls: Redis 인스턴스에 대해 발생한 호출의 총 수 - 
redis_<instance>_cross_slot_calls: Redis 인스턴스에 대해 발생한 크로스 슬롯 호출의 총 수 - 
redis_<instance>_allowed_cross_slot_calls: Redis 인스턴스에 대해 발생한 허용된 크로스 슬롯 호출의 총 수 - 
redis_<instance>_duration_s: Redis 인스턴스에서 데이터를 검색하는데 걸린 총 시간 - 
redis_<instance>_read_bytes: Redis 인스턴스에서 읽은 총 바이트 - 
redis_<instance>_write_bytes: Redis 인스턴스에 기록된 총 바이트 - 
pid: 워커의 리눅스 프로세스 ID(워커가 재시작 할 때 변경됨) - 
worker_id: 워커의 논리 ID(워커가 재시작할 때 변경되지 않음) 
사용자 클론 및 HTTP 전송을 통한 가져오기 활동은 action: git_upload_pack으로 로그에 나타납니다.
또한 로그에는 원래 IP 주소(remote_ip), 사용자 ID(user_id), 사용자 이름(username)이 포함됩니다.
일부 엔드포인트(예: /search)는 고급 검색 사용 시 Elasticsearch에 요청을 보낼 수 있습니다. 이들은 추가로 elasticsearch_calls 및 elasticsearch_call_duration_s를 기록하며, 이는 다음에 해당합니다:
- 
elasticsearch_calls: Elasticsearch에 대한 호출의 총 수 - 
elasticsearch_duration_s: Elasticsearch 호출에 소요된 총 시간 - 
elasticsearch_timed_out_count: 시간 초과로 인해 부분 결과를 반환한 Elasticsearch 호출의 총 수 
ActionCable 연결 및 구독 이벤트도 이 파일에 기록되며, 이전 형식을 따릅니다. method, path, 및 format 필드는 해당하지 않으며 항상 비어 있습니다. ActionCable 연결 또는 채널 클래스가 controller로 사용됩니다.
{
  "method":null,
  "path":null,
  "format":null,
  "controller":"IssuesChannel",
  "action":"subscribe",
  "status":200,
  "time":"2020-05-14T19:46:22.008Z",
  "params":[{"key":"project_path","value":"gitlab/gitlab-foss"},{"key":"iid","value":"1"}],
  "remote_ip":"127.0.0.1",
  "user_id":1,
  "username":"admin",
  "ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:76.0) Gecko/20100101 Firefox/76.0",
  "correlation_id":"jSOIEynHCUa",
  "duration_s":0.32566
}
exception 필드가 포함되어 있으며, 이 필드는 class, message, 및 backtrace를 포함합니다. 이전 버전에서는 exception.class 및 exception.message 대신 error 필드를 포함했습니다. 예를 들어:{
  "method": "GET",
  "path": "/admin",
  "format": "html",
  "controller": "Admin::DashboardController",
  "action": "index",
  "status": 500,
  "time": "2019-11-14T13:12:46.156Z",
  "params": [],
  "remote_ip": "127.0.0.1",
  "user_id": 1,
  "username": "root",
  "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:70.0) Gecko/20100101 Firefox/70.0",
  "queue_duration": 274.35,
  "correlation_id": "KjDVUhNvvV3",
  "queue_duration_s":0.0,
  "gitaly_calls":16,
  "gitaly_duration_s":0.16,
  "redis_calls":115,
  "redis_duration_s":0.13,
  "correlation_id":"O1SdybnnIq7",
  "cpu_s":17.50,
  "db_duration_s":0.08,
  "view_duration_s":2.39,
  "duration_s":20.54,
  "pid": 81836,
  "worker_id": "puma_0",
  "exception.class": "NameError",
  "exception.message": "undefined local variable or method `adsf' for #<Admin::DashboardController:0x00007ff3c9648588>",
  "exception.backtrace": [
    "app/controllers/admin/dashboard_controller.rb:11:in `index'",
    "ee/app/controllers/ee/admin/dashboard_controller.rb:14:in `index'",
    "ee/lib/gitlab/ip_address_state.rb:10:in `with'",
    "ee/app/controllers/ee/application_controller.rb:43:in `set_current_ip_address'",
    "lib/gitlab/session.rb:11:in `with_session'",
    "app/controllers/application_controller.rb:450:in `set_session_storage'",
    "app/controllers/application_controller.rb:444:in `set_locale'",
    "ee/lib/gitlab/jira/middleware.rb:19:in `call'"
  ]
}
production.log
이 파일은 다음 위치에 있습니다:
- 리눅스 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/production.log - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/production.log 
이 파일에는 수행된 모든 요청에 대한 정보가 포함되어 있습니다.
URL 및 요청 유형,
IP 주소,
특정 요청을 처리하기 위해 관여한 코드 부분을 확인할 수 있습니다.
또한, 수행된 모든 SQL 요청과 각 요청에 소요된 시간도 확인할 수 있습니다.
이 작업은 GitLab 기여자 및 개발자에게 더 유용합니다.
버그를 보고할 때 이 로그 파일의 일부를 사용하세요. 예를 들어:
Started GET "/gitlabhq/yaml_db/tree/master" for 168.111.56.1 at 2015-02-12 19:34:53 +0200
Processing by Projects::TreeController#show as HTML
  Parameters: {"project_id"=>"gitlabhq/yaml_db", "id"=>"master"}
  ... [CUT OUT]
  Namespaces"."created_at" DESC, "namespaces"."id" DESC LIMIT 1 [["id", 26]]
  CACHE (0.0ms) SELECT  "members".* FROM "members"  WHERE "members"."source_type" = 'Project' AND "members"."type" IN ('ProjectMember') AND "members"."source_id" = $1 AND "members"."source_type" = $2 AND "members"."user_id" = 1  ORDER BY "members"."created_at" DESC, "members"."id" DESC LIMIT 1  [["source_id", 18], ["source_type", "Project"]]
  CACHE (0.0ms) SELECT  "members".* FROM "members"  WHERE "members"."source_type" = 'Project' AND "members".
  (1.4ms) SELECT COUNT(*) FROM "merge_requests"  WHERE "merge_requests"."target_project_id" = $1 AND ("merge_requests"."state" IN ('opened','reopened')) [["target_project_id", 18]]
  Rendered layouts/nav/_project.html.haml (28.0ms)
  Rendered layouts/_collapse_button.html.haml (0.2ms)
  Rendered layouts/_flash.html.haml (0.1ms)
  Rendered layouts/_page.html.haml (32.9ms)
Completed 200 OK in 166ms (Views: 117.4ms | ActiveRecord: 27.2ms)
이 예제에서 서버는 168.111.56.1의 IP에서 2015-02-12 19:34:53 +0200에
/gitlabhq/yaml_db/tree/master의 URL로 HTTP 요청을 처리했습니다.
요청은 Projects::TreeController에 의해 처리되었습니다.
api_json.log
이 파일은 다음 위치에 있습니다:
- 리눅스 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/api_json.log - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/api_json.log 
이 파일은 API에 직접 요청된 내용을 확인하는 데 도움을 줍니다. 예를 들어:
{
  "time":"2018-10-29T12:49:42.123Z",
  "severity":"INFO",
  "duration":709.08,
  "db":14.59,
  "view":694.49,
  "status":200,
  "method":"GET",
  "path":"/api/v4/projects",
  "params":[{"key":"action","value":"git-upload-pack"},{"key":"changes","value":"_any"},{"key":"key_id","value":"secret"},{"key":"secret_token","value":"[FILTERED]"}],
  "host":"localhost",
  "remote_ip":"::1",
  "ua":"Ruby",
  "route":"/api/:version/projects",
  "user_id":1,
  "username":"root",
  "queue_duration":100.31,
  "gitaly_calls":30,
  "gitaly_duration":5.36,
  "pid": 81836,
  "worker_id": "puma_0",
  ...
}
이 항목은 SSH 키가 해당 프로젝트를 다운로드할 수 있는지 확인하기 위해 내부 엔드포인트에 접근한 것을 보여줍니다.
이 예제에서는 다음을 확인합니다:
- 
duration: 요청을 가져오는 데 소요된 총 시간(밀리초 단위) - 
queue_duration: GitLab Workhorse 내부에서 요청이 대기한 총 시간(밀리초 단위) - 
method: 요청을 만들기 위해 사용된 HTTP 메서드 - 
path: 쿼리의 상대 경로 - 
params: 쿼리 문자열 또는 HTTP 본문에 전달된 키-값 쌍(비밀번호 및 토큰과 같은 민감한 매개변수는 필터링됨) - 
ua: 요청자의 User-Agent 
Grape Logging v1.8.4 버전부터,
view_duration_s는 duration_s - db_duration_s에 의해 계산됩니다. 
따라서 view_duration_s는 Redis에서의 읽기-쓰기 프로세스나 외부 HTTP와 같은 여러 다른 요인의 영향을 받을 수 있으며 단지 직렬화 프로세스만이 아닙니다.
application.log (deprecated)
- 더 이상 사용되지 않음 in GitLab 15.10.
 
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/application.log - 자가 컴파일 설치의 경우: 
/home/git/gitlab/log/application.log 
이 파일은 application_json.log의 로그를 덜 구조화된 형태로 포함하고 있습니다.
예시:
2014년 10월 06일 11:56: 사용자 "Administrator" (admin@example.com) 가 생성되었습니다
2014년 10월 06일 11:56: Documentcloud에서 새로운 프로젝트 "Documentcloud / Underscore"를 생성했습니다
2014년 10월 06일 11:56: Gitlab Org에서 새로운 프로젝트 "Gitlab Org / Gitlab Ce"를 생성했습니다
2014년 10월 07일 11:25: 사용자 "Claudie Hodkiewicz" (nasir_stehr@olson.co.uk) 가 제거되었습니다
2014년 10월 07일 11:25: 프로젝트 "project133"가 제거되었습니다
application_json.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/application_json.log - 자가 컴파일 설치의 경우: 
/home/git/gitlab/log/application_json.log 
이 파일은 사용자 생성 및 프로젝트 삭제와 같은 인스턴스에서 발생하는 사건을 발견하는 데 도움이 됩니다.
예시:
{
  "severity":"INFO",
  "time":"2020-01-14T13:35:15.466Z",
  "correlation_id":"3823a1550b64417f9c9ed8ee0f48087e",
  "message":"사용자 \"Administrator\" (admin@example.com) 가 생성되었습니다"
}
{
  "severity":"INFO",
  "time":"2020-01-14T13:35:15.466Z",
  "correlation_id":"78e3df10c9a18745243d524540bd5be4",
  "message":"프로젝트 \"project133\"가 제거되었습니다"
}
integrations_json.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/integrations_json.log - 자가 컴파일 설치의 경우: 
/home/git/gitlab/log/integrations_json.log 
이 파일은 통합 활동에 대한 정보를 포함하고 있습니다. 예를 들어 Jira, Asana, 및 irker 서비스와 관련된 정보입니다. JSON 형식을 사용합니다.
예시:
{
  "severity":"ERROR",
  "time":"2018-09-06T14:56:20.439Z",
  "service_class":"Integrations::Jira",
  "project_id":8,
  "project_path":"h5bp/html5-boilerplate",
  "message":"메시지를 보내는 중 오류 발생",
  "client_url":"http://jira.gitlab.com:8080",
  "error":"실행 시간 초과"
}
{
  "severity":"INFO",
  "time":"2018-09-06T17:15:16.365Z",
  "service_class":"Integrations::Jira",
  "project_id":3,
  "project_path":"namespace2/project2",
  "message":"성공적으로 게시됨",
  "client_url":"http://jira.example.com"
}
kubernetes.log (사용 중단됨)
- GitLab 14.5에서 사용 중단됨.
 
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/kubernetes.log - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/kubernetes.log 
이 파일은 연결 오류와 같은 인증서 기반 클러스터와 관련된 정보를 기록합니다. 각 줄은 Elasticsearch 및 Splunk와 같은 서비스에서 수집할 수 있는 JSON을 포함합니다.
git_json.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/git_json.log - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/git_json.log 
GitLab은 Git 저장소와 상호 작용해야 하지만, 드문 경우에 문제가 발생할 수 있습니다. 이 경우, 무슨 일이 일어났는지 정확히 알아야 합니다. 이 로그 파일에는 GitLab에서 Git 저장소로의 모든 실패한 요청이 포함되어 있습니다. 대개의 경우 이 파일은 개발자에게만 유용합니다. 예를 들면:
{
   "severity":"ERROR",
   "time":"2019-07-19T22:16:12.528Z",
   "correlation_id":"FeGxww5Hj64",
   "message":"Command failed [1]: /usr/bin/git --git-dir=/Users/vsizov/gitlab-development-kit/gitlab/tmp/tests/gitlab-satellites/group184/gitlabhq/.git --work-tree=/Users/vsizov/gitlab-development-kit/gitlab/tmp/tests/gitlab-satellites/group184/gitlabhq merge --no-ff -mMerge branch 'feature_conflict' into 'feature' source/feature_conflict\n\nerror: failed to push some refs to '/Users/vsizov/gitlab-development-kit/repositories/gitlabhq/gitlab_git.git'"
}
audit_json.log
GitLab Premium은 더 많은 이벤트를 추적합니다.
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/audit_json.log - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/audit_json.log 
그룹 또는 프로젝트 설정 및 멤버십에 대한 변경 사항(target_details)은 이 파일에 기록됩니다. 예를 들면:
{
  "severity":"INFO",
  "time":"2018-10-17T17:38:22.523Z",
  "author_id":3,
  "entity_id":2,
  "entity_type":"Project",
  "change":"visibility",
  "from":"Private",
  "to":"Public",
  "author_name":"John Doe4",
  "target_id":2,
  "target_type":"Project",
  "target_details":"namespace2/project2"
}
Sidekiq 로그
Linux 패키지 설치의 경우, 일부 Sidekiq 로그는 /var/log/gitlab/sidekiq/current에 있으며 다음과 같습니다.
sidekiq.log
- Helm 차트 설치의 기본 로그 형식이 GitLab 16.0 및 이후 버전에서
 text에서json으로 변경되었습니다.
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/sidekiq/current - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/sidekiq.log 
GitLab은 장기 프로세스를 처리하기 위해 백그라운드 작업을 사용합니다. 이러한 작업을 처리하는 모든 정보는 이 파일에 기록됩니다. 예를 들면:
{
  "severity":"INFO",
  "time":"2018-04-03T22:57:22.071Z",
  "queue":"cronjob:update_all_mirrors",
  "args":[],
  "class":"UpdateAllMirrorsWorker",
  "retry":false,
  "queue_namespace":"cronjob",
  "jid":"06aeaa3b0aadacf9981f368e",
  "created_at":"2018-04-03T22:57:21.930Z",
  "enqueued_at":"2018-04-03T22:57:21.931Z",
  "pid":10077,
  "worker_id":"sidekiq_0",
  "message":"UpdateAllMirrorsWorker JID-06aeaa3b0aadacf9981f368e: done: 0.139 sec",
  "job_status":"done",
  "duration":0.139,
  "completed_at":"2018-04-03T22:57:22.071Z",
  "db_duration":0.05,
  "db_duration_s":0.0005,
  "gitaly_duration":0,
  "gitaly_calls":0
}
JSON 로그 대신 Sidekiq에 대해 텍스트 로그 생성을 선택할 수 있습니다. 예를 들면:
2023-05-16T16:08:55.272Z pid=82525 tid=23rl INFO: Initializing websocket
2023-05-16T16:08:55.279Z pid=82525 tid=23rl INFO: Booted Rails 6.1.7.2 application in production environment
2023-05-16T16:08:55.279Z pid=82525 tid=23rl INFO: Running in ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [arm64-darwin22]
2023-05-16T16:08:55.279Z pid=82525 tid=23rl INFO: See LICENSE and the LGPL-3.0 for licensing details.
2023-05-16T16:08:55.279Z pid=82525 tid=23rl INFO: Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org
2023-05-16T16:08:55.286Z pid=82525 tid=7p4t INFO: Cleaning working queues
2023-05-16T16:09:06.043Z pid=82525 tid=7p7d class=ScheduleMergeRequestCleanupRefsWorker jid=efcc73f169c09a514b06da3f INFO: start
2023-05-16T16:09:06.050Z pid=82525 tid=7p7d class=ScheduleMergeRequestCleanupRefsWorker jid=efcc73f169c09a514b06da3f INFO: arguments: []
2023-05-16T16:09:06.065Z pid=82525 tid=7p81 class=UserStatusCleanup::BatchWorker jid=e279aa6409ac33031a314822 INFO: start
2023-05-16T16:09:06.066Z pid=82525 tid=7p81 class=UserStatusCleanup::BatchWorker jid=e279aa6409ac33031a314822 INFO: arguments: []
Linux 패키지 설치의 경우, 구성 옵션을 추가합니다:
sidekiq['log_format'] = 'text'
자체 컴파일 설치의 경우, gitlab.yml 파일을 편집하고 Sidekiq의 log_format 구성 옵션을 설정합니다:
  ## Sidekiq
  sidekiq:
    log_format: text
sidekiq_client.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치에서 
/var/log/gitlab/gitlab-rails/sidekiq_client.log. - 셀프 컴파일 설치에서 
/home/git/gitlab/log/sidekiq_client.log. 
이 파일은 Sidekiq가 작업을 처리하기 시작하기 전, 즉 큐에 들어가기 전의 작업에 대한 로깅 정보를 포함합니다.
이 로그 파일은  sidekiq.log와 동일한 구조를 따르며, 위에서 언급한대로 Sidekiq에 대해 JSON으로 구성되어 있습니다.
gitlab-shell.log
GitLab Shell은 GitLab에서 Git 명령을 실행하고 Git 리포지토리에 대한 SSH 액세스를 제공하는 데 사용됩니다.
git-{upload-pack,receive-pack} 요청과 관련된 정보는 /var/log/gitlab/gitlab-shell/gitlab-shell.log에 있습니다. GitLab Shell에 대한 Gitaly의 후크에 대한 정보는 /var/log/gitlab/gitaly/current에 있습니다.
/var/log/gitlab/gitlab-shell/gitlab-shell.log의 예시 로그 항목:
{
  "duration_ms": 74.104,
  "level": "info",
  "method": "POST",
  "msg": "Finished HTTP request",
  "time": "2020-04-17T20:28:46Z",
  "url": "http://127.0.0.1:8080/api/v4/internal/allowed"
}
{
  "command": "git-upload-pack",
  "git_protocol": "",
  "gl_project_path": "root/example",
  "gl_repository": "project-1",
  "level": "info",
  "msg": "executing git command",
  "time": "2020-04-17T20:28:46Z",
  "user_id": "user-1",
  "username": "root"
}
/var/log/gitlab/gitaly/current의 예시 로그 항목:
{
  "method": "POST",
  "url": "http://127.0.0.1:8080/api/v4/internal/allowed",
  "duration": 0.058012959,
  "gitaly_embedded": true,
  "pid": 16636,
  "level": "info",
  "msg": "finished HTTP request",
  "time": "2020-04-17T20:29:08+00:00"
}
{
  "method": "POST",
  "url": "http://127.0.0.1:8080/api/v4/internal/pre_receive",
  "duration": 0.031022552,
  "gitaly_embedded": true,
  "pid": 16636,
  "level": "info",
  "msg": "finished HTTP request",
  "time": "2020-04-17T20:29:08+00:00"
}
Gitaly logs
이 파일은 /var/log/gitlab/gitaly/current에 있으며, runit에 의해 생성됩니다.
runit은 Linux 패키지와 함께 제공되며, 그 목적에 대한 간단한 설명은 Linux 패키지 문서에서 확인할 수 있습니다.
로그 파일은 회전되어 유닉스 타임스탬프 형식으로 이름이 바뀌고 gzip 압축됩니다(예: @1584057562.s).
grpc.log
이 파일은 Linux 패키지 설치의 /var/log/gitlab/gitlab-rails/grpc.log에 있습니다.
Native gRPC 로깅은 Gitaly에서 사용됩니다.
gitaly_hooks.log
이 파일은 /var/log/gitlab/gitaly/gitaly_hooks.log에 있으며
gitaly-hooks 명령에 의해 생성됩니다. 또한 GitLab API에서 응답을 처리하는 동안 수신된 오류에 대한 기록을 포함합니다.
Puma logs
puma_stdout.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/puma/puma_stdout.log - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/puma_stdout.log 
puma_stderr.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/puma/puma_stderr.log - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/puma_stderr.log 
repocheck.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/repocheck.log - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/repocheck.log 
프로젝트에서 저장소 검사를 실행할 때 정보를 기록합니다.
importer.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/importer.log - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/importer.log 
이 파일은 프로젝트 가져오기 및 마이그레이션의 진행 상황을 기록합니다.
exporter.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/exporter.log - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/exporter.log 
내보내기 프로세스의 진행 상황을 기록합니다.
features_json.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/features_json.log - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/features_json.log 
GitLab의 기능 플래그 개발에서 수정 이벤트가 이 파일에 기록됩니다. 예를 들어:
{"severity":"INFO","time":"2020-11-24T02:30:59.860Z","correlation_id":null,"key":"cd_auto_rollback","action":"enable","extra.thing":"true"}
{"severity":"INFO","time":"2020-11-24T02:31:29.108Z","correlation_id":null,"key":"cd_auto_rollback","action":"enable","extra.thing":"true"}
{"severity":"INFO","time":"2020-11-24T02:31:29.129Z","correlation_id":null,"key":"cd_auto_rollback","action":"disable","extra.thing":"false"}
{"severity":"INFO","time":"2020-11-24T02:31:29.177Z","correlation_id":null,"key":"cd_auto_rollback","action":"enable","extra.thing":"Project:1"}
{"severity":"INFO","time":"2020-11-24T02:31:29.183Z","correlation_id":null,"key":"cd_auto_rollback","action":"disable","extra.thing":"Project:1"}
{"severity":"INFO","time":"2020-11-24T02:31:29.188Z","correlation_id":null,"key":"cd_auto_rollback","action":"enable_percentage_of_time","extra.percentage":"50"}
{"severity":"INFO","time":"2020-11-24T02:31:29.193Z","correlation_id":null,"key":"cd_auto_rollback","action":"disable_percentage_of_time"}
{"severity":"INFO","time":"2020-11-24T02:31:29.198Z","correlation_id":null,"key":"cd_auto_rollback","action":"enable_percentage_of_actors","extra.percentage":"50"}
{"severity":"INFO","time":"2020-11-24T02:31:29.203Z","correlation_id":null,"key":"cd_auto_rollback","action":"disable_percentage_of_actors"}
{"severity":"INFO","time":"2020-11-24T02:31:29.329Z","correlation_id":null,"key":"cd_auto_rollback","action":"remove"}
ci_resource_groups_json.log
이 파일은 다음에 위치합니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/ci_resource_group_json.log. - Self-compiled 설치의 경우: 
/home/git/gitlab/log/ci_resource_group_json.log. 
이 파일은 리소스 그룹 획득에 대한 정보를 포함하고 있습니다. 예를 들어:
{"severity":"INFO","time":"2023-02-10T23:02:06.095Z","correlation_id":"01GRYS10C2DZQ9J1G12ZVAD4YD","resource_group_id":1,"processable_id":288,"message":"attempted to assign resource to processable","success":true}
{"severity":"INFO","time":"2023-02-10T23:02:08.945Z","correlation_id":"01GRYS138MYEG32C0QEWMC4BDM","resource_group_id":1,"processable_id":288,"message":"attempted to release resource from processable","success":true}
예제는 각 항목에 대한 resource_group_id, processable_id, message, 및 success 필드를 보여줍니다.
auth.log
이 파일은 다음에 위치합니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/auth.log. - Self-compiled 설치의 경우: 
/home/git/gitlab/log/auth.log. 
이 로그는 다음을 기록합니다:
auth_json.log
이 파일은 다음에 위치합니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/auth_json.log. - Self-compiled 설치의 경우: 
/home/git/gitlab/log/auth_json.log. 
이 파일은 auth.log의 로그에 대한 JSON 버전을 포함하고 있습니다. 예를 들어:
{
    "severity":"ERROR",
    "time":"2023-04-19T22:14:25.893Z",
    "correlation_id":"01GYDSAKAN2SPZPAMJNRWW5H8S",
    "message":"Rack_Attack",
    "env":"blocklist",
    "remote_ip":"x.x.x.x",
    "request_method":"GET",
    "path":"/group/project.git/info/refs?service=git-upload-pack"
}
graphql_json.log
이 파일은 다음에 위치합니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/graphql_json.log. - Self-compiled 설치의 경우: 
/home/git/gitlab/log/graphql_json.log. 
GraphQL 쿼리는 파일에 기록됩니다. 예를 들어:
{"query_string":"query IntrospectionQuery{__schema {queryType { name },mutationType { name }}}...(etc)","variables":{"a":1,"b":2},"complexity":181,"depth":1,"duration_s":7}
clickhouse.log
clickhouse.log 파일은 GitLab의 ClickHouse 데이터베이스 클라이언트와 관련된 정보를 기록합니다.
migrations.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/migrations.log - 셀프 컴파일 설치의 경우: 
/home/git/gitlab/log/migrations.log 
이 파일은 데이터베이스 마이그레이션의 진행 상황을 기록합니다.
mail_room_json.log (기본값)
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/mailroom/current - 셀프 컴파일 설치의 경우: 
/home/git/gitlab/log/mail_room_json.log 
이 구조화된 로그 파일은 mail_room 젬의 내부 활동을 기록합니다.
이름과 경로는 구성 가능하므로, 이름과 경로가 위와 일치하지 않을 수 있습니다.
web_hooks.log
- GitLab 16.3에서 도입됨.
 
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/web_hooks.log - 셀프 컴파일 설치의 경우: 
/home/git/gitlab/log/web_hooks.log 
Webhook에 대한 일시 중지, 비활성화 및 재활성화 이벤트는 이 파일에 기록됩니다. 예를 들어:
{"severity":"INFO","time":"2020-11-24T02:30:59.860Z","hook_id":12,"action":"backoff","disabled_until":"2020-11-24T04:30:59.860Z","backoff_count":2,"recent_failures":2}
{"severity":"INFO","time":"2020-11-24T02:30:59.860Z","hook_id":12,"action":"disable","disabled_until":null,"backoff_count":5,"recent_failures":100}
{"severity":"INFO","time":"2020-11-24T02:30:59.860Z","hook_id":12,"action":"enable","disabled_until":null,"backoff_count":0,"recent_failures":0}
Reconfigure logs
재구성 로그 파일은 Linux 패키지 설치의 경우 /var/log/gitlab/reconfigure에 있습니다. 셀프 컴파일 설치는 재구성 로그가 없습니다.
재구성 로그는 gitlab-ctl reconfigure가 수동으로 또는 업그레이드의 일환으로 실행될 때마다 기록됩니다.
재구성 로그 파일의 이름은 재구성이 시작된 UNIX 타임스탬프에 따라 정해집니다, 예: 1509705644.log
sidekiq_exporter.log 및 web_exporter.log
Prometheus 메트릭과 Sidekiq Exporter가 모두 활성화되면, Sidekiq는 웹 서버를 시작하고 정의된 포트(기본값: 8082)에서 수신 대기합니다.
기본적으로 Sidekiq Exporter 접근 로그는 비활성화되어 있지만 활성화할 수 있습니다:
- Linux 패키지 설치의 경우 
/etc/gitlab/gitlab.rb에서sidekiq['exporter_log_enabled'] = true옵션을 사용합니다. - 셀프 컴파일 설치의 경우 
gitlab.yml에서sidekiq_exporter.log_enabled옵션을 사용합니다. 
활성화되면, 설치 방법에 따라 이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/sidekiq_exporter.log - 셀프 컴파일 설치의 경우: 
/home/git/gitlab/log/sidekiq_exporter.log 
Prometheus 메트릭과 웹 Exporter가 모두 활성화되면, Puma는 웹 서버를 시작하고 정의된 포트(기본값: 8083)에서 수신 대기하며, 접근 로그는 설치 방법에 따라 생성됩니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/web_exporter.log - 셀프 컴파일 설치의 경우: 
/home/git/gitlab/log/web_exporter.log 
database_load_balancing.log
GitLab 데이터베이스 로드 밸런싱에 대한 세부 정보가 포함되어 있습니다.
이 파일은 다음 위치에 있습니다:
- 리눅스 패키지 설치에서 
/var/log/gitlab/gitlab-rails/database_load_balancing.log - 자가 컴파일 설치에서 
/home/git/gitlab/log/database_load_balancing.log 
zoekt.log
- 도입됨 GitLab 15.9에서.
 
이 파일은 정확한 코드 검색과 관련된 정보를 기록합니다.
이 파일은 다음 위치에 있습니다:
- 리눅스 패키지 설치에서 
/var/log/gitlab/gitlab-rails/zoekt.log - 자가 컴파일 설치에서 
/home/git/gitlab/log/zoekt.log 
elasticsearch.log
이 파일은 Elasticsearch 통합과 관련된 정보, 즉 Elasticsearch의 인덱싱 또는 검색 중 발생하는 오류를 기록합니다. 이 파일은 다음 위치에 있습니다:
- 리눅스 패키지 설치에서 
/var/log/gitlab/gitlab-rails/elasticsearch.log - 자가 컴파일 설치에서 
/home/git/gitlab/log/elasticsearch.log 
각 줄은 Elasticsearch 및 Splunk와 같은 서비스에서 수집할 수 있는 JSON을 포함합니다.
명확성을 위해 다음 예시 줄에 줄 바꿈을 추가했습니다:
{  
  "severity":"DEBUG",  
  "time":"2019-10-17T06:23:13.227Z",  
  "correlation_id":null,  
  "message":"redacted_search_result",  
  "class_name":"Milestone",  
  "id":2,  
  "ability":"read_milestone",  
  "current_user_id":2,  
  "query":"project"  
}  
exceptions_json.log
이 파일은 Gitlab::ErrorTracking에 의해 추적되는 예외에 대한 정보를 기록하며,
처리된 예외를 처리하는 표준화된 일관된 방법을 제공합니다.
이 파일은 다음 위치에 있습니다:
- 리눅스 패키지 설치에서 
/var/log/gitlab/gitlab-rails/exceptions_json.log - 자가 컴파일 설치에서 
/home/git/gitlab/log/exceptions_json.log 
각 줄은 Elasticsearch에서 수집할 수 있는 JSON을 포함합니다. 예를 들어:
{  
  "severity": "ERROR",  
  "time": "2019-12-17T11:49:29.485Z",  
  "correlation_id": "AbDVUrrTvM1",  
  "extra.project_id": 55,  
  "extra.relation_key": "milestones",  
  "extra.relation_index": 1,  
  "exception.class": "NoMethodError",  
  "exception.message": "정의되지 않은 메서드 `strong_memoize' for #<Gitlab::ImportExport::RelationFactory:0x00007fb5d917c4b0>",  
  "exception.backtrace": [  
    "lib/gitlab/import_export/relation_factory.rb:329:in `unique_relation?'",  
    "lib/gitlab/import_export/relation_factory.rb:345:in `find_or_create_object!'"  
  ]  
}  
service_measurement.log
이 파일은 다음 위치에 있습니다:
- 리눅스 패키지 설치에서 
/var/log/gitlab/gitlab-rails/service_measurement.log - 자가 컴파일 설치에서 
/home/git/gitlab/log/service_measurement.log 
각 서비스 실행에 대한 측정 값이 포함된 단일 구조화된 로그만 포함합니다.
SQL 호출 수, execution_time, gc_stats, 메모리 사용량 등의 측정값이 포함되어 있습니다.
예를 들어:
{  
  "severity":"INFO",  
  "time":"2020-04-22T16:04:50.691Z",  
  "correlation_id":"04f1366e-57a1-45b8-88c1-b00b23dc3616",  
  "class":"Projects::ImportExport::ExportService",  
  "current_user":"John Doe",  
  "project_full_path":"group1/test-export",  
  "file_path":"/path/to/archive",  
  "gc_stats":{  
    "count":{  
      "before":127,  
      "after":127,  
      "diff":0  
    },  
    "heap_allocated_pages":{  
      "before":10369,  
      "after":10369,  
      "diff":0  
    },  
    "heap_sorted_length":{  
      "before":10369,  
      "after":10369,  
      "diff":0  
    },  
    "heap_allocatable_pages":{  
      "before":0,  
      "after":0,  
      "diff":0  
    },  
    "heap_available_slots":{  
      "before":4226409,  
      "after":4226409,  
      "diff":0  
    },  
    "heap_live_slots":{  
      "before":2542709,  
      "after":2641420,  
      "diff":98711  
    },  
    "heap_free_slots":{  
      "before":1683700,  
      "after":1584989,  
      "diff":-98711  
    },  
    "heap_final_slots":{  
      "before":0,  
      "after":0,  
      "diff":0  
    },  
    "heap_marked_slots":{  
      "before":2542704,  
      "after":2542704,  
      "diff":0  
    },  
    "heap_eden_pages":{  
      "before":10369,  
      "after":10369,  
      "diff":0  
    },  
    "heap_tomb_pages":{  
      "before":0,  
      "after":0,  
      "diff":0  
    },  
    "total_allocated_pages":{  
      "before":10369,  
      "after":10369,  
      "diff":0  
    },  
    "total_freed_pages":{  
      "before":0,  
      "after":0,  
      "diff":0  
    },  
    "total_allocated_objects":{  
      "before":24896308,  
      "after":24995019,  
      "diff":98711  
    },  
    "total_freed_objects":{  
      "before":22353599,  
      "after":22353599,  
      "diff":0  
    },  
    "malloc_increase_bytes":{  
      "before":140032,  
      "after":6650240,  
      "diff":6510208  
    },  
    "malloc_increase_bytes_limit":{  
      "before":25804104,  
      "after":25804104,  
      "diff":0  
    },  
    "minor_gc_count":{  
      "before":94,  
      "after":94,  
      "diff":0  
    },  
    "major_gc_count":{  
      "before":33,  
      "after":33,  
      "diff":0  
    },  
    "remembered_wb_unprotected_objects":{  
      "before":34284,  
      "after":34284,  
      "diff":0  
    },  
    "remembered_wb_unprotected_objects_limit":{  
      "before":68568,  
      "after":68568,  
      "diff":0  
    },  
    "old_objects":{  
      "before":2404725,  
      "after":2404725,  
      "diff":0  
    },  
    "old_objects_limit":{  
      "before":4809450,  
      "after":4809450,  
      "diff":0  
    },  
    "oldmalloc_increase_bytes":{  
      "before":140032,  
      "after":6650240,  
      "diff":6510208  
    },  
    "oldmalloc_increase_bytes_limit":{  
      "before":68537556,  
      "after":68537556,  
      "diff":0  
    }  
  },  
  "time_to_finish":0.12298400001600385,  
  "number_of_sql_calls":70,  
  "memory_usage":"0.0 MiB",  
  "label":"process_48616"  
}  
geo.log
세부정보:
Tier: Premium, Ultimate
Offering: Self-managed
Geo는 구조화된 로그 메시지를 geo.log 파일에 저장합니다. Linux 패키지 설치의 경우, 이 파일은 /var/log/gitlab/gitlab-rails/geo.log에 있습니다.
Helm 차트 설치의 경우, 이는 Sidekiq 포드에 저장되며, 위치는 /var/log/gitlab/geo.log입니다. 파일을 직접 액세스하거나 kubectl을 사용하여 Sidekiq 로그를 가져온 후, 결과를 "subcomponent"=="geo"로 필터링하여 읽을 수 있습니다. 아래 예는 Geo 로그만 가져오기 위해 jq를 사용하는 방법을 보여줍니다:
kubectl logs -l app=sidekiq --max-log-requests=50 | jq 'select(."subcomponent"=="geo")'
이 파일은 Geo가 리포지토리 및 파일 동기화를 시도할 때에 대한 정보를 포함합니다. 파일의 각 행은 Elasticsearch 또는 Splunk와 같은 곳에 수집될 수 있는 별도의 JSON 항목을 포함합니다.
예를 들면:
{"severity":"INFO","time":"2017-08-06T05:40:16.104Z","message":"Repository update","project_id":1,"source":"repository","resync_repository":true,"resync_wiki":true,"class":"Gitlab::Geo::LogCursor::Daemon","cursor_delay_s":0.038}
이 메시지는 Geo가 프로젝트 1에 대해 리포지토리 업데이트가 필요함을 감지했음을 보여줍니다.
update_mirror_service_json.log
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/update_mirror_service_json.log. - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/update_mirror_service_json.log. 
이 파일은 프로젝트 미러링 중 발생한 LFS 오류에 대한 정보를 포함합니다. 우리는 다른 프로젝트 미러링 오류를 이 로그로 이동하기 위해 작업 중이며, 일반 로그를 사용할 수 있습니다.
{
   "severity":"ERROR",
   "time":"2020-07-28T23:29:29.473Z",
   "correlation_id":"5HgIkCJsO53",
   "user_id":"x",
   "project_id":"x",
   "import_url":"https://mirror-source/group/project.git",
   "error_message":"The LFS objects download list couldn't be imported. Error: Unauthorized"
}
llm.log
세부정보:
Tier: Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
- Introduced in GitLab 16.0.
 
llm.log 파일은 AI 기능과 관련된 정보를 기록합니다. 로깅에는 AI 이벤트에 대한 정보가 포함됩니다.
LLM 입력 및 출력 로깅
- 
Introduced in GitLab 17.2 with a flag named 
expanded_ai_logging. Disabled by default. 
이 기능의 사용 가능성은 기능 플래그에 의해 제어됩니다. 자세한 내용은 기록을 참조하십시오. 이 기능은 테스트를 위해 제공되지만, 생산 사용을 위해 준비되지 않았습니다.
LLM 프롬프트 입력 및 응답 출력을 기록하려면 expanded_ai_logging 기능 플래그를 활성화해야 합니다. 이 플래그는 기본적으로 비활성화되어 있으며, 다음과 같은 경우에만 활성화할 수 있습니다:
- GitLab.com의 경우, GitLab 지원 티켓을 통해 동의를 제공할 때.
 - Self-managed의 경우, 이 기능 플래그를 활성화할 때.
 
기본적으로 로그에는 AI 기능 데이터의 데이터 보존 정책을 지원하기 위해 LLM 프롬프트 입력 및 응답 출력이 포함되지 않습니다.
로그 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/llm.log. - 자체 컴파일 설치의 경우: 
/home/git/gitlab/log/llm.log. 
epic_work_item_sync.log
- Introduced in GitLab 16.9.
 
epic_work_item_sync.log 파일은 작업 항목으로서 에픽을 동기화하고 마이그레이션하는 관련 정보를 기록합니다.
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/epic_work_item_sync.log - 자체 컴파일된 설치의 경우: 
/home/git/gitlab/log/epic_work_item_sync.log 
secret_push_protection.log
- Introduced in GitLab 16.7.
 
secret_push_protection.log 파일은 비밀 푸시 보호 기능과 관련된 정보를 기록합니다.
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우: 
/var/log/gitlab/gitlab-rails/secret_push_protection.log - 자체 컴파일된 설치의 경우: 
/home/git/gitlab/log/secret_push_protection.log 
Registry logs
Linux 패키지 설치의 경우, 컨테이너 레지스트리 로그는 /var/log/gitlab/registry/current에 있습니다.
NGINX logs
Linux 패키지 설치의 경우, NGINX 로그는 다음 위치에 있습니다:
- 
/var/log/gitlab/nginx/gitlab_access.log: GitLab에 전송된 요청 로그 - 
/var/log/gitlab/nginx/gitlab_error.log: GitLab에 대한 NGINX 오류 로그 - 
/var/log/gitlab/nginx/gitlab_pages_access.log: 페이지 정적 사이트에 전송된 요청 로그 - 
/var/log/gitlab/nginx/gitlab_pages_error.log: 페이지 정적 사이트에 대한 NGINX 오류 로그 - 
/var/log/gitlab/nginx/gitlab_registry_access.log: 컨테이너 레지스트리에 전송된 요청 로그 - 
/var/log/gitlab/nginx/gitlab_registry_error.log: 컨테이너 레지스트리에 대한 NGINX 오류 로그 - 
/var/log/gitlab/nginx/gitlab_mattermost_access.log: Mattermost에 전송된 요청 로그 - 
/var/log/gitlab/nginx/gitlab_mattermost_error.log: Mattermost에 대한 NGINX 오류 로그 
아래는 기본 GitLab NGINX 접근 로그 형식입니다:
'$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'
$request와 $http_referer는
필터링되어 있으며, 비밀 토큰과 같은 민감한 쿼리 문자열 매개변수를 포함합니다.
Pages logs
Linux 패키지 설치의 경우, Pages 로그는 /var/log/gitlab/gitlab-pages/current에 있습니다.
예를 들어:
{
  "level": "info",
  "msg": "GitLab Pages Daemon",
  "revision": "52b2899",
  "time": "2020-04-22T17:53:12Z",
  "version": "1.17.0"
}
{
  "level": "info",
  "msg": "URL: https://gitlab.com/gitlab-org/gitlab-pages",
  "time": "2020-04-22T17:53:12Z"
}
{
  "gid": 998,
  "in-place": false,
  "level": "info",
  "msg": "running the daemon as unprivileged user",
  "time": "2020-04-22T17:53:12Z",
  "uid": 998
}
Let’s Encrypt 로그
Linux 패키지 설치의 경우, Let’s Encrypt 자동 갱신 로그는 /var/log/gitlab/lets-encrypt/에 있습니다.
Mattermost 로그
Linux 패키지 설치의 경우, Mattermost 로그는 다음 위치에 있습니다:
- 
    
/var/log/gitlab/mattermost/mattermost.log - 
    
/var/log/gitlab/mattermost/current 
Workhorse 로그
Linux 패키지 설치의 경우, Workhorse 로그는 /var/log/gitlab/gitlab-workhorse/current에 있습니다.
PgBouncer 로그
Linux 패키지 설치의 경우, PgBouncer 로그는 /var/log/gitlab/pgbouncer/current에 있습니다.
PostgreSQL 로그
Linux 패키지 설치의 경우, PostgreSQL 로그는 /var/log/gitlab/postgresql/current에 있습니다.
Prometheus 로그
Linux 패키지 설치의 경우, Prometheus 로그는 /var/log/gitlab/prometheus/current에 있습니다.
Redis 로그
Linux 패키지 설치의 경우, Redis 로그는 /var/log/gitlab/redis/current에 있습니다.
Alertmanager 로그
Linux 패키지 설치의 경우, Alertmanager 로그는 /var/log/gitlab/alertmanager/current에 있습니다.
crond 로그
Linux 패키지 설치의 경우, crond 로그는 /var/log/gitlab/crond/에 있습니다.
Grafana 로그
Linux 패키지 설치의 경우, Grafana 로그는 /var/log/gitlab/grafana/current에 있습니다.
LogRotate 로그
Linux 패키지 설치의 경우, logrotate 로그는 /var/log/gitlab/logrotate/current에 있습니다.
GitLab Monitor 로그
Linux 패키지 설치의 경우, GitLab Monitor 로그는 /var/log/gitlab/gitlab-monitor/에 있습니다.
GitLab Exporter
Linux 패키지 설치의 경우, GitLab Exporter 로그는 /var/log/gitlab/gitlab-exporter/current에 있습니다.
GitLab agent server
Linux 패키지 설치의 경우, GitLab agent server 로그는 /var/log/gitlab/gitlab-kas/current에 있습니다.
Praefect 로그
Linux 패키지 설치의 경우, Praefect 로그는 /var/log/gitlab/praefect/에 있습니다.
GitLab은 또한 Praefect에 대한 Prometheus 메트릭을 추적합니다.
백업 로그
Linux 패키지 설치의 경우, 백업 로그는 /var/log/gitlab/gitlab-rails/backup_json.log에 위치합니다.
이 로그는 GitLab 백업이 생성될 때 채워집니다. 이 로그를 사용하여 백업 프로세스가 어떻게 수행되었는지 이해할 수 있습니다.
성능 바 통계
이 파일은 다음 위치에 있습니다:
- Linux 패키지 설치의 경우 
/var/log/gitlab/gitlab-rails/performance_bar_json.log. - 자체 컴파일 설치의 경우 
/home/git/gitlab/log/performance_bar_json.log. 
성능 바 통계(현재는 SQL 쿼리의 지속 시간만 기록됨)는 해당 파일에 기록됩니다. 예를 들어:
{"severity":"INFO","time":"2020-12-04T09:29:44.592Z","correlation_id":"33680b1490ccd35981b03639c406a697","filename":"app/models/ci/pipeline.rb","method_path":"app/models/ci/pipeline.rb:each_with_object","request_id":"rYHomD0VJS4","duration_ms":26.889,"count":2,"query_type": "active-record"}
이 통계는 .com에만 기록되며, 자체 배포에서는 비활성화됩니다.
로그 수집
문제 해결 중 이전에 나열된 구성 요소 중 하나에 국한되지 않는 문제를 다룰 때, GitLab 인스턴스에서 여러 로그와 통계를 동시에 수집하는 것이 유용합니다.
참고: GitLab 지원팀은 종종 이 중 하나를 요청하며, 필요한 도구를 유지 관리합니다.
주요 로그 간단하게 보기
버그나 오류가 쉽게 재현되는 경우, 문제를 몇 번 재현하는 동안 주요 GitLab 로그를 파일로 저장하세요:
sudo gitlab-ctl tail | tee /tmp/<case-ID-and-keywords>.log
로그 수집을 Control + C로 종료하세요.
GitLabSOS
성능 저하나 연쇄 오류가 발생하여 이전에 나열된 GitLab 구성 요소 중 하나에 쉽게 귀속되지 않을 경우, GitLabSOS는 GitLab 인스턴스에 대한 더 넓은 관점을 제공할 수 있습니다. 더 많은 세부정보와 실행 방법에 대한 지침은 GitLabSOS 문서를 참조하세요.
Fast-stats
Fast-stats는 GitLab 로그에서 성능 통계를 생성하고 비교하는 도구입니다. 더 많은 세부정보와 실행 방법에 대한 지침은 fast-stats 문서를 참조하세요.
상관 관계 ID로 관련 로그 항목 찾기
대부분의 요청에는 관련 로그 항목을 찾기 위해 사용할 수 있는 로그 ID가 있습니다.
        도움말