【问题标题】:Analyzing apache access logs with elasticsearch Watcher使用 elasticsearch Watcher 分析 apache 访问日志
【发布时间】:2015-11-20 16:14:34
【问题描述】:

我正在使用 ELK Stack 来分析日志,我需要分析和检测 apache 访问日志的异常情况。我可以使用 apache 访问日志分析什么以及如何使用 curl -XPUT 将条件提供给 Watcher?

【问题讨论】:

    标签: access-log elasticsearch-watcher


    【解决方案1】:

    如果您还没有找到它,https://www.elastic.co/guide/en/watcher/watcher-1.0/watch-log-data.html 有一个不错的教程。它提供了一个创建日志监视的基本示例。

    您可以分析/观察您可以在 Elasticsearch 中查询的任何内容。只需使用正确的 JSON 语法格式化查询。制作条件的指南位于https://www.elastic.co/guide/en/watcher/watcher-1.0/condition.html

    您还需要查看 https://www.elastic.co/guide/en/watcher/watcher-1.0/actions.html 以了解当查询满足条件时 Watcher 可以采取的可能操作。

    就发送到 Watcher 的帖子而言,每个手表本质上都是一个 JSON 对象。因为它们可以非常精细,所以我发现最好为您要创建的每个手表创建一个文件,然后像这样发布它们:

    curl -XPUT http://my_elasticsearch:9200/_watcher/watch/my_watch_name -d @/path/to/my_watch_name.json
    

    my_watch_name.json 应该有这些基本元素(如上面第一个链接中所述):

    {
      "trigger" : { ... },
      "input" : { ... },
      "condition" : { ... },
      "actions" : { ... }
    }
    

    操作部分将针对您的用例,但这里是我成功使用的其他部分的基本示例:

    {
      "trigger" : {
          "schedule" : { "interval" : "5m" }
      },
      "input" : {
        "search" : {
          "request" : {
            "indices" : [ "logstash" ],
            "body" : {
              "query" : {
                "filtered" : {
                  "query" : {
                    "match" : { "message" : "error" }
                  },
                  "filter" : {
                    "range" : { "@timestamp" : { "gte" : "now-5m" } }
                  }
                }
              }
            }
          }
        }
      },
      "condition" : {
        "compare" : { "ctx.payload.hits.total" : { "gt" : 0 } }
      },
      "actions" : {
        ...
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-11
      • 2018-01-14
      • 2017-01-08
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多