centralised bunyan log aggregator through tcp

Usage no npm install needed!

<script type="module">
  import bunyanHub from 'https://cdn.skypack.dev/bunyan-hub';



A centralized bunyan log aggregator.

bunyan is a simple and powerful log module for node.js. This program is a server which collecting log events from all local node service. It simply start a tcp server on 28692 (BUNYA on phonepad) and waiting other node program to send new-line determined JSON string to it. You can use bunyan-hub-logger (or bunyan-pub-stream + bunyan) to push log to it and use bunyan-sub cli tool to subcribes to it with specified conditions. or use bunyan-sub-stream api for programing use.

I think the best part of it is that you can use bunyan-sub-stream to pipe to other bunyan-*-streams from npm.

I'm also planning develop a web dashboad for it like logio and then it would a killer app for having a local centralized log aggregator.


npm i -g bunyan-hub


bunyanhub start
bunyanhub stop

You can also run bunyan-hub-server directly, which is the same as run node server.js in source directory. So you can use pm2 as the process supervisor.

pm2 start --name bunyan-hub `which bunyan-hub-server`

Then you can only stop it by pm2 stop bunyan-hub, bunyanhub stop will stop the instance but immediately restarted by pm2.


once connected to localhost:28692 which bunyan-hub listening, you could write a JSON with cmd property ending with \n or FIN.

  • {"cmd":"stop"}\n will stop the server.
  • {"cmd":"version"}\n will give you bunyah-hub version back.
  • {"cmd":"publish"}\n will return you nothing, but expect you to further sending more JSON string which is in bunyan record format.
  • {"cmd":"subscribe"}\n will turn you tcp client into subscription mode, bunyan-hub will send you bunyan records in new-line determined JSON string.

usually you don't need to use raw TCP connection you self, instead using high level modules mentioned in the top section of this readme document.