我想设置观察者发送邮件,如果在最后X分钟内使用CPU超过N%。
第一次弹性搜索每分钟通过metricbeat从远程服务器获取数据。然后我想通过使用该数据通知管理员关闭远程服务器上的高CPU使用率。
我设置邮件,如果内存使用率很高,我完成了部分,但问题是CPU使用率,是4核处理器。我不写aggs功能和条件。我尝试使用github中的代码,但我无法更改函数以使用metricbeat。
答案 0 :(得分:1)
{
"trigger": {
"schedule": {
"interval": "1m"
}
},
"input": {
"search": {
"request": {
"search_type": "query_then_fetch",
"indices": [
"metricbeat-*"
],
"types": [],
"body": {
"query": {
"bool": {
"filter": [
{
"range": {
"@timestamp": {
"gte": "now-{{ctx.metadata.window_period}}"
}
}
},
{
"range": {
"system.process.cpu.total.pct": {
"gte": "{{ctx.metadata.threshold}}"
}
}
}
]
}
}
}
}
}
},
"condition": {
"compare": {
"ctx.payload.hits.total": {
"gte": 5
}
}
},
"actions": {
"email_me": {
"throttle_period_in_millis": 300000,
"email": {
"profile": "standard",
"attachments": {
"datalles.json": {
"data": {
"format": "json"
}
}
},
"from": "xxxx@gmail.com",
"to": [
"yyyy@gmail.com"
],
"subject": " CPU overhead",
"body": {
"html": "The following hosts are running over {{ctx.metadata.threshold}}% CPU: <br><br>{{#ctx.payload.hits.hits}} <b>{{_source.beat.hostname}}</b> ({{_source.system.process.cpu.total.pct}}%) <br> {{/ctx.payload.hits.hits}}"
}
}
}
},
"metadata": {
"window_period": "1m",
"threshold": 0.95
}
}