首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AWS-CLI日志中使用筛选模式

在AWS-CLI日志中使用筛选模式
EN

Stack Overflow用户
提问于 2017-06-02 02:15:07
回答 2查看 2.2K关注 0票数 2

我正在尝试使用awscli从AWS云监视日志中过滤日志事件。我在cloudwatch web控制台中使用以下模式。

[ip, user, username, timestamp, request, status_code != 2*, bytes]

我应该在awscli中使用什么等效的过滤器模式?我尝试过aws logs filter-log-events --log-group-name *** --log-stream-name *** --filter-pattern "[ip, user, username, timestamp, request, status_code != 2*, bytes]",但它没有过滤任何东西。

EN

回答 2

Stack Overflow用户

发布于 2018-04-17 08:10:56

我会尝试这样的东西:

代码语言:javascript
复制
aws logs filter-log-events \
--start-time `date -j -f "%a %b %d %T %Z %Y" "Mon Apr 16 14:25:43 PDT 2018" "+%s"`000 \
--end-time `date -j -f "%a %b %d %T %Z %Y" "Mon Apr 16 14:45:43 PDT 2018" "+%s"`000 \
--log-group-name <log-group-name> \
--filter-pattern "[ip, user, username, timestamp, request, status_code != 2*, bytes]" \
--output text

替换适当的值。

票数 1
EN

Stack Overflow用户

发布于 2019-03-15 00:32:33

这是我为收集每日postfix日志而编写的函数的一些代码。我注意到的一件事是,将过滤器模式放在bash脚本的变量中会变得很复杂,因为字符串中需要有单引号和双引号,所以我跳过了这个想法。我相信这是可以做到的,但在我的情况下,复杂性是不值得的。

代码语言:javascript
复制
# Purpose: Collect postfix mail relay CloudWatch Logs for the last day
# Arguments:
#  1 is the AWS region, defaults to $DATA_CENTER
#  2 is the AWS log-group-name to use
# Dependencies: aws cli
function getCloudWatchLogs {
  region=${1:-$DATA_CENTER}
  log-group-name=${2:-"mail_out/postfix"}
  aws logs filter-log-events --log-group-name ${log-group-name} \
    --start-time $(date --date "yesterday 00:00:00" +%s%N | cut -b1-13) \
    --end-time $(date --date "yesterday 23:59:59" +%s%N | cut -b1-13) \
    --filter-pattern='[month, day, time, instance, process="*]:", id="*:", recipient="to=<*>,", message!="*status=sent*"]' \
    --region ${region} --output text \
    | awk -F"\t" '{print $5}'|cut -d" " -f6- \
    > $mail_dir/postfixmaillog_${region}.out
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44314442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档