从metricbeats系统模块获取磁盘使用率(> 90%)

时间:2017-04-18 19:15:09

标签: elasticsearch metricbeat

我正在尝试检查每个主机的当前磁盘使用率是否超过90%。我最终得到了这样的查询:

GET /metricbeat-2017.04.18/_search
{
  "query": {
    "exists" : { "field" : "system.fsstat.total_size" }
  },
  "size": 0, 
  "aggs": {
    "by_hostname": {
      "terms": {
        "field": "beat.hostname",
        "size": 100
      },
      "aggs": {
        "newst_fsstat": {
          "top_hits": {
            "sort": [{"@timestamp": {"order": "desc"}}],
            "size" : 1
          }
        },
        "total_size": {
          "sum": {
            "field": "system.fsstat.total_size.total"
          }
        },
        "used_size": {
          "sum": {
            "field": "system.fsstat.total_size.used"
          }
        },
        "disk_usage_percentage": {
          "bucket_script": {
            "buckets_path": {
              "total": "total_size",
              "used": "used_size"
            },
            "script": "params.used / params.total * 100"
          }
        }
      }
    }
  }
}

但是我不能将下一个aggs放在top_hists中,因此total_size和used_size是每个文档的总和。

另外,我无法过滤disk_usage_percentage以仅包含那些> 90%。

你能帮忙解决这个问题吗?

0 个答案:

没有答案