

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 syslog 裝置
<a name="CWL_Syslog_DeviceConfig"></a>

設定 syslog 擷取後，設定您的 syslog 來源以傳送訊息至 VPC 端點 DNS 名稱。您的裝置會透過 VPN 或 Direct Connect 連線至 VPC 來到達端點。

**注意**  
以下組態提供為範例。如需完整的組態選項和最佳實務，請參閱 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受管憑證。大多數作業系統和 syslog 協助程式會自動信任此憑證，因為 Amazon Trust Services 根憑證包含在標準 CA 信任存放區中。

如果您的裝置預設不信任憑證，請從 [https://www.amazontrust.com/repository/](https://www.amazontrust.com/repository/)：// 下載 Amazon Trust Services 根憑證，並將其新增至裝置的 CA 信任存放區。