标签: sumologic

Terraform:将cloudwatch日志订阅交付配置为lambda?

我需要将我的cloudwatch日志发送到日志分析服务.

我已经在这里这里跟着这些文章,并且手动工作,不用担心.

现在,我正在尝试使用Terraform(角色/策略,安全组,cloudwatch日志组,lambda以及从日志组触发lambda)自动执行所有这些操作.

但我无法弄清楚如何使用TF来配置AWS以从cloudwatch日志中触发lambda.

我可以通过执行以下操作手动将两个TF资源链接在一起(在Lambda Web控制台UI中):

  • 进入lambda函数的"触发器"部分
  • 点击"添加触发器"
  • 从触发器类型列表中选择"cloudwatch logs"
  • 选择我想要触发lambda的日志组
  • 输入过滤器名称
  • 将过滤器模式保留为空(意味着触发所有日志流)
  • 确保选中"启用触发器"
  • 单击"提交"按钮

完成后,lambda将显示在订阅列中的cloudwatch日志控制台上 - 显示为"Lambda(cloudwatch-sumologic-lambda)".

我尝试使用以下TF资源创建订阅:

resource "aws_cloudwatch_log_subscription_filter" "cloudwatch-sumologic-lambda-subscription" {
  name            = "cloudwatch-sumologic-lambda-subscription"
  role_arn        = "${aws_iam_role.jordi-waf-cloudwatch-lambda-role.arn}"
  log_group_name  = "${aws_cloudwatch_log_group.jordi-waf-int-app-loggroup.name}"
  filter_pattern  = "logtype test"
  destination_arn = "${aws_lambda_function.cloudwatch-sumologic-lambda.arn}"
}
Run Code Online (Sandbox Code Playgroud)

但它失败了:

aws_cloudwatch_log_subscription_filter.cloudwatch-sumologic-lambda-subscription:InvalidParameterException:供应商lambda的destinationArn不能与roleArn一起使用

我找到了关于为预定事件设置类似事情的答案,但这似乎与我上面描述的控制台操作没有相同(控制台UI方法不会创建我能看到的事件/规则) ).

有人能给我一个关于我做错的指针吗?

amazon-web-services sumologic terraform

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

sumologic 中如何获取数组的长度?

我正在从日志中解析 json 字段,其中一些字段中有数组。\xc2\xa0Sumo 似乎可以很好地理解数组,但我没有看到提取数组中项目数量的方法。(长度、数量等)

\n

length似乎仅用于字符数。但我添加了一个屏幕截图来演示我想要做什么。在本例中,body是一个对象数组。

\n

在此输入图像描述

\n

arrays sumologic

8
推荐指数
1
解决办法
1016
查看次数

Sumologic - 将 JSON 数组拆分为多个记录

我在 HTTP 中传递一个 JSON 数组对象POST作为

[{"level":"INFO","data": "Test 1"},{"level":"INFO","data": "Test 2"}]
Run Code Online (Sandbox Code Playgroud)

该消息在 SumoLogic 中被视为 1 个对象/日志消息。我如何告诉 SumoLogic 将每个 JSON 对象视为一个独立的对象并显示 2 条日志消息而不是一条?

arrays sumologic

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

为什么使用 sumologic 而不是 aws cloudwatch?

我们的应用程序(MapReduce 作业、微服务)完全在 AWS 上运行。

我们打算使用单一服务来查看(出于调试目的)、监控和警报(基于阈值的通知)日志。

与 AWS 本身提供的服务(本例中为 cloudwatch)相比,使用相扑逻辑等外部服务提供商有什么具体好处吗?

amazon-cloudwatch sumologic amazon-cloudwatchlogs

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

Sumologic 中的搜索查询 - 包含

我对 Sumologic 中的搜索查询有点迷失。我需要获取_sourceHost包含的日志production

对于 SQL,它看起来像这样

WHERE app="my-app" AND _sourceHost LIKE "%production%"
Run Code Online (Sandbox Code Playgroud)

有人知道 Sumologic 是否可能吗?

sumologic

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

如何与ECS上的其他容器共享文件或目录?

我有一个 Sumologic 日志收集器,它是一个通用日志收集器。我希望日志收集器查看来自不同容器的日志和配置文件。我该如何实现这个目标?

amazon-ecs docker sumologic docker-volume

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

是否可以在 sumologic 中解析嵌套的 json?

所以我有一个这种格式的日志:

{
    "date":1598808279.785381,
    "log":"{\"level\":\"info\",\"ts\":15988.7852,\"caller\":\"server/middlewares.go:26\",\"msg\":\"Request Log\",\"status\":200,\"method\":\"GET\",\"url\":\"/health\",\"duration\":0.000008323}",
    "container_id":"someid",
    "container_name":"/service-name",
    "source":"stdout"
}
Run Code Online (Sandbox Code Playgroud)

我想提取该log领域内的状态。阅读文档后,我看起来应该能够做到:

_collector="MyService" | json auto | fields log.status
Run Code Online (Sandbox Code Playgroud)

但是,这会引发语法错误.

我认为的另一个解决方案是,根据其他语言的工作方式,管道通常返回对象,因此如果我可以增量返回字段,这应该可以工作:

_collector="MyService" | json auto | fields (log) | fields (status)
Run Code Online (Sandbox Code Playgroud)

但这也行不通。

我尝试指定给定字段:

_collector="MyService" | json auto "fields.log.status"
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

我还尝试使用如下字段直接提取该值:

_collector="MyService" | json field=Message "log.status"
Run Code Online (Sandbox Code Playgroud)

最后,我尝试做所有这些变化:

_collector="MyService" | json auto field=log "status"

_collector="MyService" | json auto field=log | fields status

_collector="MyService" | json auto field=log "status"

_collector="MyService" | json auto field=log "log.status"
Run Code Online (Sandbox Code Playgroud)

但无济于事。

有什么想法我哪里出错了吗?

logging sumologic

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

部分路径的正则表达式

我有这样的路径(单行):

/
/abc
/def/
/ghi/jkl
/mno/pqr/
/stu/vwx/yz
/abc/def/ghi/jkl
Run Code Online (Sandbox Code Playgroud)

我只需要与第三个“/”匹配的模式。换句话说,路径仅包含“/”以及最多前 2 个目录。然而,我的一些目录以“/”结尾,有些则不然。所以我想要的结果是:

/
/abc
/def/
/ghi/jkl
/mno/pqr/
/stu/vwx/
/abc/def/
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试过了(\/|.*\/),但这并没有得到没有“/”结尾的路径。

java regex parsing re2 sumologic

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

我应该如何在clojure中编码异常?

我希望能够json编码异常对象.我正在将我的日志推送到sumologic并且希望能够推送json编码的异常,以便我可以在sumo中解析和过滤这些日志.

但是,我不能json编码异常并得到此错误:

Cannot JSON encode object of class: class java.lang.Class: class clojure.lang.ExceptionInfo
Run Code Online (Sandbox Code Playgroud)

这是我的compojure-api异常处理程序:

(defn exception-handler
  "Handles exceptions."
  [f]

  (fn [^Exception ex data request]
    (log/error (json/generate-string {:request-id log-helper/*request-id*
                                      :error    ex}))

    (f (.getMessage ex))))
Run Code Online (Sandbox Code Playgroud)

clojure sumologic compojure-api

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

在Sumo Logic中,如何搜索匹配正则表达式的日志?

我正在尝试对匹配以下正则表达式的日志进行相扑逻辑搜索:

"Authorization \d+ for story is not voided. Story not removed"
Run Code Online (Sandbox Code Playgroud)

也就是说,\d+由一位或多位数字组成,但它们究竟是什么并不重要。

基于搜索示例备忘单(https://help.sumologic.com/05Search/Search-Cheat-Sheets/General-Search-Examples-Cheat-Sheet),我尝试为此使用一种* | parse regex模式,但是不起作用:

在此处输入图片说明

我收到“在正则表达式中找不到捕获组”错误。不过,我实际上对捕获数字并不感兴趣,只是在我的搜索中匹配正则表达式。我怎样才能做到这一点?

sumologic

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