rule them all. We use an extensive conﬁguration manager (mix of Puppet and our own tech). Perusing through a conﬁg reveals architecture and layout. We monitor and trend EVERYTHING. One look at the dashboard for a server reveals important services.
an architecture - these are the nodes. Log into each server and grab a list of both listening processes, and active connections. For each listening process, ﬁnd all connections from external servers connecting to it. These are the edges. Output this data to a format of your choosing (.dot ﬁle, CSV, etc...).