我正在使用 ELK Stack 来分析日志,我需要分析和检测 apache 访问日志的异常情况。我可以使用 apache 访问日志分析什么,我应该如何将 curl -XPUT 的条件提供给 Watcher?
问问题
526 次
1 回答
0
如果您还没有找到它,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" : {
...
}
}
于 2015-12-31T18:00:19.853 回答