标签: amazon-cloudwatch

参数ScheduleExpression无效

我正在尝试设置Cloudwatch预定事件,但我的cron表达似乎无效,但我无法弄清楚原因.

我的cron表达式是:

cron(5,15,25,35,45,55****)

我希望它能在每天每小时的第5天,第15天,第25天,第35天,第45天和第55分钟运行.这似乎与http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html中的AWS Scheduled Events文档一致.

上述文档允许用0到59之间的逗号分隔值表示分钟,以及用*通配符反映ALL的小时,日期(或星期几),月份和年份.

我尝试在Lambda控制台上设置cron表达式(创建函数并选择Cloudwatch Schedule Event时),并在Cloudwatch控制台中设置cron表达式(以及选择触发器的目标).两者都不适用于我的自定义cron表达式.

我尝试过以下方法:

5,15,25,35,45,55 * * * *
5,15,25,35,45,55 * ? * *
cron(5,15,25,35,45,55 * * * *)
cron(5,15,25,35,45,55 * ? * *)
Run Code Online (Sandbox Code Playgroud)

每次我收到错误说ScheduleExpression无效.但是,我可以使用premade rate()表达式之一.

我如何使用自己的自定义cron表达式?

谢谢.

cron amazon-cloudwatch aws-lambda

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

当EBS实例空间不足时,如何收到警报?

我正在运行一个关于AWS的wordpress,我无法弄清楚如何监控卷的容量是否已耗尽.有很多选项可用于监控其他事情,但我只是想知道什么时候我们的空间不足.

monitoring amazon-ebs amazon-web-services amazon-cloudwatch

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

AWS Lambda - CloudWatch事件类型

编写由Cloudwatch预定事件触发的AWS Java Lambda函数时,哪个事件对象会传递给Lambda处理函数?

例如,对于由S3事件触发的Lambda函数,AWS调用该函数并传递S3Event对象.类似地,它会将SNSEvent对象传递给由SNS消息触发的函数.

public class LambdaHandler {

    public void eventHandler(S3Event event, Context context) {
    }
Run Code Online (Sandbox Code Playgroud)

要么

public class LambdaHandler {

    public void eventHandler(SNSEvent event, Context context) {
    }
Run Code Online (Sandbox Code Playgroud)

对于Cloudwatch计划事件驱动的功能,将取代SNSEvent/S3Event?

public class LambdaHandler {

    public void eventHandler(__________ event, Context context) {
    }
Run Code Online (Sandbox Code Playgroud)

我无法为我的生活找到任何由Java编写的AWS Lambda函数的示例,这些函数由Cloudwatch Scheduled事件触发...

样本函数的加分点.

编辑1目前还没有正确答案(虽然我不知道AWS已经在SDK中发布了一个适当的'事件'对象,将被传递给Lambda函数),所以实际上可能没有答案我正在寻找.

这个问题也是在这里问:什么是由CloudWatch的事件传递给lambda函数参数类型-计划触发?有人评论建议使用Object并打印类名.原来是LinkedHashMap.看起来像我要得到的答案一样正确......

amazon-web-services amazon-cloudwatch aws-lambda

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

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
查看次数

是否可以为ElasticBeanstalk Docker应用程序进行集中日志记录?

我们在Elastic Beanstalk Docker容器环境中运行自定义Docker Web应用程序.想要在外面查看应用程序日志.无需通过实例或AWS控制台下载.

到目前为止,这两种解决方 也许有人为Elastic Benastalk Dockerized应用程序实现了集中式日志记录?

解决方案1:AWS Console日志下载

不可接受 - 需要下载日志,每次都提取.非实时.

解决方案2:S3 + Elasticsearch + Fluentd

fluentd没有从S3检索日志的插件有优秀的S3插件,但它仅用于日志输出到S3.不适用于S3的输入日志.

解决方案3:S3 + Elasticsearch + Logstash

缺点:只能从整个桶中提取所有日志或什么也不能.

问题在于Elastic Beanstalk S3 Log存储结构.您无法指定文件名模式.它可以是所有日志,也可以不是.ElasticBeanstalk在包含随机实例和环境ID的路径中将日志保存在S3上:

s3.bucket/resources/environments/logs/publish/e-<random environment id>/i-<random instance id>/my.log@
Run Code Online (Sandbox Code Playgroud)

Logstash s3插件只能指向resources/environments/logs/publish /.当您尝试将其指向environment/logs/publish/*/my.log时,它不起作用.这意味着你无法拉出特定的日志并标记/输入它以便能够在Elasticsearch中找到它.由于AWS将所有环境和实例中的日志保存在相同的文件夹结构中,因此您甚至无法选择实例.

解决方案4:AWS CloudWatch控制台日志查看器

可以将自定义日志转发到CloudWatch控制台.实现这一点,将配置文件放在应用程序包的.ebextensions路径中:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.cloudwatchlogs.html

有一个名为cwl-webrequest-metrics.config的文件,它允许您指定日志文件以及警报等.太棒了!?除了配置文件格式既不是yaml,xml或json,也没有记录.该文件绝对没有提及,它的格式要么在AWS文档网站上,要么在网络上的任何地方.要在CloudWatch中显示一个日志文件,不仅仅是添加配置行.实现这项工作的唯一可行方法似乎是反复试验.大!?除了您需要重新部署环境的每次尝试.

关于如何使用自定义日志进行此操作只有一个参考:http://qiita.com/kozayupapa/items/2bb7a6b1f17f4e799a22我不知道该人如何逆向设计文件格式.

缺点:

  • Cloudwatch在显示时似乎无法将日志拆分为列,因此您无法轻松按优先级等进行过滤.
  • AWS Console日志查看器没有自动刷新以跟踪日志.
  • 梦魇没有文档配置文件格式,没办法测试.试验和错误需要重新部署整个实例.

amazon-cloudwatch logstash docker amazon-elastic-beanstalk

22
推荐指数
1
解决办法
4204
查看次数

在 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万
查看次数

如何从Amazon Cloudwatch过滤和提取原始日志事件数据

有没有办法1)过滤和2)通过API或CLI从Cloudwatch中检索原始日志数据?我需要从Cloudwatch中提取一部分日志事件进行分析.

我不需要创建指标或类似的东西.这是针对特定事件的历史研究.

我已经转到控制台中的日志查看器,但我试图拉出特定的行来告诉我一段时间的故事.日志查看器几乎不可能用于此目的.如果我有实际的日志文件,我只会grep并在大约3秒内完成.但我没有.

澄清

Cloudwatch日志的描述中,它说:"您可以查看原始日志数据(仅在Web视图中?),以便在需要时查看问题的根源.可以存储和访问日志数据(仅在Web视图中? )只要你需要使用高度耐用,低成本的存储,你就不必担心填满硬盘." - 是我的

如果此控制台视图是获取源数据的唯一方法,那么通过Cloudwatch存储日志对我来说是不可接受的解决方案.我需要以足够的灵活性来获取实际数据来搜索模式,而不是点击几十页的行并复制/粘贴.但是,似乎有可能无法获得获取源数据的更好方法.

logging amazon-web-services amazon-cloudwatch

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

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
查看次数

aws 日志:指定的日志组不存在

我正在尝试使用此 CLI 用法从 Cloudwatch 获取日志:

cat cli-get-log-events.json    
{
    "logGroupName": "/aws/lambda/my-group", 
    "logStreamName": "2019/03/30/[$LATEST]dec1626296d84819be42f2ef615f292e", 
    "startTime": 1553977650000, 
    "endTime": 1553977748000, 
    "limit": 10, 
    "startFromHead": true
}


aws logs get-log-events --cli-input-json file://cli-get-log-events.json
Run Code Online (Sandbox Code Playgroud)

但是我在响应中看到了这个错误:

调用 GetLogEvents 操作时发生错误 (ResourceNotFoundException):指定的日志组不存在。

amazon-web-services amazon-cloudwatch aws-cli

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

如何设置CloudWatch以检测EC2实例何时关闭?

我在AWS上运行了一个应用程序.如何设置Amazon CloudWatch以在EC2实例失败或不再响应时通知我?

我浏览了CloudWatch屏幕,看起来你可以监控某些统计信息,比如CPU或磁盘利用率,但我没有看到监控事件的方法,例如"实例获得了一个http请求并花费了超过X秒的时间响应."

amazon-web-services amazon-cloudwatch

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