elasticsearch - 自定义 Elasticsearch 的 elastalert 插件收到的警报中的信息

标签 elasticsearch elastalert

我已经用我的 elasticsearch 主机配置了 elastalert 实例。 我还创建了一个示例规则,它将在日志中匹配该模式时检查日志级别和警报。

一切正常,我在我的 Slack channel 上正确收到警报。

唯一关心的是我收到的警报中的信息/数据。 elastalert 插件正在发送与我正在寻找的模式相关的所有属性;但我对所有信息都不感兴趣。我只关心一些特定的属性。

这是我的规则示例:

# Alert when the rate of events exceeds a threshold

# (Optional)
# Elasticsearch host
 es_host: 

# (Optional)
# Elasticsearch port
 es_port: 

# (OptionaL) Connect with SSL to elasticsearch
#use_ssl: True

# (Optional) basic-auth username and password for elasticsearch
#es_username: someusername
#es_password: somepassword

# (Required)
# Rule name, must be unique
 name: DB2 test Rule

# (Required)
# Type of alert.
# the frequency rule type alerts when num_events events occur with timeframe time
 type: frequency

# (Required)
# Index to search, wildcard supported
 index: logstash-* # logstash-2016.04.05 #logstash-YYYY.MM.DD # logstash-*

# (Required, frequency specific)
# Alert when this many documents matching the query occur within a timeframe
 num_events: 1

# (Required, frequency specific)
# num_events must occur within this amount of time to trigger an alert
 timeframe:
  hours: 12

# (Required)
# A list of elasticsearch filters used for find events
# These filters are joined with AND and nested in a filtered query
# For more info: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl.html
 filter:
 - query:
    query_string:
      query: "type: db2 AND logLevel: Warning"

# (Required)
# The alert is use when a match is found
 alert:
 - "slack"
 slack:
 slack_webhook_url: "XYZ"

我在 Slack channel 上收到的警报如下所示:

DB2 test Rule
DB2 test Rule

At least 1 events occurred between 2016-04-29 07:51 UTC and 2016-04-29 19:51 UTC

@timestamp: 2016-04-29T19:51:45.940Z
@version: 1
_id: 
_index: logstash-2016.04.29
_type: db2
apphdl: 
appid: 
authid: 
day: 29
db: NEO
eduid: 
eduname: 
function: 
host: 
hostname: 
hour: 14
id: 
instance: 
logLevel: Warning
logMessage: 
LOADID: 
DATA #2 : 
Completed 
message:       LEVEL: Warning

和 ETC ETC...

我想自定义此警报消息,以便它只用我关心的那些属性来提醒我。(例如时间线、日志级别和更多。)

有办法吗?非常感谢您提供一点帮助或指导。

最佳答案

根据ElastAlert documentation ,您可以使用 include 将警报限制为仅包含文档中的某些字段。

在您的情况下,它将是:

include: ["@timestamp", "logLevel", "message"]

关于elasticsearch - 自定义 Elasticsearch 的 elastalert 插件收到的警报中的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36947201/

相关文章:

elasticsearch - Elasticsearch查询问题-[范围]格式错误的查询,预期[END_OBJECT],但发现[FIELD_NAME]

python - 在Django Restframework中使用elasticsearch的最佳方法是什么

regex - Elasticsearch中的时间戳正则表达式

java - (JAVA、Elasticsearch)如何从 SearchResponse 获取字段?

sql - SQL 和 elasticsearch 之间的良好实践

即使在成功插入文档后,ElasticSearch 计数 API 也会返回相同的数字

elasticsearch - elastalert是否可与ElasticSearch 6一起使用

docker - 在 docker-compose.yml 中添加插件到 Kibana 镜像

elasticsearch - 无法启动ElastAlert:仅支持pytz库中的时区

elasticsearch - 在Kibana中没有登录的 Elasticsearch 警报