You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ElasticSearch中找出占索引容量最多的日志文件及来源服务器

ElasticSearch 查询Top10服务器与日志文件容量占比

前提说明

要统计日志的容量占比,需先确保能获取每条日志文档的字节大小:

  • 若你的索引已启用_size字段(存储每个文档的字节大小),可直接使用该字段;
  • 若未启用,可通过脚本计算_source的大小(性能略差),或在日志摄入阶段(如Filebeat/Logstash)添加自定义字段记录单条日志的大小。

1. 查询Top10来源服务器的容量占比

替换请求中的字段和索引名为你的实际信息:

GET /your-daily-index/_search
{
  "size": 0,
  "aggs": {
    "top_servers": {
      "terms": {
        "field": "server_ip.keyword",  # 替换为你的服务器标识字段(需用keyword类型)
        "size": 10,
        "order": {
          "total_size": "desc"
        }
      },
      "aggs": {
        "total_size": {
          "sum": {
            "field": "_size"  # 若用_source大小,替换为:"script": "doc['_source'].length()"
          }
        },
        "size_percentage": {
          "bucket_script": {
            "buckets_path": {
              "bucketSize": "total_size",
              "totalSize": "_total_size"
            },
            "script": "(bucketSize / totalSize) * 100"
          }
        }
      }
    },
    "_total_size": {
      "sum": {
        "field": "_size"  # 与上面的sum字段保持一致
      }
    }
  }
}

2. 查询Top10日志文件的容量占比

仅需替换分组字段为日志文件名字段:

GET /your-daily-index/_search
{
  "size": 0,
  "aggs": {
    "top_log_files": {
      "terms": {
        "field": "log_filename.keyword",  # 替换为你的日志文件名字段(需用keyword类型)
        "size": 10,
        "order": {
          "total_size": "desc"
        }
      },
      "aggs": {
        "total_size": {
          "sum": {
            "field": "_size"  # 若用_source大小,替换为:"script": "doc['_source'].length()"
          }
        },
        "size_percentage": {
          "bucket_script": {
            "buckets_path": {
              "bucketSize": "total_size",
              "totalSize": "_total_size"
            },
            "script": "(bucketSize / totalSize) * 100"
          }
        }
      }
    },
    "_total_size": {
      "sum": {
        "field": "_size"  # 与上面的sum字段保持一致
      }
    }
  }
}

关键说明

  • size: 0:仅返回聚合结果,不返回具体日志文档,提升查询效率;
  • terms聚合:按指定字段分组,size:10限制返回Top10结果;
  • sum聚合:计算每个分组的总字节大小;
  • bucket_script:计算当前分组占索引总容量的百分比;
  • 字段类型:必须使用keyword类型的字段进行分组,避免因分词导致分组混乱。

内容的提问来源于stack exchange,提问作者Dilshad Abduwali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 04:07:38