> 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/panther-log-forwarder.md).

# Panther Log Forwarder(베타)

## 개요

{% hint style="info" %}
Panther Log Forwarder는 Panther 1.121 버전부터 오픈 베타이며 모든 고객이 사용할 수 있습니다. 버그 보고와 기능 요청은 Panther 지원팀에 공유해 주세요.
{% endhint %}

Panther Log Forwarder는 온프레미스 인프라에서 Panther로 로그를 전달하는 경량 도구입니다. 파일 또는 syslog에서 로그를 수집하고 HTTP 소스 또는 S3 버킷을 통해 Panther로 전송합니다.

## 다운로드 링크

플랫폼별 최신 릴리스를 다운로드하세요:

| 플랫폼            | 다운로드 링크                                                                                                                                                                    | 체크섬                                                                                                                                           |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Linux(x86\_64) | [panther-log-forwarder\_linux\_amd64.tar.gz](https://panther-community-us-east-1.s3.us-east-1.amazonaws.com/log-forwarder/latest/panther-log-forwarder_linux_amd64.tar.gz) | [SHA256](https://panther-community-us-east-1.s3.us-east-1.amazonaws.com/log-forwarder/latest/panther-log-forwarder_linux_amd64.tar.gz.sha256) |
| Linux(ARM64)   | [panther-log-forwarder\_linux\_arm64.tar.gz](https://panther-community-us-east-1.s3.us-east-1.amazonaws.com/log-forwarder/latest/panther-log-forwarder_linux_arm64.tar.gz) | [SHA256](https://panther-community-us-east-1.s3.us-east-1.amazonaws.com/log-forwarder/latest/panther-log-forwarder_linux_arm64.tar.gz.sha256) |

## 시작하기

{% hint style="info" %}
다음을 생성할 수 있습니다 [Log Forwarder 소스](broken://pages/ecaca434ceda442df9969aa8dc100789a94b9eb3) Panther Console에서 Panther 계정에 로그를 보낼 S3 버킷을 자동으로 만들고, PLF 에이전트에 바로 사용할 수 있는 YAML 구성을 생성할 수 있습니다.
{% endhint %}

다음 단계에 따라 로그 포워더를 설치하고 몇 분 안에 로그 전송을 시작할 수 있습니다. 이는 기본 구성으로 파일에서 Panther의 HTTP 소스로 로그를 보내는 예시입니다. S3 버킷으로 로그를 보내는 방법과 더 많은 구성 옵션은 아래를 참조하세요.

### 사전 요구 사항

* systemd가 있는 Linux(Ubuntu 20.04+, Debian 11+, RHEL 8+, Rocky Linux 8+)
* Sudo/root 권한
* Panther Console의 HTTP 소스 URL과 Bearer 토큰(참조 [HTTP 전송 문서](/ko/data-onboarding/data-transports/http.md))

### 1단계: 설치

```bash
# 다운로드(x86_64 — ARM64의 경우 "amd64"를 "arm64"로 바꾸세요)
wget https://panther-community-us-east-1.s3.us-east-1.amazonaws.com/log-forwarder/latest/panther-log-forwarder_linux_amd64.tar.gz

# 압축 해제 및 설치
tar -xzf panther-log-forwarder_linux_amd64.tar.gz
cd panther-log-forwarder
sudo ./install.sh
```

{% hint style="info" %}
**선택 사항: 설치 전에 체크섬 확인**

```bash
wget https://panther-community-us-east-1.s3.us-east-1.amazonaws.com/log-forwarder/latest/panther-log-forwarder_linux_amd64.tar.gz.sha256
sha256sum -c panther-log-forwarder_linux_amd64.tar.gz.sha256
```

{% endhint %}

### 2단계: 포워더 구성

다음 위치에 YAML 파일을 만듭니다 `/etc/panther-log-forwarder/forwarders.d/` 그리고 다음 내용을 붙여넣으세요. 다음의 `url` 및 `token` 값을 HTTP 로그 소스의 값으로 바꾸세요.

```yaml
forwarders:
  my_app_logs:
    input:
      type: file
      path: /var/log/testapp
    output:
      type: http
      url: https://logs.your-instance.runpanther.net/http/YOUR_SOURCE_ID
      auth:
        type: bearer
        token: YOUR_BEARER_TOKEN
```

### 3단계: 검증 및 시작

```bash
# 구성 검증
sudo panther-log-forwarder validate

# Panther에 대한 연결 확인
sudo panther-log-forwarder check-connectivity

# 서비스 시작
sudo systemctl start panther-log-forwarder
sudo systemctl enable panther-log-forwarder

# 실행 중인지 확인
sudo panther-log-forwarder status
```

{% hint style="success" %}
로그는 몇 분 안에 Panther의 Data Explorer에 표시되어야 합니다.
{% endhint %}

***

## 명령

| 명령어                                                         | 설명                  |
| ----------------------------------------------------------- | ------------------- |
| `panther-log-forwarder validate`                            | 구성 구문 검증            |
| `panther-log-forwarder check-connectivity`                  | 모든 대상에 대한 연결 테스트    |
| `panther-log-forwarder check-connectivity --forwarder NAME` | 특정 포워더 테스트          |
| `panther-log-forwarder start`                               | 전경에서 실행(디버깅용)       |
| `panther-log-forwarder status`                              | 상태, 메트릭, 포워더별 통계 표시 |
| `panther-log-forwarder --version`                           | 버전 표시               |

프로덕션에서는 systemd를 사용하세요: `sudo systemctl start panther-log-forwarder`

***

## 구성 참조

로그 포워더는 두 종류의 구성 파일을 사용합니다:

1. **전역 설정** 의 `/etc/panther-log-forwarder/panther.conf` — 설치 중에 합리적인 기본값으로 자동 생성됩니다
2. **포워더 정의** 의 `/etc/panther-log-forwarder/forwarders.d/*.yaml` — 수집할 로그와 전송 위치를 정의하기 위해 직접 만듭니다

### 전역 구성

설치 프로그램이 기본값으로 다음을 생성합니다 `/etc/panther-log-forwarder/panther.conf` 기본값을 변경해야 하는 경우에만 편집하세요:

```yaml
# /etc/panther-log-forwarder/panther.conf
default_source_buffer_size: 3GB   # 포워더당 디스크 버퍼(기본값: 3GB)
log_level: info                   # debug, info, warn, error (기본값: info)
log_format: text                  # text 또는 json (기본값: text)
```

### 포워더 구성

각 포워더는 아래에 고유한 이름으로 추가됩니다 `forwarders` 그리고 `input` (수집할 항목)과 `output` (전송 위치) 섹션이 있습니다.

포워더 이름은 문자로 시작해야 하며 영숫자, 밑줄, 하이픈만 포함할 수 있고 길이는 1\~64자여야 합니다.

포워더를 여러 파일에 나누어 구성하거나 하나에 모두 넣을 수 있습니다 — 어떤 `.yaml` 파일이 `forwarders.d/` 에 있으면 로드됩니다.

### 입력 유형

#### 파일 입력

글롭 패턴을 사용하여 로그 파일을 따라갑니다:

```yaml
input:
  type: file
  path: /var/log/app/*.log       # 글롭 지원: *.log, **/*.log
  excludes: ["*.gz", "*.zip"]    # 선택 사항: 건너뛸 패턴
  read_from: end                 # 선택 사항: "end"(기본값) 또는 "beginning"
```

| 필드          | 필수  | 기본값 | 설명                                                                          |
| ----------- | --- | --- | --------------------------------------------------------------------------- |
| `유형`        | 예   | —   | 반드시 `file`                                                                  |
| `경로`        | 예   | —   | 파일 경로 또는 글롭 패턴                                                              |
| `excludes`  | 아니요 | —   | 제외할 글롭 패턴 배열                                                                |
| `read_from` | 아니요 | `끝` | `끝` = 새 줄만; `시작` = 기존 콘텐츠 읽기                                                |
| `형식`        | 아니요 | —   | 콘텐츠 형식 힌트. 다음으로 설정 `syslog` syslog 형식 파일을 따라갈 때(함께 사용 `parse: json`, 아래 참조) |
| `parse`     | 아니요 | —   | 다음으로 설정 `json` 하여 syslog 줄을 구조화된 JSON으로 파싱합니다(요구 사항 `format: syslog`)       |

{% hint style="warning" %}
사용 시 `read_from: beginning` 파일에 있는 기존 로그 줄을 모두 전송합니다. 큰 파일의 경우 상당한 시간과 디스크 버퍼 공간이 필요할 수 있습니다.
{% endhint %}

**참고:**

* 줄바꿈으로 구분된 로그만 지원됩니다(한 로그 항목당 한 줄)
* 현재 여러 줄 로그는 지원되지 않습니다
* 시작 시 로그 포워더는 파일 경로에 접근 가능한지 확인하고 시작하기 전에 권한 오류를 보고합니다

#### Syslog 입력

네트워크를 통해 syslog 메시지를 수신합니다:

```yaml
input:
  type: syslog
  mode: tcp              # "tcp" 또는 "udp"
  address: 0.0.0.0:1514  # 수신 주소
```

| 필드      | 필수  | 설명                                             |
| ------- | --- | ---------------------------------------------- |
| `유형`    | 예   | 반드시 `syslog`                                   |
| `모드`    | 예   | `tcp` 또는 `udp`                                 |
| `주소`    | 예   | 수신할 호스트와 포트                                    |
| `parse` | 아니요 | 다음으로 설정 `json` syslog 메시지를 구조화된 JSON으로 파싱하기 위해 |

**참고:**

* 메시지는 Panther로 원시 형식으로 전송됩니다. 메시지가 RFC 3164 또는 RFC 5424 형식을 따른다면, Panther에 내장된 해당 syslog 스키마([`Syslog.RFC5424`](https://docs.panther.com/ko/data-onboarding/pages/e2ef2ec852b6071be2513315909591bc2771c13e#syslog.rfc5424)/[`Syslog.RFC3164`](https://docs.panther.com/ko/data-onboarding/pages/e2ef2ec852b6071be2513315909591bc2771c13e#syslog.rfc3164))를 사용하여 올바르게 파싱하고 분류할 수 있습니다.
* 사용 `parse: json` 하여 메시지를 json으로 파싱해 Panther 소스로 전송합니다. 파싱은 최선의 노력으로 수행되며, RFC 준수 형식 외에도 가장 일반적인 syslog 형식을 대부분 지원합니다.

### 출력 유형

#### HTTP 출력

Panther HTTP 소스로 로그를 전송합니다:

```yaml
output:
  type: http
  url: https://logs.your-instance.runpanther.net/http/SOURCE_ID
  auth:
    type: bearer
    token: ptl-your-bearer-token
  buffer_size: 10GB  # 선택 사항: 전역 기본값 덮어쓰기
```

| 필드            | 필수  | 기본값    | 설명                                           |
| ------------- | --- | ------ | -------------------------------------------- |
| `유형`          | 아니요 | `http` | 출력 유형(HTTP의 경우 생략 가능)                        |
| `url`         | 예   | —      | Panther HTTP 소스 URL                          |
| `auth`        | 예   | —      | 인증 구성(참조 [자격 증명 관리](#credential-management)) |
| `buffer_size` | 아니요 | `3GB`  | 포워더별 디스크 버퍼 크기 덮어쓰기                          |

#### S3 출력

로그를 Amazon S3 버킷으로 전송합니다. 두 가지 인증 경로가 지원됩니다:

1. **AWS 기본 자격 증명 체인** (EC2 / ECS / EKS에서 권장) — 다음을 생략하세요 `auth` 블록. AWS SDK는 인스턴스 프로필/태스크 역할 또는 환경 변수(`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`)에서 자격 증명을 자동으로 확인합니다. 파일 기반 자격 증명(`~/.aws/credentials`)는 기본적으로 지원되지 않으며, 해당 파일을 읽을 수 있도록 `panther-log-forwarder` 사용자에게 명시적으로 접근 권한을 부여한 경우에만 가능합니다.
2. **인라인 정적 자격 증명** — 다음을 설정 `auth.access_key_id` 및 `auth.secret_access_key`. 포워더가 AWS 외부에서 실행되거나 자격 증명을 `yaml` 파일에 두는 것을 시스템d 유닛에 제공하는 것보다 선호할 때 유용합니다.

```yaml
output:
  type: s3
  bucket: my-log-bucket
  region: us-east-1
  # key_prefix: "custom/prefix/%Y/%m/%d/"  # 선택 사항
  # auth:                                # 선택 사항 — AWS 기본 자격 증명 체인을 사용하려면 생략
  #   access_key_id: ${AWS_ACCESS_KEY_ID}
  #   secret_access_key: ${AWS_SECRET_ACCESS_KEY}
```

| 필드            | 필수  | 기본값                               | 설명                                                      |
| ------------- | --- | --------------------------------- | ------------------------------------------------------- |
| `유형`          | 예   | —                                 | 반드시 `s3`                                                |
| `버킷`          | 예   | —                                 | S3 버킷 이름                                                |
| `region`      | 예   | —                                 | AWS 리전(예: `us-east-1`)                                  |
| `key_prefix`  | 아니요 | `logs/{forwarder_name}/%Y/%m/%d/` | S3 키 접두사(strftime 토큰 지원, 다음으로 끝나야 함 `/`)                |
| `buffer_size` | 아니요 | `3GB`                             | 포워더별 디스크 버퍼 크기 덮어쓰기                                     |
| `auth`        | 아니요 | —                                 | 인라인 정적 AWS 자격 증명(참조 [자격 증명 관리](#credential-management)) |

**최소 IAM 권한:**

사용되는 IAM 주체는 `s3:PutObject` 및 `s3:ListBucket` 권한을 대상 버킷에 대해 가지고 있어야 합니다. 버킷이 **SSE-KMS** 고객 관리 키와 함께 사용하는 경우, `kms:GenerateDataKey` 에 해당 키 ARN에 대한 권한도 부여하세요. 예시 정책은 다음과 같습니다

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::your-bucket-name"
    },
    {
      "Effect": "Allow",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::your-bucket-name/*"
    }
    // 선택 사항, 버킷이 **SSE-KMS**를 사용하는 경우에만
    {
      "Effect": "Allow",
      "Action": "kms:GenerateDataKey",
      "Resource": "arn:aws:kms:{region}:{account_id}:key/{id}"
    }
  ]
}
```

**참고:**

* 업로드 전에 로그는 gzip으로 압축됩니다
* 배치 처리: 10MB 또는 60초 중 먼저 도달하는 것

### 자격 증명 관리

#### HTTP 출력 — Bearer 토큰

HTTP 출력에는 Bearer 토큰이 필요합니다. 제공하는 방법은 두 가지입니다:

**평문 토큰**

```yaml
output:
  auth:
    type: bearer
    token: ptl-your-bearer-token
```

포워더 파일은 다음으로 보호됩니다 `0640` 권한과 `root:panther-log-forwarder` 소유권 — root만 쓸 수 있고, 에이전트 서비스만 읽을 수 있습니다.

**환경 변수**

사용 `${ENV_VAR}` 다음 구문으로 환경 변수를 참조합니다:

```yaml
output:
  auth:
    type: bearer
    token: "${PANTHER_TOKEN}"
```

systemd, Docker Compose, Kubernetes Secrets 등에서 변수를 설정하세요.

#### S3 출력 — AWS 자격 증명

S3 출력은 AWS 자격 증명 체인(인스턴스 프로필, 환경 변수)을 기본으로 사용하므로 `auth` 블록이 필요하지 않습니다. 명시적 자격 증명을 제공하려면 `auth` 블록을 추가하세요:

| 필드                  | 필수(다음인 경우 `auth` 설정됨) | 설명           |
| ------------------- | --------------------- | ------------ |
| `access_key_id`     | 예                     | AWS 액세스 키 ID |
| `secret_access_key` | 예                     | AWS 비밀 액세스 키 |

세 필드 모두 평문 값 또는 `${ENV_VAR}` 에이전트 시작 시 해석되는 참조를 허용합니다.

```yaml
output:
  type: s3
  bucket: my-log-bucket
  region: us-east-1
  auth:
    access_key_id: ${AWS_ACCESS_KEY_ID}
    secret_access_key: ${AWS_SECRET_ACCESS_KEY}
```

환경 변수의 경우 systemd 유닛(`Environment=` 인라인 또는, `EnvironmentFile=` 를 가리키게 하여 `chmod 600` 파일)

### 디스크 버퍼링

각 포워더에는 네트워크 장애 동안 데이터 손실을 방지하기 위한 자체 디스크 버퍼(기본: 3GB)가 있습니다. 로그는 전달할 수 있을 때까지 디스크에 저장됩니다.

버퍼가 가득 차면:

* **파일 입력** — 포워더가 블록되어 버퍼 공간이 확보될 때까지 읽기를 중지합니다(데이터 손실은 없지만 로그 파일이 커질 수 있음)
* **Syslog 입력** — 포워더가 새로 들어오는 메시지를 버립니다(메모리 문제는 방지하지만 일부 로그가 손실될 수 있음)

버퍼 크기는 전역적으로 다음에서 구성하세요 `panther.conf` 또는 다음을 사용해 포워더별로 구성하세요 `buffer_size` 출력 섹션의

기본 3GB는 대부분의 배포에 충분합니다. 데이터 손실이 없도록 대량 소스에는 버퍼 크기를 늘리는 것을 고려하세요.

### Syslog 파싱

기본적으로 syslog 메시지는 원시 텍스트로 전달됩니다. 입력에 `parse: json` 을 추가하면 syslog 메시지가 다음과 같은 필드를 가진 구조화된 JSON으로 파싱됩니다 `timestamp`, `hostname`, `appname`, `severity`그리고 `message`.

이는 다음 두 입력 유형 모두에서 작동합니다:

* **네트워크 syslog** (`type: syslog` + `parse: json`) — 내장된 syslog 파싱을 사용합니다
* **파일 syslog** (`type: file` + `format: syslog` + `parse: json`) — 각 줄을 syslog 메시지로 파싱합니다

#### 파싱이 포함된 네트워크 syslog

```yaml
forwarders:
  parsed_syslog:
    input:
      type: syslog
      mode: tcp
      address: 0.0.0.0:1514
      parse: json
    output:
      url: https://logs.your-instance.runpanther.net/http/SOURCE_ID
      auth:
        type: bearer
        token: ptl-your-token
```

#### 파싱이 포함된 파일 syslog

사용 `format: syslog` 및 `parse: json` 입력에서 파일에 파싱해야 할 syslog 형식의 줄이 포함되어 있음을 나타내려면:

```yaml
forwarders:
  os_syslog:
    input:
      type: file
      path: /var/log/syslog
      format: syslog
      parse: json
    output:
      url: https://logs.your-instance.runpanther.net/http/SOURCE_ID
      auth:
        type: bearer
        token: ptl-your-token
```

{% hint style="info" %}
`parse: json` syslog 컨텍스트가 필요합니다 — 다음 중 하나: `input.type: syslog` 또는 `input.format: syslog`. 일반 파일 입력과는 함께 사용할 수 없습니다.
{% endhint %}

{% hint style="warning" %}
활성화되면 `parse: json` 활성화되어 있으면 파싱은 최선 노력 방식이지만 RFC 3164 / RFC 5424를 포함한 가장 일반적인 syslog 형식을 대부분 지원합니다. 파싱에 실패한 줄은 삭제됩니다.
{% endhint %}

***

## 더 많은 예시

### Syslog 서버

```yaml
# /etc/panther-log-forwarder/forwarders.d/syslog.yaml
forwarders:
  my_syslog:
    input:
      type: syslog
      mode: tcp
      address: 0.0.0.0:1514
    output:
      type: http
      url: https://logs.your-instance.runpanther.net/http/SOURCE_ID
      auth:
        type: bearer
        token: ptl-your-token
```

### 제외 항목이 있는 여러 파일

```yaml
# /etc/panther-log-forwarder/forwarders.d/app.yaml
forwarders:
  app_logs:
    input:
      type: file
      path: /var/log/myapp/*.log
      excludes: ["*.gz", "*.old"]
    output:
      type: http
      url: https://logs.your-instance.runpanther.net/http/SOURCE_ID
      auth:
        type: bearer
        token: ptl-your-token
```

### 하나의 파일에 여러 포워더

```yaml
# /etc/panther-log-forwarder/forwarders.d/all-logs.yaml
forwarders:
  auth_logs:
    input:
      type: file
      path: /var/log/auth.log
    output:
      type: http
      url: https://logs.your-instance.runpanther.net/http/source1
      auth:
        type: bearer
        token: ptl-token-auth

  syslog_server:
    input:
      type: syslog
      mode: tcp
      address: 0.0.0.0:1514
    output:
      type: http
      url: https://logs.your-instance.runpanther.net/http/source2
      auth:
        type: bearer
        token: ptl-token-syslog
```

### JSON 파싱을 사용한 Syslog에서 S3로

```yaml
# /etc/panther-log-forwarder/forwarders.d/syslog-s3.yaml
forwarders:
  syslog_to_s3:
    input:
      type: syslog
      mode: udp
      address: 0.0.0.0:514
      parse: json
    output:
      type: s3
      bucket: my-log-bucket
      region: us-east-1
```

### S3 출력

포워더가 AWS 환경에서 실행 중이거나 systemd 유닛에 환경 변수가 제공된 경우(인증 블록 불필요):

```yaml
# /etc/panther-log-forwarder/forwarders.d/s3.yaml
forwarders:
  s3_archive:
    input:
      type: file
      path: /var/log/app/*.log
    output:
      type: s3
      bucket: my-log-bucket
      region: us-east-1
```

### 인라인 AWS 자격 증명이 포함된 S3 출력

AWS 외부에서 실행 중이며 명시적 자격 증명이 정의된 포워더:

```yaml
# /etc/panther-log-forwarder/forwarders.d/s3-inline.yaml
forwarders:
  s3_archive:
    input:
      type: file
      path: /var/log/app/*.log
    output:
      type: s3
      bucket: my-log-bucket
      region: us-east-1
      auth:
        access_key_id: my_access_key_id
        secret_access_key: my_secret_access_key
```

***

## 문제 해결

### 로그 확인

문제를 해결할 때 확인할 로그 파일은 두 개입니다:

* **`/var/log/panther-log-forwarder/log-forwarder.log`** — 시작 실패, 구성 오류, 연결 문제 등 포워더 서비스 자체의 문제를 확인하세요.
* **`/var/log/panther-log-forwarder/vector.log`** — 로그 수집 문제, 파싱 오류, 전송 실패 등 데이터 파이프라인의 문제를 확인하세요.

```bash
# 포워더 서비스 로그
sudo tail -f /var/log/panther-log-forwarder/log-forwarder.log

# 데이터 파이프라인 로그
sudo tail -f /var/log/panther-log-forwarder/vector.log
```

### 로그 포워더가 시작되지 않음

```bash
sudo panther-log-forwarder status
```

일반적인 원인:

* **구성 오류** — 실행 `sudo panther-log-forwarder validate`
* **권한 문제** — 확인 `/etc/panther-log-forwarder/forwarders.d/` 가지고 있는 `0750` 권한
* **파일 접근 오류** — 로그 포워더는 시작 시 파일 경로를 확인합니다. 경로가 존재하고 다음이 읽을 수 있는지 확인하세요: `panther-log-forwarder` 사용자
* **포트 충돌** — syslog 입력의 경우 수신 포트가 사용 가능한지 확인하세요

### Panther에 로그가 표시되지 않음

```bash
sudo panther-log-forwarder check-connectivity
sudo panther-log-forwarder status
```

일반적인 원인:

* **잘못된 베어러 토큰** — 토큰이 Panther 콘솔과 일치하는지 확인하세요
* **네트워크 문제** — Panther 엔드포인트에 대한 HTTPS 연결을 테스트하세요
* **잘못된 URL** — Panther 콘솔의 URL을 다시 확인하세요
* **파일 경로 문제** — 경로가 존재하고 읽을 수 있는지 확인하세요
* **S3 권한** — S3 출력의 경우 IAM 권한이 허용하는지 확인하세요 `s3:PutObject` 및 `s3:ListBucket` (HeadBucket에서 사용됨). 다음을 추가하세요 `kms:GenerateDataKey` 버킷이 고객 관리 키를 사용하는 SSE-KMS를 사용하는 경우.

### 구성 오류

```bash
sudo panther-log-forwarder validate
```

일반적인 문제:

* YAML 구문 오류(들여쓰기, 따옴표)
* 필수 필드 누락(`유형` 입력에서, `url`/`auth` HTTP의 경우, `버킷`/`region` S3의 경우)
* 잘못된 입력 유형(다음이어야 함: `file` 또는 `syslog`)
* 잘못된 출력 유형(다음이어야 함: `http` 또는 `s3`)
* 잘못된 포워더 이름(문자로 시작해야 하며, 영숫자/밑줄/하이픈만 허용됨)

***

## 운영

### 새 포워더 추가

1. Panther 콘솔에서 새 소스(HTTP 또는 S3)를 생성합니다.
2. 다음 위치에 새 YAML 파일을 추가합니다: `/etc/panther-log-forwarder/forwarders.d/`.
3. 검증: `sudo panther-log-forwarder validate`
4. 재시작: `sudo systemctl restart panther-log-forwarder`

### 구성 업데이트

1. 다음 위치의 파일을 편집합니다: `/etc/panther-log-forwarder/`.
2. 검증: `sudo panther-log-forwarder validate`
3. 재시작: `sudo systemctl restart panther-log-forwarder`

### 업그레이드

1. 플랫폼에 맞는 새 릴리스 tarball과 체크섬을 다운로드합니다(참조: [다운로드 링크](#download-links)).
2. 체크섬을 확인하고, 압축을 풀고, 설치 프로그램을 실행합니다:

```bash
sha256sum -c panther-log-forwarder_linux_amd64.tar.gz.sha256
tar -xzf panther-log-forwarder_linux_amd64.tar.gz
cd panther-log-forwarder
sudo ./install.sh
```

설치 프로그램은 서비스가 실행 중이면 자동으로 다시 시작합니다. 업그레이드를 확인하세요:

```bash
sudo panther-log-forwarder --version
sudo panther-log-forwarder status
```

다음 위치의 구성 파일은 `/etc/panther-log-forwarder/` 업그레이드 중 보존됩니다.

### 제거

```bash
sudo systemctl stop panther-log-forwarder
cd panther-log-forwarder   # 압축을 푼 설치 디렉터리
sudo ./uninstall.sh
```

***

## 파일 위치

| 경로                                                 | 용도        |
| -------------------------------------------------- | --------- |
| `/etc/panther-log-forwarder/panther.conf`          | 전역 설정     |
| `/etc/panther-log-forwarder/forwarders.d/*.yaml`   | 포워더 구성    |
| `/var/log/panther-log-forwarder/log-forwarder.log` | 로그 포워더 로그 |
| `/var/log/panther-log-forwarder/vector.log`        | Vector 로그 |


---

# 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/panther-log-forwarder.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.
