elastalert2 告警查询字段为host所有IP在过去1小时内字段brief中NTP和creo值出现的次数的规则定义,详细案例
时间: 2024-10-20 13:08:23 浏览: 33
ElastAlert2是一个基于Elasticsearch的实时监控工具,用于基于规则触发告警。对于您的需求,我们可以创建一个规则来检测特定主机在过去一小时内NTP和CREO字段的告警情况。这里给出一个基本的规则示例,假设我们已经在ElastAlert2的yaml配置文件中定义了所需的字段名(host、brief、ntp和creo),以及相关的Elasticsearch索引:
```yaml
name: Host_NTP_Creo_1Hour_AggRule
type: aggregate
index: your_index_name
query:
query_string:
query: "host: * AND _type:*" # 匹配所有主机并且不限制文档类型
aggregations:
host_ips:
terms:
field: host
size: 1000 # 可能需要调整大小,以便处理大量数据
ntp_counts:
date_histogram:
field: @timestamp
interval: '1h' # 指定时间间隔为1小时
min_doc_count: 1 # 忽略没有记录的时间段
extended_bounds:
start_key: now-1h
end_key: now
metrics:
total_alerts:
sum:
script:
source: |
if(doc['brief'].contains('ntp') || doc['brief'].contains('creo')) {
return 1
} else {
return 0
}
lang: painless
alert:
- your_email@example.com
throttle:
minutes: 5 # 每隔5分钟发送一次结果邮件
```
在这个例子中:
- `query`部分筛选出包含`host`字段的所有文档。
- `aggregations.host_ips`计算过去一小时内每个主机的唯一IP地址计数。
- `aggregations.ntp_counts`通过日期分桶对每个小时内的文档计数,并检查`brief`字段是否包含"NTP"或"Creo"关键词,如果有,则加1。
- `alert`部分定义了当发现异常(即NTP或CREO相关告警)时发送电子邮件通知。
阅读全文