0

I have a server with a lot of processes that do use TCP for inter-process communication (micro-service architecture).

I am trying to get an overview which service/process communicates with what other services, therefore I want to build a network diagram, e.g. based on netstat output (other standard Linux networking tools would also be ok as data source).

Is there a free/open source script or tool that can build a network diagram showing the processes and the communication paths?

I am aware that such a diagram may be incomplete as netstat only captures a certain point in time, but that would be acceptable in this scenario. root access is available on the used server.

1 Answer 1

1

I had to solve a similiar problem recently (DB object dependencies) and after a lot of research I ended up using Cytoscape, an open source graph visualisation tool. Although it originates from the biological space, it is totally usable in any other graph and/or relationship context.

Description from their website:

Cytoscape is an open source software platform for visualizing molecular interaction networks and biological pathways and integrating these networks with annotations, gene expression profiles and other state data. Although Cytoscape was originally designed for biological research, now it is a general platform for complex network analysis and visualization. Cytoscape core distribution provides a basic set of features for data integration, analysis, and visualization.

The raw netstat output would need only a little cleaning up to convert it into a CSV. The CSV can then be imported into Cytoscape where it generates the corresponding network diagrams (nodes, edges, attributes, labels, etc).

I also recommend the free add-on yFiles Layout Algorithms from the Cytoscape app store. Installing it provides many useful additional layouts, especially with large networks with many nodes and connections.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.