You'll need graphviz installed, and optionally
imagemagick to use the --preview
functionality.
On Ubuntu:
$ sudo apt-get install graphviz imagemagick
Install cloudily from PyPI like so:
$ sudo pip install cloudily
Run cloudily:
$ cloudily --ec2 instances,elb --conns --preview
Open montage.png in your favourite image viewer:
$ qiv montage.png
The --preview
makes a montage of the various graphviz layouts available.
Depending on your network usually 'dot' produces the cleaner layouts, but others
may work better / look cooler.
Use the --ec2
option to visualize your EC2 instances and ELBs. Run:
$ cloudily --ec2 instances,elb --conns --png myarch.png
You need to set your Amazon credentials as environment variables: AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY or configure them in ~/.boto. For more information see: http://code.google.com/p/boto/wiki/BotoConfig
--ec2groups
may be used to filter by security group. This accepts a comma-
separated list of multiple groups. eg. --ec2groups group1,group2
There are various ways Cloudily can discover the connections between your hosts.
--arp
: Looks at the IP addresses in the arp cache. This has limited use inside
EC2, since hosts are usually on different subnets, but maybe useful for other
setups.
--conns
: Looks at the currently open UDP and TCP connections for each host. If
the system is active or there is connection pooling (eg. most database
libraries) you should see everything, otherwise there's a chance you'll
not see connections through inactivity.
--logins
: Includes logins by username in the diagram so you can see who logs
in to which hosts.
With --conns
you can also limit to a selection of ports using --connsports
80,3306
. This is handy if you're only interested in specific services.
0.1.4
- Robustify code to missing values. Fixes #3
- Add --ec2groups option. Fixes #1
- Fix for internal ELBs. Fixes #2
0.1.3
- .ssh/config optional
0.1.2
- Fix defaults
0.1.1
- First release