我上个月从亚马逊获得了一张1200美元的Cloudwatch服务发票(特别是在"AmazonCloudWatch PutLogEvents"中提取了2 TB的日志数据),当时我预计会花几十美元.我已登录AWS控制台的Cloudwatch部分,可以看到我的一个日志组使用了大约2TB的数据,但该日志组中有数千个不同的日志流,如何判断哪个使用了该数量数据的?
有没有办法在 AWS CloudWatch Logs 中的匹配模式之前和/或之后包含 N 行?
假设我有这个查询,并且希望在每次比赛前后都有 3 行。
aws logs filter-log-events --log-group-name my-group --filter-pattern "mypattern"
Run Code Online (Sandbox Code Playgroud)
我目前唯一的解决方法是删除过滤器模式并使用 grep:
aws logs filter-log-events --log-group-name my-group | grep -A 3 -B 3 mypattern
Run Code Online (Sandbox Code Playgroud)
但是,我只想流式传输我需要的日志事件,并将其作为 aws 日志事件查询的一部分。
amazon-web-services amazon-cloudwatch aws-cli amazon-cloudwatchlogs
我的Elastic Beanstalk环境正在阻止将node.js事件传输到CloudWatch Logs.Streaming适用于新实例的视图分钟.查看分钟后,CloudWatch中不再显示任何日志.
我在Configuration> Software Configuration> CloudWatch Logs> Log Streaming(true)下设置AWS Elastic Beanstalk以将日志流式传输到CloudWatch.我停用了日志流并重新激活它作为测试.看看cloudwatch
每次运行状况检查都会将每个视图的日志条目写入nodejs.log.
我没有在ec2实例上找到有关日志流的任何日志.
---编辑
[ec2-user@ip-###-##-##-## log]$ cat /var/log/awslogs.log
2017-03-07 11:01:05,928 - cwlogs.push.stream - INFO - 31861 - Thread-1 - Detected file rotation, notifying reader
2017-03-07 11:01:05,928 - cwlogs.push.stream - INFO - 31861 - Thread-1 - Reader is still alive.
2017-03-07 11:01:05,928 - cwlogs.push.stream - WARNING - 31861 - Thread-1 - No file is found with given path '/var/log/httpd/error.log*'.
2017-03-07 11:01:05,928 - cwlogs.push.stream …Run Code Online (Sandbox Code Playgroud) amazon-ec2 amazon-web-services amazon-elastic-beanstalk amazon-cloudwatchlogs
我有一组 json 格式的 cloudwatch 日志,其中包含一个用户名字段。如何编写一个计算每月唯一用户数的 cloudwatch 指标查询?
amazon-cloudwatch amazon-cloudwatchlogs amazon-cloudwatch-metrics
我需要能够使用 Cloudwatch 日志见解搜索某些错误。
我尝试使用解析语法,但没有得到任何结果。
来自我永远日志的示例错误日志
StatusCodeError: 400 - "[{"errorCode":400002,"message":"Field Validation Error","details":"缺少必填字段 dbc。","type":"REQUEST_ERROR","field":"dbc" }]" 在新的 StatusCodeError (/home/ubuntu/admin-portal-backend/node_modules/request-promise-core/lib/errors.js:32:15) [2019-07-28T06:37:21.961Z] 错误: ip-172-31-72-36 上的管理 API/12643:400 - "[{"errorCode":400002,"message":"字段验证错误","details":"缺少必填字段 dbc。","type ":"REQUEST_ERROR","field":"dbc"}]" (req_id=f141a42d-235f-4a0e-af84-a5264fd251bf) StatusCodeError: 400 - "[{"errorCode":400002,"message":"Field Validation Error “,”详细信息":"缺少必填字段 dbc。","type":"REQUEST_ERROR","field":"dbc"}]" at new StatusCodeError (/home/ubuntu/admin-portal-backend/node_modules/request-promise- core/lib/errors.js:32:15) [2019-07-28T06:37:23.584Z] 错误:ip-172-31-72-36 上的管理 API/12643:400 -“[{”errorCode”: 400002,"message":"字段验证错误","details":"缺少必填字段 dbc.","type":"REQUEST_ERROR","field":"dbc"}]" (req_id=4716a8b8-c22a-48af -a371-84ebdac741d2) StatusCodeError: 400 - "[{"errorCode":400002,"message":"Field Validation Error","details":"缺少必填字段 dbc.","type":"REQUEST_ERROR","field ":"dbc"}]" 在新的 StatusCodeError (/home/ubuntu/admin-portal-backend/node_modules/request-promise-core/lib/errors.js:32:15) [2019-07-28T06:37:24.482Z]错误:ip-172-31-72-36 上的管理 API/12643:400 - "[{"errorCode":400002,"message":"字段验证错误","details":"缺少必填字段 dbc。", "type":"REQUEST_ERROR","field":"dbc"}]" (req_id=aca7bbbc-7247-4845-94ef-76ed6abddbc1)type":"REQUEST_ERROR","field":"dbc"}]" (req_id=aca7bbbc-7247-4845-94ef-76ed6abddbc1)type":"REQUEST_ERROR","field":"dbc"}]" (req_id=aca7bbbc-7247-4845-94ef-76ed6abddbc1)
我有一个非常简单的查询:
fields @timestamp, req.url, msg
| sort @timestamp desc
| filter msg = "request completed"
| stats count() by req.url
Run Code Online (Sandbox Code Playgroud)
它显示了由 url 聚合的我的应用程序提供的所有请求。不过,我也想通过的总价值的结果进行排序count()-但两者| sort count desc并| sort "count()" desc没有工作。我怎样才能做到这一点?
我正在寻求有关我遇到的问题的帮助。
我在 CloudWatch 上创建了一个新的日志组,通过 AWS 方法创建了一些流和总共最多 1500 个日志事件putLogEvents。当我运行一个简单的查询仅返回时间戳和消息时,该查询大约需要 20-25 秒来扫描所有 1500 个事件,这与其他日志组相比速度较慢。扫描速率从每秒 300 条记录波动到每秒 60 条记录。
在其他尺寸更大(例如10,000+)的日志组中,查询大约需要5秒。我不明白为什么查询需要这么长时间来扫描。
非常感谢任何帮助,TIA。
amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights
我正在尝试使用parse命令提取一个临时字段。不幸的是,日志格式无法满足要求,因此我需要使用正则表达式。正则表达式本身很好,但我只是无法发出提取任何内容的命令。
我正在尝试:
parse @endpoint /^([a-zA-Z_]+)[\/|?]*.*/ as @clean_endpoint
Run Code Online (Sandbox Code Playgroud)
第一组是我想要的,我曾尝试使用不同类型的引号等。这可能只是一个愚蠢的格式错误,但我找不到它。
几乎唯一提及该parse命令的文档都在这里,其中的示例就是使用glob表达式的。都无法通过谷歌搜索找到任何示例。
所以有人碰到这个问题并解决了吗?
我已使用 AWS CLI 将 aws cloudwatch 日志数据导出到 Amazon S3。遵循知识库:https : //docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3ExportTasks.html。
知道我们如何导入保存在 s3 中的日志以分析数据吗?
我有这个 CDK 代码:
const logGroup = new LogGroup(this, 'MyAppLogGroup', {
logGroupName: 'myapp',
retention: RetentionDays.ONE_DAY
});
Run Code Online (Sandbox Code Playgroud)
当我运行 时cdk deploy,会在 CloudWatch 中创建日志组,但当我运行 时cdk destroy,它不会被删除。有什么方法可以启用此功能吗?