> 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"
     ```
   * resources 섹션에서 액세스 로깅을 활성화하려는 각 리소스에 다음 스니펫을 추가하세요:

     ```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 구성에 따라 다릅니다
       Path       /var/log/envoy/access.log
       Parser     envoy

   [OUTPUT]
       Name       http
       Match      *
       Host       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` 파일. 그 `envoy` 파서는 Fluent Bit에 기본 포함된 파서 구성에서 사용할 수 있습니다.
   * 예: `fluent-bit -c fluent.conf -R /var/etc/fluent-bit/parsers.conf`

## 지원되는 로그 유형

### Envoy.Access

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

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

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

The question should be specific, self-contained, and written in natural language.
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.
