View a markdown version of this page

系统日志摄取 - 亚马逊 CloudWatch 日志

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

系统日志摄取

Amazon Logs 托管系统 CloudWatch 日志摄取允许您直接将系统日志消息(RFC 5424、RFC 3164 和 Cisco FTD/ASA)从防火墙、路由器、交换机和 Linux 服务器发送到日志中,无需安装或管理任何代理。 CloudWatch 您的系统日志源通过 TCP、TCP+TLS 或 UDP 将消息发送到您账户中的 VPC 终端节点。流量通过隧道传输 AWS PrivateLink 到 Log CloudWatch s syslog 服务,该服务会自动解析传入的消息并提取结构化字段,例如设施、严重性、主机名和应用程序名称,从而无需自定义解析管道。然后,您可以使用 L CloudWatch ogs Analytics 查询这些字段,以调查安全事件或解决连接问题。这可以帮助您集中基础架构日志可见性,简化操作工作流程,并减少在分布式环境中部署和维护日志收集代理的开销。

如果您的系统日志源已在您的 Amazon VPC 中,则它们可以直接向 VPC 终端节点发送消息。如果您的源位于外部 AWS (本地数据中心、分支机构或主机托管设施),则它们可以通过您的 VPN 或 Direct Connect 连接到达 VPC 终端节点。

支持的协议和端口

协议 端口: 注意
TCP + TLS 6514 传输中已加密。推荐用于合规性要求。
TCP 纯文本 1514 纯文本 AWS PrivateLink (网络隔离)。
UDP 514 Best-effort 交货。

端口 6514 上的 TLS 使用亚马逊信任服务颁发的 AWS托管证书在网络负载均衡器上终止。您的 syslog 客户端无需任何特殊配置即可自动信任此证书。

注意

UDP 是一种尽力而为的协议。由于网络状况,消息可能会丢失。使用 TCP 实现可靠传输。

支持的系统日志格式

CloudWatch 日志会自动检测和解析以下系统日志格式:

  • RFC 5424(较新的格式)— 包括结构化数据、ISO 8601 时间戳以及明确的应用程序名称和进程 ID 字段。

  • RFC 3164(BSD syslog,传统格式)— 包括 BSD-style 时间戳和标签字段。仍被防火墙、路由器和交换机等网络设备广泛使用。

  • 思科 FTD/ASA — 思科 Firepower 威胁防御 (FTD) 和自适应安全设备 (ASA) 设备使用的系统日志格式。消息由消息正文中的%FTD-%ASA-标签标识。

消息以原始原始格式存储在您的日志组中。 CloudWatch 日志会自动从每种格式中提取结构化字段,您可以使用 L CloudWatch ogs Insights 进行查询。

RFC 5424 提取的字段

字段 说明
facility日志类别名称(例如、kernauthlocal0)。
facilityCode数字设施代码 (0—23)。
severity严重级别名称(例如、emergerrinfo)。
severityCode数字严重性代码 (0—7)。
timestampISO 8601 格式的消息时间戳。
hostname源设备主机名。
appName应用程序名称。
procId进程 ID。
msgId消息标识符。
structuredDataRFC 5424 结构化数据元素(键值元数据)。
message消息正文。

RFC 3164 提取的字段

字段 说明
facility日志类别名称。
facilityCode数字设施代码 (0—23)。
severity严重级别名称。
severityCode数字严重性代码 (0—7)。
timestamp邮件时间戳(从 BSD 格式转换为 ISO 8601)。
hostname源设备主机名。
appName应用程序名称(从 TAG 字段中提取)。
procId进程 ID(如果存在,则从 TAG 字段中提取)。
message消息正文。

思科 FTD/ASA 提取的字段

字段 说明
device设备类型(FTDASA、或FMC-AUDIT-LOG)。
timestamp消息时间戳(RFC 3164 或 RFC 5424 格式,具体取决于设备配置)。
deviceId设备主机名(在设备上配置device-id日志时出现)。
severity严重级别名称(例如、informationalwarningcritical)。
severityLevel严重性级别的数值 (0—7)。
messageIdCisco 数字消息标识符(例如106023302013)。
subsystem子系统名称(适用于某些消息类型)。
message消息正文(纯文本),或正文使用思科结构化格式时的单个键值字段。

消息传输

与服务器为每个请求返回状态码的 HTTP-based 摄取不同,syslog 不向发送者提供每条消息的成功确认。服务收到消息后,会对其进行缓冲并传送到您的日志组,并针对暂时性错误进行重试。交付保证取决于您选择的传输协议:

  • TCP(端口 6514 和 1514)— 在正常操作条件下提供可靠的传输。

    当无法交付时,该服务会重置 TCP 连接以向您的客户端发出故障信号。该连接上正在传输的消息可能会被丢弃,但是连接重置会立即提供背压,因此您的客户端可以检测到问题并在本地缓冲消息,直到问题得到解决。在容量压力下,该服务会尽早拒绝新的 TCP 连接,从而提供相同的背压信号。

    导致连接重置的情况包括:

    • VPC 终端节点策略拒绝访问

    • 您的账户已超出PutLogEvents配额

    • 目标日志组不存在

    • 日志组上的资源策略拒绝访问

  • UDP(端口 514)— Best-effort 交付。无法送达的邮件会被丢弃,发件人不会收到任何反馈。由于网络拥塞或容量限制,消息也可能丢失。如果可靠交付对您的用例很重要,请使用 TCP。

要检测和响应交付问题,请监控中的SyslogMessagesDropped指标 CloudWatch。该Reason维度表示消息被丢弃的原因,以便您可以采取更正措施。有关更多信息,请参阅 监视系统日志摄取

限额和限制

限制 注意
最大消息大小 (TCP) 64 KB 标准 syslog 消息通常远低于此限制。如果您的用例需要更详细的消息,请联系 Su AWS pport。
最大邮件大小 (UDP) 8 KB 标准 syslog 消息通常远低于此限制。如果您的用例需要更详细的消息,请联系 Su AWS pport。
摄取吞吐量 与共享 PutLogEvents 系统日志提取计入您账户的PutLogEvents配额(默认情况下,每个区域每个账户每秒 5,000 个请求)。

PutLogEvents 配额可调整。如果您的系统日志流量需要更高的吞吐量,请通过 S er vice Quotas 申请增加配额。