使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何解决 CloudWatch 中的空日志问题?

1 分钟阅读
0

我想解决 Amazon CloudWatch 中的空日志问题。

解决方法

要解决 CloudWatch 中的空日志问题,请完成以下步骤:

检查日志组指标

当数据引入到 CloudWatch 时,CloudWatch Logs 会生成日志组指标。日志组级别指标 IncomingLogEventsIncomingBytes 会在日志组接收数据时接收数据点。如果在指定的时间段内没有数据点,则说明日志组未从源接收数据。

检查源是否发布了数据

如果您使用统一的 CloudWatch 代理向 CloudWatch 发布日志数据,请检查 CloudWatch 代理是否正常运行。确保代理配置中包含正确的源日志文件路径。此外,请确保源日志文件中有要推送到 CloudWatch 的日志。有关详细信息,请参阅如何解决我的统一 CloudWatch 代理不推送日志事件的问题?

要测试从源到日志端点的连接,请运行以下命令:

**注意:**将 example-region 替换为所需的 AWS 区域。

telnet logs.<example-region>.amazonaws.com 443
nc -zv logs.<example-region>.amazonaws.com 443

如果您在前面的命令中遇到连接问题,请检查以下内容:

  • 检查安全组和网络访问控制列表(网络 ACL)是否允许连接。
  • 检查源是否有互联网连接。
  • 如果您使用 Amazon Virtual Private Cloud (Amazon VPC) 端点,请检查端点。确保端点解析为 Amazon VPC IP 地址,并且端点安全组允许从源 IP 地址进行访问。
  • 检查 PutLogEvents 约束条件是否得到满足。

查看权限

检查源是否有权将数据发布到所需的日志组。以下是您可以与源 AWS Identity and Access Management (IAM) 策略一起使用的示例策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Statement1",
      "Effect": "Allow",
      "Action": [
        "logs:PutLogEvents"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

如果在将数据推送到 CloudWatch 时日志源创建了新的日志组和日志流,请检查策略的 Action 参数。确保包含 logs:CreateLogGrouplogs:CreateLogStream 权限。

为防止在读取日志时出现 AccessDenied 错误,请确保所需的 IAM 用户或角色拥有 logs:GetLogEvents 的最低权限。如果您使用 AWS 管理控制台查看日志,请确保您拥有 logs:DescribeLogGroupslogs:DescribeLogStreamslogs:GetLogEvents 权限。

检查日志组配置

对于日志组,请确保适当设置保留期并检索保留期内存在的日志。保留期到期后删除的日志将被永久删除且无法恢复。

AWS 官方
AWS 官方已更新 9 个月前