> For the complete documentation index, see [llms.txt](https://docs.panther.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.panther.com/ko/data-onboarding/supported-logs/gitlab.md).

# GitLab 로그

## 개요

Panther는 다음을 사용하여 GitLab 로그 온보드를 지원합니다 [데이터 전송](/ko/data-onboarding/data-transports.md) 메커니즘입니다.

이 페이지는 두 가지 절차를 설명합니다: GitLab 감사 로그의 온보드 절차와 모든 다른 GitLab 로그 유형의 온보드 절차입니다. 이러한 절차는 감사 로그가 다음을 통해 수집되는 반면 [GitLab 감사 이벤트 스트리밍](https://docs.gitlab.com/ee/administration/audit_event_streaming/), 반면 감사 로그가 아닌 로그는 GitLab API를 통해 가져옵니다.

감사 로그는 다음을 사용하여 수집할 수 있습니다 [HTTP 소스](/ko/data-onboarding/data-transports/http.md), 반면 다른 GitLab 로그는 Amazon Web Services(AWS) [S3](/ko/data-onboarding/data-transports/aws/s3.md) 및 [SQS](/ko/data-onboarding/data-transports/aws/sqs.md).

{% hint style="warning" %}
다음을 사용하여 GitLab 감사 로그를 Panther로 수집하려면 [감사 이벤트 스트리밍](https://docs.gitlab.com/ee/administration/audit_event_streaming/) 아래에 설명된 대로, 다음이 필요합니다 [GitLab Ultimate](https://about.gitlab.com/pricing/).
{% endhint %}

## GitLab 감사 스트리밍 로그를 Panther에 온보딩하는 방법

이 절차는 GitLab의 온보드 방법을 설명합니다 [감사](#gitlab.audit) 로그입니다. API, Exceptions, Integrations, Git, Production과 같은 다른 유형의 GitLab 로그를 온보드하려면 아래의 별도 [API](#gitlab.api), [Exceptions](#gitlab.exceptions), [Integrations](#gitlab.integrations), [Git](#gitlab.git), 및 [Production](#gitlab.production) 로그를 온보드하려면 아래의 별도 [감사 로그가 아닌 GitLab 로그를 Panther에 온보딩하는 방법](#how-to-onboard-non-audit-gitlab-logs-to-panther) 절차를 따르세요.

### 1단계: Panther에서 HTTP 소스 만들기

1. Panther Console의 왼쪽 탐색 모음에서 **로그 소스**.
2. 클릭합니다 **새로 만들기**.
3. "GitLab"을 검색한 다음 해당 타일을 클릭합니다.
   * 슬라이드아웃 패널에서 **전송 메커니즘** 오른쪽 상단의 드롭다운에는 미리 다음이 채워져 있습니다 **HTTP** 옵션.
4. 클릭합니다 **설정 시작**.\
   ![On the GitLab page of the source setup process in Panther, there is a Transport Mechanism dropdown field with a value of HTTP. To its right is a Start Setup button.](/files/41797f750e93ebe7a5892bcde95ea2006ab8fde2)
5. Panther의 [HTTP 소스 구성 지침을 따르세요](/ko/data-onboarding/data-transports/http.md#how-to-set-up-an-http-log-source-in-panther), 5단계부터 시작합니다.
   * 다음을 사용해야 합니다 [공유 비밀 인증](/ko/data-onboarding/data-transports/http.md#shared-secret). 이는 GitLab이 지원하는 유일한 인증 방식입니다.
   * 다음 **헤더 이름** 다음과 연결된 **비밀 키 값** 값으로 고정됩니다 `x-panther-gitlab`.
   * 이 소스로 전송되는 페이로드는 [모든 HTTP 소스의 페이로드 요구사항](/ko/data-onboarding/data-transports/http.md#payload-requirements).
   * HTTP 엔드포인트 생성이 완료될 때까지 다음 단계로 진행하지 마세요.

### 2단계: GitLab에서 감사 로그 스트리밍 설정

* GitLab 문서에서 다음을 따르세요 [새 HTTP 대상 추가](https://docs.gitlab.com/ee/administration/audit_event_streaming/#add-a-new-http-destination) 절차를.
  * 다음 **대상** 필드에 1단계에서 생성한 URL을 입력합니다.
  * 이름이 다음인 헤더를 추가합니다 `x-panther-gitlab` 그리고 1단계에서 Panther에 구성한 비밀을 입력합니다.

## 감사 로그가 아닌 GitLab 로그를 Panther에 온보딩하는 방법

아래 절차는 다음과 같은 감사 로그가 아닌 GitLab 로그를 Panther에 온보드하는 방법을 설명합니다 [API](#gitlab.api), [Exceptions](#gitlab.exceptions), [Git](#gitlab.git), [Integrations](#gitlab.integrations), 및 [Production](#gitlab.production) 로그입니다. 온보드하려는 경우 [감사](#gitlab.audit) 로그를 온보드하려면 아래의 별도 [GitLab 감사 스트리밍 로그를 Panther에 온보딩하는 방법](#how-to-onboard-gitlab-audit-streaming-logs-to-panther) 위의 절차를 따르세요.

이 로그를 Panther에 연결하려면:

1. Panther Console에 로그인합니다.
2. 왼쪽 사이드바에서 다음을 클릭합니다 **로그 소스**.
3. 클릭합니다 **새로 만들기**.
4. 온보드하려는 로그 유형을 검색한 다음 해당 타일을 클릭합니다.
5. 이 통합에 사용할 데이터 전송 방법을 선택한 다음 해당 방법 구성에 대한 Panther의 지침을 따르세요:
   * [AWS S3 버킷](/ko/data-onboarding/data-transports/aws/s3.md)
   * [AWS SQS](/ko/data-onboarding/data-transports/aws/sqs.md)
6. GitLab이 로그를 데이터 전송 소스로 푸시하도록 구성합니다.
   * 선택한 데이터 전송 소스로 로그를 푸시하는 방법은 GitLab 문서를 참조하세요.

## 지원되는 로그 유형

### GitLab.API

Panther는 GitLab API 로그의 최신 버전을 사용합니다. 일부 필드는 공식 문서와 다릅니다.

참조: [API JSON 로그에 대한 GitLab 문서](https://docs.gitlab.com/ee/administration/logs/#api_jsonlog).

```yaml
스키마: GitLab.API
description: |-
    GitLab에서 수신한 API 요청에 대한 GitLab 로그입니다.
    참고: GitLab API 로그의 최신 버전을 사용하고 있습니다. 일부 필드는 공식 문서와 다릅니다
referenceURL: https://docs.gitlab.com/ee/administration/logs/#api_jsonlog
필드:
    - name: time
      필수: true
      설명: 요청 타임스탬프
      유형: timestamp
      시간 형식:
        - rfc3339
      이벤트 시간 여부: true
    - 이름: severity
      필수: true
      설명: 로그 수준
      유형: string
    - 이름: duration_s
      필수: true
      설명: 요청을 처리하는 데 걸린 시간(초)
      유형: float
    - 이름: db_duration_s
      설명: 데이터베이스를 쿼리하는 데 걸린 시간(초)
      유형: float
    - 이름: view_duration_s
      설명: Rails 컨트롤러의 뷰를 렌더링하는 데 걸린 시간(초)
      유형: float
    - 이름: status
      필수: true
      설명: HTTP 응답 상태 코드
      유형: smallint
    - 이름: method
      필수: true
      설명: 요청의 HTTP 메서드
      유형: string
    - 이름: path
      필수: true
      설명: 요청의 URL 경로
      유형: string
    - 이름: params
      설명: URL 쿼리 매개변수
      유형: array
      요소:
        유형: object
        필드:
            - 이름: key
              필수: true
              설명: 쿼리 매개변수 이름
              유형: string
            - 이름: value
              설명: 쿼리 매개변수 값
              유형: json
    - name: host
      필수: true
      설명: 요청을 처리하는 호스트 이름
      유형: string
      지표:
        - 호스트 이름
    - 이름: ua
      설명: User-Agent HTTP 헤더
      유형: string
    - 이름: route
      필수: true
      설명: API 엔드포인트의 Rails 라우트
      유형: string
    - 이름: remote_ip
      설명: HTTP 요청의 원격 IP 주소
      유형: string
      지표:
        - ip
    - 이름: user_id
      설명: 요청의 사용자 ID
      유형: bigint
    - 이름: username
      설명: 요청의 사용자 이름
      유형: string
      지표:
        - username
    - 이름: gitaly_calls
      설명: Gitaly에 대해 수행된 총 호출 수
      유형: bigint
    - 이름: gitaly_duration_s
      설명: Gitaly 호출에 소요된 총 시간
      유형: float
    - 이름: redis_calls
      설명: Redis에 대해 수행된 총 호출 수
      유형: bigint
    - 이름: redis_duration_s
      설명: Redis에서 데이터를 검색하는 데 걸린 총 시간
      유형: float
    - 이름: correlation_id
      설명: 로그 전반에서 고유한 요청 ID
      유형: string
      지표:
        - trace_id
    - 이름: queue_duration_s
      설명: 요청이 GitLab Workhorse 내부에서 큐에 대기한 총 시간
      유형: float
    - 이름: meta.user
      설명: 요청을 호출한 사용자
      유형: string
      지표:
        - username
    - 이름: meta.project
      설명: 요청과 연결된 프로젝트
      유형: string
    - 이름: meta.root_namespace
      설명: 루트 네임스페이스
      유형: string
    - 이름: meta.caller_id
      설명: 호출자 ID
      유형: string
```

### GitLab.Audit

자체 호스팅 감사 로그 파일과 GitLab의 감사 이벤트 스트리밍 기능 모두에서 가져온 GitLab 감사 이벤트용 다목적 스키마입니다.

자세한 내용은 다음을 참조하세요: [감사 JSON 로그에 대한 GitLab 문서](https://docs.gitlab.com/ee/administration/logs/#audit_jsonlog) 및 [감사 이벤트 스트리밍에 대한 GitLab 문서](https://docs.gitlab.com/ee/administration/audit_event_streaming/).

```yaml
스키마: GitLab.Audit
설명: '자체 호스팅 감사 로그 파일과 GitLab''s 감사 이벤트 스트리밍 기능 모두에서 가져온 GitLab 감사 이벤트용 다목적 스키마: https://docs.gitlab.com/ee/administration/audit_event_streaming/'
referenceURL: https://docs.gitlab.com/ee/administration/logs/#audit_jsonlog
필드:
    - 이름: severity
      설명: 로그 수준. 감사 로그 파일에만 존재합니다.
      유형: string
    - name: time
      설명: 이벤트 타임스탬프. 감사 로그 파일에만 존재합니다.
      유형: timestamp
      시간 형식:
        - rfc3339
      이벤트 시간 여부: true
    - 이름: author_id
      필수: true
      설명: 변경을 수행한 사용자 ID
      유형: bigint
    - 이름: entity_id
      필수: true
      설명: 수정된 엔터티의 ID
      유형: bigint
    - 이름: entity_type
      필수: true
      설명: 수정된 엔터티의 유형
      유형: string
    - 이름: change
      설명: 설정 변경 유형. 감사 로그 파일에만 존재합니다.
      유형: string
    - 이름: from
      설명: 이전 설정 값. 감사 로그 파일에만 존재합니다.
      유형: string
    - 이름: to
      설명: 새 설정 값. 감사 로그 파일에만 존재합니다.
      유형: string
    - 이름: author_name
      필수: true
      설명: 변경을 수행한 사용자의 이름
      유형: string
    - 이름: target_id
      설명: 수정된 설정의 대상 ID
      유형: bigint
    - 이름: target_type
      설명: 수정된 설정의 대상 유형
      유형: string
    - 이름: target_details
      설명: 수정된 설정 대상의 세부 정보
      유형: string
    - 이름: created_at
      설명: 이벤트가 트리거된 시점의 타임스탬프. 감사 이벤트 스트리밍에서만 제공됩니다.
      유형: timestamp
      시간 형식:
        - rfc3339
      이벤트 시간 여부: true
    - 이름: details
      설명: 추가 메타데이터가 포함된 JSON 객체. 감사 이벤트 스트리밍에서만 제공됩니다.
      유형: json
    - 이름: entity_path
      설명: 감사 가능한 이벤트의 영향을 받은 엔터티의 전체 경로. 감사 이벤트 스트리밍에서만 제공됩니다.
      유형: string
    - 이름: event_type
      설명: 감사 이벤트 유형의 문자열 표현입니다. 감사 이벤트 스트리밍에서만 제공됩니다.
      유형: string
    - 이름: id
      설명: 감사 이벤트의 고유 식별자입니다. 감사 이벤트 스트리밍에서만 제공됩니다.
      유형: string
    - 이름: ip_address
      설명: 이벤트를 트리거하는 데 사용된 호스트의 IP 주소. 감사 이벤트 스트리밍에서만 제공됩니다.
      유형: string
      지표:
        - ip
```

### GitLab.Exceptions

그룹 또는 프로젝트 설정 변경을 포함하는 GitLab 로그 파일

참조: [JSON 로그의 예외에 대한 GitLab 문서](https://docs.gitlab.com/ee/administration/logs/#exceptions_jsonlog).

```yaml
스키마: GitLab.Exceptions
설명: 그룹 또는 프로젝트 설정 변경을 포함하는 GitLab 로그 파일
referenceURL: https://docs.gitlab.com/ee/administration/logs/#exceptions_jsonlog
필드:
    - 이름: severity
      필수: true
      설명: 로그 수준
      유형: string
    - name: time
      필수: true
      설명: 이벤트 타임스탬프
      유형: timestamp
      시간 형식:
        - rfc3339
      이벤트 시간 여부: true
    - 이름: correlation_id
      설명: 로그 전반에서 고유한 요청 ID
      유형: string
      지표:
        - trace_id
    - 이름: extra.server
      설명: 예외가 발생한 서버에 대한 정보
      유형: object
      필드:
        - 이름: os
          설명: 서버 OS 정보
          유형: object
          필드:
            - 이름: name
              설명: OS 이름
              유형: string
            - 이름: version
              설명: OS 버전
              유형: string
            - 이름: build
              설명: OS 빌드
              유형: string
        - 이름: runtime
          설명: gitlab 코드를 실행하는 런타임
          유형: object
          필드:
            - 이름: name
              설명: 런타임 이름
              유형: string
            - 이름: version
              설명: 런타임 버전
              유형: string
    - 이름: extra.project_id
      설명: 예외가 발생한 프로젝트 ID
      유형: bigint
    - 이름: extra.relation_key
      설명: 예외가 발생한 관계
      유형: string
    - 이름: extra.relation_index
      설명: 예외가 발생한 관계 인덱스
      유형: bigint
    - 이름: exception.class
      필수: true
      설명: 발생한 예외의 클래스 이름
      유형: string
    - 이름: exception.message
      필수: true
      설명: 발생한 예외의 메시지
      유형: string
    - 이름: exception.backtrace
      설명: 발생한 예외의 스택 추적
      유형: array
      요소:
        유형: string
```

### GitLab.Git

GitLab에서 Git 저장소로 보낸 모든 실패한 요청을 포함하는 GitLab 로그 파일입니다.

참조: [JSON 로그의 git에 대한 GitLab 문서](https://docs.gitlab.com/ee/administration/logs/#git_jsonlog).

```yaml
스키마: GitLab.Git
설명: GitLab에서 Git 저장소로 보낸 모든 실패한 요청을 포함하는 GitLab 로그 파일입니다.
referenceURL: https://docs.gitlab.com/ee/administration/logs/#git_jsonlog
필드:
    - 이름: severity
      필수: true
      설명: 로그 수준
      유형: string
    - name: time
      필수: true
      설명: 이벤트 타임스탬프
      유형: timestamp
      시간 형식:
        - rfc3339
      이벤트 시간 여부: true
    - 이름: correlation_id
      설명: 로그 전반의 고유 ID
      유형: string
      지표:
        - trace_id
    - 이름: message
      필수: true
      설명: git에서 반환된 오류 메시지
      유형: string
```

### GitLab.Integrations

Jira, Asana, Irker 서비스와 같은 통합 활동에 대한 정보를 포함하는 GitLab 로그입니다.

참조: [JSON 로그의 통합에 대한 GitLab 문서](https://docs.gitlab.com/ee/administration/logs/#integrations_jsonlog).

```yaml
스키마: GitLab.Integrations
설명: Jira, Asana, Irker 서비스와 같은 통합 활동에 대한 정보를 포함하는 GitLab 로그입니다.
referenceURL: https://docs.gitlab.com/ee/administration/logs/#integrations_jsonlog
필드:
    - 이름: severity
      필수: true
      설명: 로그 수준
      유형: string
    - name: time
      필수: true
      설명: 이벤트 타임스탬프
      유형: timestamp
      시간 형식:
        - rfc3339
      이벤트 시간 여부: true
    - 이름: service_class
      필수: true
      설명: 통합된 서비스의 클래스 이름
      유형: string
    - 이름: project_id
      필수: true
      설명: 통합이 실행 중이던 프로젝트 ID
      유형: bigint
    - 이름: project_path
      필수: true
      설명: 통합이 실행 중이던 프로젝트 경로
      유형: string
    - 이름: message
      필수: true
      설명: 서비스의 로그 메시지
      유형: string
    - 이름: client_url
      필수: true
      설명: 서비스의 클라이언트 URL
      유형: string
      지표:
        - url
    - 이름: error
      설명: 오류가 발생한 경우의 오류 이름
      유형: string
```

### GitLab.Production

GitLab에서 수신한 Production 컨트롤러 요청에 대한 GitLab 로그

참조: [JSON 로그의 production에 대한 GitLab 문서](https://docs.gitlab.com/ee/administration/logs/#production_jsonlog).

```yaml
스키마: GitLab.Production
설명: GitLab에서 수신한 Production 컨트롤러 요청에 대한 GitLab 로그
referenceURL: https://docs.gitlab.com/ee/administration/logs/#production_jsonlog
필드:
    - 이름: method
      필수: true
      설명: 요청의 HTTP 메서드
      유형: string
    - 이름: path
      필수: true
      설명: 요청의 URL 경로
      유형: string
    - 이름: format
      설명: 응답 출력 형식
      유형: string
    - 이름: controller
      설명: Production 컨트롤러 클래스 이름
      유형: string
    - 이름: action
      설명: Production 컨트롤러 동작
      유형: string
    - 이름: status
      필수: true
      설명: HTTP 응답 상태 코드
      유형: bigint
    - name: time
      필수: true
      설명: 요청 타임스탬프
      유형: timestamp
      시간 형식:
        - rfc3339
      이벤트 시간 여부: true
    - 이름: params
      설명: URL 쿼리 매개변수
      유형: array
      요소:
        유형: object
        필드:
            - 이름: key
              필수: true
              설명: 쿼리 매개변수 이름
              유형: string
            - 이름: value
              설명: 쿼리 매개변수 값
              유형: json
    - 이름: remote_ip
      설명: HTTP 요청의 원격 IP 주소
      유형: string
      지표:
        - ip
    - 이름: user_id
      설명: 요청의 사용자 ID
      유형: bigint
    - 이름: username
      설명: 요청의 사용자 이름
      유형: string
      지표:
        - username
    - 이름: ua
      설명: 요청자의 User-Agent
      유형: string
    - 이름: queue_duration_s
      설명: 요청이 GitLab Workhorse 내부에서 큐에 대기한 총 시간
      유형: float
    - 이름: gitaly_calls
      설명: Gitaly에 대해 수행된 총 호출 수
      유형: bigint
    - 이름: gitaly_duration_s
      설명: Gitaly 호출에 소요된 총 시간
      유형: float
    - 이름: redis_calls
      설명: Redis에 대해 수행된 총 호출 수
      유형: bigint
    - 이름: redis_duration_s
      설명: Redis에서 데이터를 검색하는 데 걸린 총 시간
      유형: float
    - 이름: redis_read_bytes
      설명: Redis에서 읽은 총 바이트 수
      유형: bigint
    - 이름: redis_write_bytes
      설명: Redis에 쓴 총 바이트 수
      유형: bigint
    - 이름: correlation_id
      설명: 로그 전반에서 고유한 요청 ID
      유형: string
      지표:
        - trace_id
    - 이름: cpu_s
      설명: CPU에 사용한 총 시간
      유형: float
    - 이름: db_duration_s
      설명: PostgreSQL에서 데이터를 가져오는 데 걸린 총 시간
      유형: float
    - 이름: view_duration_s
      설명: Rails 뷰 내부에서 소요된 총 시간
      유형: float
    - 이름: duration_s
      필수: true
      설명: 요청을 가져오는 데 걸린 총 시간
      유형: float
    - 이름: meta.caller_id
      설명: 호출자 ID
      유형: string
    - 이름: location
      설명: (리디렉션에만 적용) 리디렉션 URL
      유형: string
    - 이름: exception.class
      설명: 발생한 예외의 클래스 이름
      유형: string
    - 이름: exception.message
      설명: 발생한 예외의 메시지
      유형: string
    - 이름: exception.backtrace
      설명: 발생한 예외의 스택 추적
      유형: array
      요소:
        유형: string
    - 이름: etag_route
      설명: 라우트 이름 etag(리디렉션에서)
      유형: string
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.panther.com/ko/data-onboarding/supported-logs/gitlab.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
