我有一个包含超过 600 万条记录的日志表。我想要一个查询,向我显示src
去往同一目的地/端口的所有事件。
我试过这个:
SELECT src, dst, dstport, COUNT(src) AS Hits
FROM logs
GROUP BY src
ORDER BY Hits DESC;
不确定这个查询是否给了我我想要的。此外,排除特定端口的最佳方法是什么?说dstport = 53
?
我希望每次每个 src 到达相同的 dst 和 dstport 时都显示,同时保持对事件的计数。说 src 10.110.0.10 到达 dst 10.2.9.124:53 2,345,568 次 & 也到达 192.168.9.18:80 174 次;那么结果将如下所示:示例:
+-----------------+-----------------+---------+---------+
| src | dst | dstport | Hist |
+-----------------+-----------------+---------+---------+
| 10.110.0.10 | 10.2.9.124 | 53 | 2345568 |
+-----------------+-----------------+---------+---------+
| 10.110.0.10 | 192.168.9.18 | 80 | 174 |
+-----------------+-----------------+---------+---------+
但是通过上面的查询我得到了这个结果:
+-----------------+-----------------+---------+---------+
| src | dst | dstport | Hist |
+-----------------+-----------------+---------+---------+
| 10.110.0.10 | 10.2.9.124 | 53 | 1443780 |
| 10.110.0.10 | 192.168.9.124 | 53 | 1402210 |
| 10.192.31.23 | 10.192.1.120 | 8082 | 319507 |
| 10.192.31.19 | 10.192.1.186 | 8081 | 319203 |
| 192.168.31.131 | 192.168.31.130 | 80 | 290818 |
+-----------------+-----------------+---------+---------+
要通过聚合查看所有内容,您可以这样做
查看小计
使用您的示例数据
这是查询的输出