

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# syslog 디바이스 구성
<a name="CWL_Syslog_DeviceConfig"></a>

syslog 수집을 설정한 후 VPC 엔드포인트 DNS 이름으로 메시지를 보내도록 syslog 소스를 구성합니다. 디바이스는 VPC에 대한 VPN 또는 Direct Connect 연결을 통해 엔드포인트에 도달합니다.

**참고**  
다음 구성이 예제로 제공됩니다. 전체 구성 옵션 및 모범 사례는 syslog 구현에 대한 공식 설명서(rsyslog, syslog-ng 또는 디바이스 공급업체)를 참조하세요.

다음 예제에서 `{{VPCE_DNS}}`를 설정 절차의 VPC 엔드포인트 DNS 이름으로 바꿉니다(예: `vpce-0abc123def456.syslog-logs.us-east-1.vpce.amazonaws.com`).

## rsyslog
<a name="CWL_Syslog_DeviceConfig_Rsyslog"></a>

rsyslog는 대부분의 Linux 배포판에서 기본 syslog 데몬입니다. 에 다음 구성을 추가합니다`/etc/rsyslog.d/50-cwl-syslog.conf`.

**TCP \+ TLS:**

```
# Forward all logs to CloudWatch Logs via TCP+TLS
action(type="omfwd"
  target="{{VPCE_DNS}}"
  port="6514"
  protocol="tcp"
  StreamDriver="gtls"
  StreamDriverMode="1"
  StreamDriverAuthMode="x509/certvalid"
  template="RSYSLOG_SyslogProtocol23Format"
  queue.type="LinkedList"
  queue.filename="cwl_fwd"
  queue.saveOnShutdown="on"
  action.resumeRetryCount="-1")
```

**TCP 일반 텍스트:**

```
# Forward all logs to CloudWatch Logs via plaintext TCP
action(type="omfwd"
  target="{{VPCE_DNS}}"
  port="1514"
  protocol="tcp"
  template="RSYSLOG_SyslogProtocol23Format"
  queue.type="LinkedList"
  queue.filename="cwl_fwd"
  queue.saveOnShutdown="on"
  action.resumeRetryCount="-1")
```

**UDP:**

```
# Forward all logs to CloudWatch Logs via UDP
action(type="omfwd"
  target="{{VPCE_DNS}}"
  port="514"
  protocol="udp"
  template="RSYSLOG_SyslogProtocol23Format")
```

구성을 추가한 후 rsyslog를 다시 시작합니다.

```
sudo systemctl restart rsyslog
```

**참고**  
`queue.type="LinkedList"` 및 `queue.saveOnShutdown="on"` 명령은 디스크 지원 대기열을 활성화합니다. VPC 엔드포인트에 대한 연결이 일시적으로 끊어지면 rsyslog는 메시지를 로컬로 버퍼링하고 전송을 재시도합니다.

**시설 또는 심각도를 기준으로 필터링:**

특정 메시지만 보내려면 작업 앞에 필터를 추가합니다.

```
# Send only auth messages via TCP+TLS
auth,authpriv.* action(type="omfwd"
  target="{{VPCE_DNS}}"
  port="6514"
  protocol="tcp"
  StreamDriver="gtls"
  StreamDriverMode="1"
  StreamDriverAuthMode="x509/certvalid"
  template="RSYSLOG_SyslogProtocol23Format")
```

## syslog-ng
<a name="CWL_Syslog_DeviceConfig_SyslogNg"></a>

syslog-ng는 일반적으로 네트워크 어플라이언스 및 엔터프라이즈 Linux 시스템에서 사용됩니다. 에 다음 구성을 추가합니다`/etc/syslog-ng/conf.d/cwl-syslog.conf`.

**TCP \+ TLS:**

```
destination d_cwl_syslog {
  network("{{VPCE_DNS}}"
    port(6514)
    transport("tls")
    tls(
      peer-verify(required-trusted)
      ca-dir("/etc/ssl/certs")
    )
  );
};

log {
  source(s_sys);
  destination(d_cwl_syslog);
};
```

**TCP 일반 텍스트:**

```
destination d_cwl_syslog {
  network("{{VPCE_DNS}}"
    port(1514)
    transport("tcp")
  );
};

log {
  source(s_sys);
  destination(d_cwl_syslog);
};
```

**UDP:**

```
destination d_cwl_syslog {
  network("{{VPCE_DNS}}"
    port(514)
    transport("udp")
  );
};

log {
  source(s_sys);
  destination(d_cwl_syslog);
};
```

구성을 추가한 후 syslog-ng를 다시 시작합니다.

```
sudo systemctl restart syslog-ng
```

## 빠른 검증
<a name="CWL_Syslog_DeviceConfig_QuickTest"></a>

VPC 엔드포인트에 연결할 수 있는 호스트에서 다음 명령을 사용하여 연결을 확인합니다.

**TCP 일반 텍스트(포트 1514):**

```
echo "<134>1 $(date -u +%Y-%m-%dT%H:%M:%SZ) myhost myapp 1234 - - Hello from syslog" | \
  nc {{VPCE_DNS}} 1514
```

**TCP \+ TLS(포트 6514):**

```
echo "<134>1 $(date -u +%Y-%m-%dT%H:%M:%SZ) myhost myapp 1234 - - Hello TLS syslog" | \
  openssl s_client -connect {{VPCE_DNS}}:6514 -quiet -no_ign_eof
```

**UDP(포트 514):**

```
echo "<134>1 $(date -u +%Y-%m-%dT%H:%M:%SZ) myhost myapp 1234 - - Hello UDP syslog" | \
  nc -u -w1 {{VPCE_DNS}} 514
```

테스트 메시지를 전송한 후 CloudWatch Logs에서 전송을 확인합니다(일반적으로 10\~20초 이내).

```
aws logs filter-log-events \
  --log-group-name /syslog/my-devices \
  --start-time $(date -d '5 minutes ago' +%s000 2>/dev/null || echo $(($(date -v-5M +%s) * 1000))) \
  --region $REGION
```

## 네트워크 어플라이언스
<a name="CWL_Syslog_DeviceConfig_NetworkDevices"></a>

대부분의 방화벽, 라우터 및 스위치는 대상 IP 주소 및 포트를 지정하여 외부 syslog 서버 구성을 지원합니다. VPC 엔드포인트 ENI의 프라이빗 IP 주소(**엔드포인트 아래의 Amazon VPC 콘솔에서 볼 수 있음**)와 지원되는 포트 중 하나(6514, 1514 또는 514)를 사용합니다.

특정 구성 구문은 디바이스 설명서를 참조하세요. 구성할 키 설정은 다음과 같습니다.
+ **서버 주소** - VPC 엔드포인트 DNS 이름 또는 ENI 프라이빗 IP 주소입니다.
+ **포트** – 6514(TCP\+TLS), 1514(TCP) 또는 514(UDP).
+ **프로토콜** - TCP(권장) 또는 UDP.
+ **형식** - RFC 5424(기본 설정) 또는 RFC 3164(레거시). 둘 다 지원됩니다.

## TLS 인증서 신뢰
<a name="CWL_Syslog_DeviceConfig_TLS"></a>

포트 6514의 TLS 연결은 Amazon Trust Services에서 발급한 AWS관리형 인증서를 사용합니다. Amazon Trust Services 루트 인증서는 표준 CA 신뢰 저장소에 포함되므로 대부분의 운영 체제 및 syslog 데몬은이 인증서를 자동으로 신뢰합니다.

디바이스가 기본적으로 인증서를 신뢰하지 않는 경우 [https://www.amazontrust.com/repository/](https://www.amazontrust.com/repository/) Amazon Trust Services 루트 인증서를 다운로드하여 디바이스의 CA 트러스트 스토어에 추가합니다.