各位大神,首先我还不知道有没有现成的实现的。
我想到的是如何实现网络拓扑:
利用 prometheus 来从每一台自己的服务器上收集“netstat -anp”
信息,进行加工得到"某个时间点-本机 hostname-本机所有 ip-本机所有的 LISTEN 的端口-本机所有的 ESTABLISHED 的链接"。
然后全部数据汇总。一个处理程序来进行将全部信息整理出拓扑图。
因为可能存在一些端口转发的连接,允许在数据中存储固定的端口转发数据,好把所有收集回来的数据加上端口映射数据,就能把全部收集回来的连接匹配上。
但是目前我还想到一个现成的组件来把处理好的数据,呈现出来。因为我只是个运维,我可能没有那么大的精力做前端开发的工作。grafana 似乎做不到这种数据展示。
求各位指教。我想利用业余时间,完成这个事情。(如果各位有现成方案,也请大家告知一下。)
1
scriptB0y 2019-11-01 19:24:08 +08:00
想法应该是可行的,我们内部有一个工具可以根据机器、交换机等设备上的日志,画出一个时间点的网络流量图(基本就是拓扑了,因为不可能有地方没流量,没流量就是有问题的)
|
3
defunct9 2019-11-02 13:14:13 +08:00
cacti 有气象图,用那个简单。或者 observium
|
4
lance86 2019-11-03 11:10:07 +08:00
有点意思哎,我之前看过一个广告,云杉网络的 deepflow 产品,貌似和你想要的结果差不多(当然不知道他们是通过什么方式怎么实现的)。
并且感觉阿里云也是可以直接提供这种功能的,我们现在在阿里云上那么多设备,就算只看个系统的全貌都不行。 我也关注一下你这个主题。。 |
5
DavidG 2019-11-04 10:54:13 +08:00
同运维,想到了第一步:
所有的主机通过 salt 批量执行 ip a 取得 IP 地址(也可以不取)和 netstat -antp,把结果输出到一个 txt 中,通过服务端把手机到的数据归纳总结。 问题:不知道如何让服务端知道 a:1111> b:1111 这两个端口是有对应关系的。。 |
6
MartinWu OP @DavidG 我觉得可以根据 ESTABLISHED 的信息来进行匹配的。想法还是很初步,让我先实现了后端数据。再跟大家分享下咯。
|
7
limbo0 2019-11-04 13:43:55 +08:00
哈正好实现过这个, 也在使用, 说一下思路
收集端使用日志, 到 Kafka , 然后用 Flink 每分钟聚合数据到 ES, 这里数据包含点和边的信息, 然后起个 server 查询 ES 给前端 主要难点是图数据如何存储和展现, 其他还好 |
11
Judoon 2019-11-06 15:55:13 +08:00
这个最好的方案不是交换机口镜像流量,然后做流量分析吗
|