标签: amazon-cloudwatchlogs

为Lambda函数设置CloudWatch Log Group的到期日期

默认情况下,当我创建Lambda函数时,CloudWatch Log Group将设置为Never Expire.是否可以设置到期时间(说14天),所以我不必在创建后从控制台手动设置它?


更新#1

感谢@jens walter回答这是如何解决问题的代码片段

Resources:
  LambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs6.10
      CodeUri: <your code uri>
      Policies: <your policies> 


  LambdaFunctionLogGroup:
    Type: "AWS::Logs::LogGroup"
    DependsOn: "LambdaFunction"
    Properties: 
      RetentionInDays: 14
      LogGroupName: !Join ["", ["/aws/lambda/", !Ref LambdaFunction]]
Run Code Online (Sandbox Code Playgroud)

aws-lambda amazon-cloudwatchlogs

24
推荐指数
2
解决办法
8012
查看次数

Cloudwatch日志警报 - 如何在电子邮件通知中包含错误/异常/堆栈跟踪数据

我刚刚在我的ec2实例上配置了Cloudwatch日志,到目前为止我很喜欢它.我还为某些关键字设置了警报,例如"ERROR".虽然电子邮件警报似乎工作正常,但我想知道是否有办法微调警报电子邮件,使其简洁明了.具体来说,我期待

  1. 删除警报电子邮件中的所有样板文本.

  2. 包括有关触发警报的错误/异常的一些信息.这可能就像包含生成警报的日志语句一样简单.

现在,警报电子邮件看起来像

您收到此电子邮件是因为您在美国东部 - 弗吉尼亚州西部地区的Amazon CloudWatch警报"应用错误警报"已进入警报状态,因为"阈值已交叉:1个数据点(1.0)大于或等于阈值(1.0)".在"2017年2月7日星期二16:39:43 UTC".

在AWS管理控制台中查看此警报:https://console.aws.amazon.com/cloudwatch/home? region = us-east-1#s = Alert & alarm = App-Error-Alarm

警报详细信息: - 名称:应用程序错误警报 - 说明:app.log中的错误 - 状态更改:INSUFFICIENT_DATA - >警报 - 状态更改原因:阈值已交叉:1个数据点(1.0)大于或等于阈值( 1.0). - 时间戳:2017年2月7日星期二16:39:43 UTC - AWS账户:<>

阈值: - 当度量标准为GreaterThanOrEqualToThreshold 1.0 300秒时,警报处于ALARM状态.

受监视的度量标准: - MetricNamespace:LogMetrics - MetricName:ERROR - 维度: - 周期:300秒 - 统计:总和 - 单位:未指定

状态更改操作: - 确定: - ALARM:[arn:aws:sns:us-east-1:<>:support] - INSUFFICIENT_DATA:

我喜欢它

警报:应用程序错误警报

关键字:"ERROR"

原因:错误2017-02-07 07:31:47,375 [SimpleAsyncTaskExecutor-5] com.app.server.rest.Watcher:javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure

它的短小,甜美,瞬间告诉我它是否需要我立即注意.可以这样不作为建议编写代码做了这里

amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs

23
推荐指数
2
解决办法
6731
查看次数

在 AWS Cloudwatch Logs Insights 上按时间戳查询过滤

我正在尝试使用 AWS Cloudwatch Logs 洞察力来搜索我们 lambda 函数的一些相当旧的日志。我正在AWS docs 上阅读本指南,但没有任何地方记录如何按时间戳过滤。我尝试了以下方法:

fields @timestamp, @message
| filter @timestamp > '2019-12-04T18:09:10.000+01:00'
| limit 200
| sort @timestamp desc
Run Code Online (Sandbox Code Playgroud)

但不起作用(返回 0 个结果)。

最初,当我自 2015以来遇到此功能请求时,我试图找出是否有办法按时间戳列(而不是默认的日志组名称)对日志组进行排序- 这在eu-west-1 他们建议使用新的日志见解,但我无法完成这项工作。

有谁知道我如何按时间戳过滤日志,或者是否可以使用 Cloudwatch 日志见解来过滤日志?

谢谢!

amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights

22
推荐指数
2
解决办法
2万
查看次数

AWS Elastic Beanstalk:将自定义日志添加到CloudWatch?

如何将自定义日志添加到CloudWatch?发送默认日志但是如何添加自定义日志?

我已经添加了这样一个文件:(在.ebextensions中)

files:
  "/opt/elasticbeanstalk/tasks/bundlelogs.d/applogs.conf" :
    mode: "000755"
    owner: root
    group: root
    content: |
      /var/app/current/logs/*

  "/opt/elasticbeanstalk/tasks/taillogs.d/cloud-init.conf" :
    mode: "000755"
    owner: root
    group: root
    content: |
      /var/app/current/logs/*
Run Code Online (Sandbox Code Playgroud)

正如我所做的bundlelogs.d和taillogs.d这些自定义日志现在已经从控制台或网络中添加或检索,这很好但是它们不会持久存在且不会在CloudWatch上发送.

在CloudWatch中,我有默认日志,
/aws/elasticbeanstalk/InstanceName/var/log/eb-activity.log
而我希望有另一个这样的日志
/aws/elasticbeanstalk/InstanceName/var/app/current/logs/mycustomlog.log

amazon-web-services amazon-cloudwatch amazon-elastic-beanstalk amazon-cloudwatchlogs

19
推荐指数
3
解决办法
6948
查看次数

如何将Kubernetes日志发送到AWS CloudWatch?

AWS CloudWatch登录Docker

设置在AWS CloudWatch的日志驱动程序docker与做log-driver=awslogslog-opt,例如-

#!/bin/bash

docker run \
    --log-driver=awslogs \
    --log-opt awslogs-region=eu-central-1 \
    --log-opt awslogs-group=whatever-group \
    --log-opt awslogs-stream=whatever-stream \
    --log-opt awslogs-create-group=true \
    wernight/funbox \
        fortune
Run Code Online (Sandbox Code Playgroud)

我的问题

我想在Kubernetes集群中使用AWS CloudWatch日志,其中每个pod包含一些Docker容器.每个部署都有一个单独的日志组,每个容器都有一个单独的流.我找不到通过Kubernetes create/ 将日志记录参数发送到docker容器的方法apply.

我的问题

如何将log-driverand log-opt参数发送到pod/deployment中的Docker容器?

我试过了什么

amazon-web-services docker kubernetes amazon-cloudwatchlogs

18
推荐指数
1
解决办法
7931
查看次数

Amazon Cloudwatch使用JSON字段记录数据洞察

我试图在其中一个字段中使用包含JSON的数据的Logs Insights,并解析JSON字段

当我使用入门代码将其放入数据时,我的数据如下所示

fields @timestamp, @message
| sort @timestamp desc
| limit 25
Run Code Online (Sandbox Code Playgroud)

如何path在嵌套的JSON中轻松提取变量以对其执行聚合?通过查看一些文档,我认为@message.path可行,但似乎并非如此.有没有人成功解释了Insights中的JSON日志

在此输入图像描述

编辑:我的数据的样本

#
@timestamp
@message
1
2018-12-19 23:42:52.000
I, [2018-12-19T23:42:52.629855 #23447] INFO -- : [2ce588f1-c27d-4a55-ac05-62a75b39e762] {"method":"GET","path":"/api/v1/professionals/ID","format":"json","controller":"API::V1::Public::ProfessionalsController","action":"show","status":200,"duration":285.27,"view":222.36,"time":"2018-12-19T23:42:52.344+00:00","params":{"include":"user,tags,promotions,company_sector,similar_professionals.tags,similar_professionals.user","format":"json","compress":false,"id":"ID"},"@timestamp":"2018-12-19T23:42:52.629Z","@version":"1","message":"[200] GET /api/v1/professionals/ID (API::V1::Public::ProfessionalsController#show)"}
@logStream  i-05d1d61ab853517a0
@message  I, [2018-12-19T23:42:52.629855 #23447] INFO -- : [2ce588f1-c27d-4a55-ac05-62a75b39e762] {"method":"GET","path":"/api/v1/professionals/ID","format":"json","controller":"API::V1::Public::ProfessionalsController","action":"show","status":200,"duration":285.27,"view":222.36,"time":"2018-12-19T23:42:52.344+00:00","params":{"include":"xxx","format":"json","compress":false,"id":"ID"},"@timestamp":"2018-12-19T23:42:52.629Z","@version":"1","message":"[200] GET /api/v1/professionals/ID (API::V1::Public::ProfessionalsController#show)"}
@timestamp  1545262972000
2
2018-12-19 23:42:16.000
I, [2018-12-19T23:42:16.723472 #851] INFO -- : [ea712503-eb86-4a6e-ab38-ddbcd6c2b4d0] {"method":"GET","path":"/api/v1/heartbeats/new","format":"json","controller":"API::V1::Public::HeartbeatsController","action":"new","status":201,"duration":9.97,"view":3.2,"time":"2018-12-19T23:42:16.712+00:00","params":{"format":"json","compress":false},"@timestamp":"2018-12-19T23:42:16.722Z","@version":"1","message":"[201] GET /api/v1/heartbeats/new (API::V1::Public::HeartbeatsController#new)"}
Run Code Online (Sandbox Code Playgroud)

json amazon-cloudwatch amazon-cloudwatchlogs

17
推荐指数
4
解决办法
1万
查看次数

AWS CloudWatch Insights 查询字段名称中带有连字符

尝试运行包含reqHeaders.x-forwarded-for以下内容的 CloudWatch Insights 查询:

fields @timestamp, status, err, method, url, req_id, reqHeaders.x-forwarded-for
| filter status >= 400
| sort @timestamp desc
| limit 10
Run Code Online (Sandbox Code Playgroud)

但该字段始终为空,尽管已正确解析@message。我怀疑这是因为子字段名称中的连字符。有谁知道如何重新格式化查询以使其显示?

编辑:这是一个日志消息示例(纯 JSON,我只是对其进行了格式化)

{
    "cache": null,
    "client": "172.31.10.31",
    "component": "server",
    "err": "Invalid access token",
    "hostname": "0da665ab5653",
    "level": 30,
    "method": "PUT",
    "msg": "REQ: 401 PUT /api/xxxxxxxxxx",
    "name": "rocket",
    "pid": 10,
    "reqHeaders": {
        "accept-encoding": "gzip",
        "cloudfront-forwarded-proto": "https",
        "cloudfront-is-desktop-viewer": "true",
        "cloudfront-is-mobile-viewer": "false",
        "cloudfront-is-smarttv-viewer": "false",
        "cloudfront-is-tablet-viewer": "false",
        "cloudfront-viewer-country": "XX",
        "content-length": "74",
        "content-type": "application/json; charset=UTF-8",
        "host": "xxxxxxxxxx", …
Run Code Online (Sandbox Code Playgroud)

amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights

17
推荐指数
2
解决办法
8971
查看次数

AWS CloudWatch 日志:如何在 lambda 记录特定错误消息时发送电子邮件通知

我必须监控特定 lambda 的 CloudWatch 日志。当特定错误消息(例如 HTTP-50X)记录到 CloudWatch 时,我们需要发送电子邮件通知以提醒出现问题。

我们需要帮助在 AWS 中创建警报电子邮件,以手动监控日志以查看是否记录了任何此类错误。

amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights cloudwatch-alarms

16
推荐指数
2
解决办法
2万
查看次数

我们如何在 AWS 控制台中按“最新”对 CloudWatch 流日志进行排序?

有没有办法在 AWS 控制台中按“最近”到最旧来过滤 CloudWatch 日志流?我不得不向下滚动得难以置信的远才能看到我最近的日志消息。

我尝试过按 30 秒 - 5 分钟进行过滤,现在可以使用,我只是认为可能有一种更简单的方法来列出所有日志流,这些日志流从最近的顶部而不是最旧的开始。

amazon-web-services aws-lambda amazon-cloudwatchlogs

15
推荐指数
1
解决办法
6783
查看次数

有没有办法对 AWS CloudWatch Logs Insights 进行分页

有没有办法对 AWS CloudWatch Logs Insights 进行分页?谢谢。

我在想像下面这样的东西,但这不起作用

fields @message | page 2 | limit 20
Run Code Online (Sandbox Code Playgroud)

编辑:

我目前正在通过 Logs Insight 访问日志 在此输入图像描述

在我的应用程序中,我通过AWS.Logger.Serilog访问它。但如果我可以对日志结果进行分页,我可以采用不同的方法(例如原始 API 调用)。

我尝试浏览 AWS CloudWatch 文档、谷歌和堆栈溢出。我试图克服的问题是如何对日志进行分页,这样它就不会加载给定查询的所有日志。

pagination amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights

15
推荐指数
1
解决办法
2785
查看次数