View a markdown version of this page

对系统日志摄取进行故障排除 - 亚马逊 CloudWatch 日志
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

对系统日志摄取进行故障排除

本节介绍了 syslog 摄取的常见问题以及如何解决这些问题。

消息未出现在日志组中

如果您发送了 syslog 消息,但这些消息未出现在您的日志组中,请按顺序检查以下内容:

  1. 验证系统日志配置是否存在。

    运行list-syslog-configurations以确认您的 VPC 终端节点已在日志组中注册:

    aws logs list-syslog-configurations \ --log-group-identifier /syslog/my-devices \ --region $REGION

    如果未返回任何配置,请使用创建配置put-syslog-configuration

  2. 验证资源策略。

    确保日志组的资源策略授予logs:PutLogEventssyslog.logs.amazonaws.com,并且aws:SourceArn条件logs:CreateLogStream与您的 VPC 终端节点 ARN 完全匹配:

    aws logs describe-resource-policies --region $REGION

    使用检查SyslogMessagesDropped指标Reason=AccessDenied以确认授权是否是问题所在。

  3. 验证安全组。

    确保连接到 VPC 终端节点的安全组允许来自源 CIDR 的入站流量进入您正在使用的端口(6514、1514 或 514):

    aws ec2 describe-security-groups \ --group-ids $VPCE_SG_ID \ --region $REGION \ --query 'SecurityGroups[0].IpPermissions'
  4. 验证网络连接。

    在同一网络上的设备或主机上,测试与端点的 TCP 连接:

    # TCP connectivity test nc -zv $VPCE_DNS 6514 nc -zv $VPCE_DNS 1514

    如果连接被拒绝或超时,请验证 VPN/Direct Connect 路由以及设备是否可以到达 VPC 终端节点子网。

  5. 检查 VPC 终端节点策略。

    如果您已附加自定义 VPC 终端节点策略,请确认它允许执行所需的操作。使用检查SyslogMessagesDropped指标Reason=VpcePolicyDenied

TLS 握手失败

如果您的 syslog 客户端无法在端口 6514 上建立 TLS 连接:

  • 证书信任 — 确保您设备的 CA 信任存储区包含 Amazon Trust Services 根证书。默认情况下,大多数操作系统都包含这些。https://www.amazontrust.com/repository/如果需要,可以从中下载它们。

  • TLS 版本 — 该服务支持 TLS 1.2 和 TLS 1.3。确保您的系统日志客户端至少支持 TLS 1.2。

  • 主机名验证 — 如果您的客户端验证服务器主机名,请确保将其配置为使用 VPC 终端节点 DNS 名称(不是 IP 地址)进行连接。

使用 OpenSSL 手动测试 TLS 连接:

openssl s_client -connect $VPCE_DNS:6514 -brief

成功连接会显示 TLS 版本和密码套件。如果失败,则错误消息会指出原因。

UDP 消息丢失

UDP 是一种尽力而为的协议。在以下情况下,某些消息丢失是预期的行为:

  • 您的设备和 VPC 终端节点之间的网络拥塞。

  • 消息超过了最大 UDP 数据报大小。

  • 临时服务容量限制(SyslogMessagesDropped用用表示Reason=ServiceUnavailable)。

如果需要可靠的传输,请改用 TCP(端口 1514 或 6514)。TCP 提供传送确认和自动重传功能。

连接被拒绝

如果您的设备在连接到 VPC 终端节点时报告 “连接被拒绝”:

  • 验证 VPC 终端节点的available状态为:

    aws ec2 describe-vpc-endpoints --vpc-endpoint-ids $VPCE_ID \ --region $REGION --query 'VpcEndpoints[0].State'
  • 确认您正在使用支持的端口(6514、1514 或 514)进行连接。

  • 验证 VPN 或 Direct Connect 路由允许从您的设备网络到 VPC 终端节点子网的流量。

  • 检查安全组是否允许您使用的端口上的入站流量。

由于速率限制而丢弃了邮件

如果SyslogMessagesDropped指标显示Reason=MessageRateLimitExceeded,则表示您的系统日志流量已超过您账户的PutLogEvents配额。

要解决这一问题,请执行以下操作:

  1. 在 Amazon Lo CloudWatch gs 下的 S ervice Quotas 控制台中查看您当前的配额

  2. 如果您的系统日志吞吐量需要,请申请增加配额。请参阅 Service Quotas 用户指南中的申请增加配额