> 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/envoy.md).

# Envoy 로그

## 개요

Panther는 수집을 지원합니다 [Envoy 액세스](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage) 로그를 스트리밍하여 하나의 [HTTP 소스](/ko/data-onboarding/data-transports/http.md)를 통해 전달된 후, [Fluent Bit.](https://docs.fluentbit.io/manual/)

## Envoy 로그를 Panther에 온보딩하는 방법

### 1단계: Panther에 새 Envoy 로그 소스 만들기

1. Panther Console의 왼쪽 탐색 모음에서 클릭 **로그 소스.**
2. 클릭합니다 **새로 만들기**.
3. "Envoy"를 검색한 다음 해당 타일을 클릭하세요.
   * 슬라이드아웃 패널에서 **전송 메커니즘** 오른쪽 상단의 드롭다운에는 다음이 미리 채워집니다 **HTTP** 옵션.
4. 클릭합니다 **설정 시작**.
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). 헤더 이름과 값을 안전한 위치에 저장하세요. 3단계에서 필요합니다.
   * 이 소스로 전송되는 페이로드는 [모든 HTTP 소스의 페이로드 요구사항](/ko/data-onboarding/data-transports/http.md#payload-requirements).
   * HTTP 엔드포인트 생성이 완료될 때까지 다음 단계로 진행하지 마세요.

### 2단계: Envoy 로깅 구성

{% hint style="info" %}
Envoy 로그에 필드를 추가하거나 제거하여 사용자 지정할 수는 있지만, Panther의 [Envoy.Access 스키마](#envoy.access) 는 기본 로그 형식을 지원하도록 설계되었습니다. 분류 실패를 방지하려면 로그 구성에는 기본 형식을 사용하세요.
{% endhint %}

1. 다음 항목을 추가하세요 `envoy.yml` 구성 파일:
   * 루트 수준에서 관리자 액세스 로깅을 활성화하려면 다음 스니펫을 추가하세요:

     ```yaml
     admin:
       access_log_path: "access.log"
     ```
   * 리소스 섹션에서 액세스 로깅을 활성화하려는 각 리소스에 다음 스니펫을 추가하세요:

     ```yaml
      access_log:
      - name: envoy.access_loggers.file
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
          path: "access.log"
     ```

{% hint style="info" %}
액세스 로그 파일 경로(`access.log` 위에), Fluent Bit 구성에서도 적절한 위치를 가리키도록 하세요.
{% endhint %}

2. 업데이트된 구성 파일을 가리키도록 Envoy 프록시를 다시 시작하려면 다음을 실행하세요 `envoy -c envoy.yml`.

### 3단계: Fluent Bit 구성

1. 다음을 따르세요. [Fluent Bit 시작하기 안내](https://docs.fluentbit.io/manual/installation/getting-started-with-fluent-bit) Fluent Bit을 서비스로 설치합니다.
2. 다음을 생성합니다 [Fluent Bit 구성 파일](https://docs.fluentbit.io/manual/administration/configuring-fluent-bit/classic-mode/configuration-file), 그리고 다음 필드를 설정하세요:

   * `[INPUT]` 변수:
     * **이름:** 다음으로 설정 `tail`.
     * **경로**: 로그 파일 경로로 설정하세요.
     * **파서**: 다음으로 설정 `envoy`.
   * `[OUTPUT]` 변수:
     * **호스트**: Panther URL을 입력합니다.
       * 예: `logs.instance-name.runpanther.net`
     * **URI**: 이 프로세스의 1단계에서 생성된 HTTP Source 수집 URL의 끝부분을 다음으로 시작하는 값으로 입력합니다 `/http/`.
       * 예: `/http/cb015ee4-543c-4489-9f4b-testaa16d7a`
     * **헤더**: 1단계에서 Panther Console의 HTTP 소스를 구성할 때 생성한 헤더 이름과 생성한 비밀값을 입력합니다.
     * **Format**: 다음으로 설정 `json_lines`
     * **이름**: 다음으로 설정 `http`.
     * **TLS**: 다음으로 설정 `켜기`.
     * **포트**: 다음으로 설정 `443`.

   ```editorconfig
   [SERVICE]
       Flush      1
   [INPUT]
       Name       tail
       # 이 경로는 envoy.yml 구성에 따라 다릅니다
       경로       /var/log/envoy/access.log
       파서     envoy

   [OUTPUT]
       Name       http
       Match      *
       호스트       logs.pre-alpha.runpanther.net
       Port       443
       URI        /http/6897ec53-9c4c-4fc7-a8c8-faf7b29571de
       # x-sender-header 이름이 헤더 이름과 일치하는지 확인하세요
       # Panther에서 HTTP 소스를 만들 때 제공한
       Header     x-sender-header {YOUR_SECRET_HERE}
       Format     json_lines
       TLS        On
       TLS.Verify On
   ```
3. 새 구성 파일 경로와 `parsers.conf` 파일 경로를 전달하여 Fluent Bit을 시작하세요. 이 `envoy` 파서는 Fluent Bit에 포함된 기본 파서 구성에서 사용할 수 있습니다.
   * 예: `fluent-bit -c fluent.conf -R /var/etc/fluent-bit/parsers.conf`

## 지원되는 로그 유형

### Envoy.Access

다음은 Envoy 액세스 로그 스키마를 정의합니다:

```yaml
스키마: Envoy.Access
설명: FluentBit을 사용한 HTTP 기반 Envoy 액세스 로그
필드:
  - 이름: start_time
    설명: 요청 시작 시간.
    유형: timestamp
    시간 형식:
      - rfc3339
    이벤트 시간 여부: true
  - 이름: method
    설명: GET, POST 등과 같은 HTTP 요청 메서드.
    유형: string
  - 이름: path
    설명: 요청의 URI 경로.
    유형: string
  - 이름: protocol
    설명: HTTP 프로토콜 버전.
    유형: string
  - 이름: code
    설명: 응답의 HTTP 상태 코드.
    유형: string
  - 이름: response_flags
    설명: 응답과 관련된 추가 플래그.
    유형: string
  - 이름: bytes_received
    설명: 클라이언트로부터 수신된 바이트 수.
    유형: string
  - 이름: bytes_sent
    설명: 클라이언트로 전송된 바이트 수.
    유형: string
  - 이름: duration
    설명: 요청의 총 소요 시간.
    유형: string
  - 이름: x_envoy_upstream_service_time
    설명: 업스트림 서비스에서 소요된 시간.
    유형: string
  - 이름: x_forwarded_for
    설명: X-Forwarded-For 헤더(있는 경우).
    유형: string
  - 이름: user_agent
    설명: 요청 헤더의 User-Agent 문자열.
    유형: string
  - 이름: request_id
    설명: 요청 ID 헤더 값.
    유형: string
  - 이름: authority
    설명: authority 헤더 값.
    유형: string
  - 이름: upstream_host
    설명: 요청에 대해 선택된 업스트림 호스트.
    유형: 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/envoy.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.
