Azure Sentinel中KQL实现按Email嵌套统计关联IP计数的方法
实现按Email分组的嵌套IP计数输出
要实现按Email分组、展示其关联所有IP及对应计数的嵌套格式,可以通过KQL的summarize结合make_bag或make_list函数完成,具体步骤如下:
步骤1:先统计每个Email+IP组合的基础计数
先执行基础统计,得到每个邮箱对应每个IP的出现次数:
// 替换YourTable为你的实际表名 YourTable | summarize IP_Count = count() by Email, IP
步骤2:按Email聚合生成嵌套结构
根据你需要的嵌套格式,选择以下两种方式之一:
方式1:生成以IP为键、计数为值的字典结构
适合需要快速通过IP查询对应计数的场景,输出的IP_Details列是一个键值对字典:
YourTable | summarize IP_Count = count() by Email, IP | summarize IP_Details = make_bag(pack(IP, IP_Count)) by Email
方式2:生成包含IP和计数的结构化数组
适合需要保留统一对象格式的场景,输出的IP_Details列是一个对象数组,每个对象包含IP和Count字段:
YourTable | summarize IP_Count = count() by Email, IP | summarize IP_Details = make_list(pack("IP", IP, "Count", IP_Count)) by Email
补充说明
pack()函数用于将IP和计数打包成单个键值对或对象;make_bag()会将同一Email下的所有IP-计数对合并为一个字典;make_list()会将同一Email下的所有IP-计数对象合并为一个数组;- 如果需要展开嵌套结构查看详情,可以在查询末尾添加
| mv-expand IP_Details。
内容的提问来源于stack exchange,提问作者CDav117
相关产品推荐
相关产品推荐

