Completely realistic and I've set this up multiple times. It's actually a nice way to do it.
One of the things I've been meaning to do to "get the word out" about Sagan is a regular blog/wiki posting. This way, I could cover installations like you've described and other
nifty things Sagan can do. I'll give you a brief run down of how I've done it.
The first step is to get the multiple devices reporting to syslog (syslog-ng/rsyslog). For example sake, we'll call our resources "firewalls, routers, servers".
You'll want to setup your syslog daemon to receive syslog messages on different ports. For example:
routers: 514/UDP
firewalls: 1514/UDP
servers: 2514/UDP
Of course, you could use syslog over TCP, or TCP with TLS, etc, however that's out side of the scope and I'm trying to keep things simple for the example. When the syslog daemon receives messages per-UDP port, they get stored into a sagan FIFO.
For example, you might have your syslog daemon store to the follow FIFO's per inbound UDP/port:
sagan-routers.fifo
sagan-firewalls.fifo
sagan-servers.fifo
You then create 3 configurations files (sagan-routers.config, sagan-firewalls.config, sagan-servers.conf). Each config file need point to there respected FIFO. You'll also need to make some other minor changes. For example, you'll want to change the LOCKFILE and a few other things.
You can then start Sagan with:
sagan --config /usr/local/etc/sagan-routers.config -D
sagan --config /usr/local/etc/sagan-firewalls.config -D
sagan --config /usr/local/etc/sagan-servers.config -D
The rest depends on if you're doing direct database writes or Barnyard2.
If you're doing barnyard2, then make sure you setup each sagan configuration with it's own unified2 output format. (ie - "sagan-routers.u2"). Then setup the instances of barnyard2 needed to read from each unified2 output.
One thing to note here. If the Sagan is running on the same machine as the syslog receiver, you might want to do direct database writes. This lets Sagan records a little bit of extra information in the "Alert" field. If the Sagan instance is running remote or you're worried about losing events if Sagan dies, then use Barnyard2.
It's actually pretty nice once it's setup. I have setup's in the field that have both Snort data and Sagan data all in the same place. You can generate some really nice reports with Snorby based on that information :)
I hope this helps, and let me know if you have any other questions!