How do I elect a single publisher with socket.io and node?

I'm making what I thought was a simple page on my node.js (kraken/express) based web site. The page is meant to stream the collective logs from multiple servers and processes running with pm2 so I can watch server activity remotely. So I've configured winston logging to use a mongo capped collection, and then have a tailable cursor via mongoose and publish into socket.io. This works like a charm on a single box with a single process. But of course when you add multiple processes/servers with an LB, bad things happen. First, socket.io clients get shifted around and can't get messages because process A doesn't know about process B's messages. That is fixed by adding mongo as a session store for socket.io.

But that creates my real problem - I can't have each process tailing the mongo logs and publishing into socket.io or I end up with duplicates. But I'm not sure how to elect a fault tolerant leader (or even if that's the right approach). I'd like to do it without a separate server since I'm trying to make setup as simple as possible. Any ideas?

Here's the code: https://github.com/djMax/appsforhere