Show HN: Log.io (Realtime log monitoring, powered by node.js + socket.io)
logio.org
logio.org
This struck me as really odd. Why is it done that way? Most stuff is logged via syslog. Those things are already in the buffer and it seems the local nodes are doubling the seek+read of what was just written. Downsides:
- double disk action for every log line
- inotify overhead for the system
- logging requires local disk space
- disk io delays mean collection delays
- when disk get full / fail on write you don't collect the message about the failure if one was attempted to be written
- when syslog daemon decides that messages are coming in too fast, it might drop them from the for_the_disk buffers - this way the only copy was lost (not 100% sure, but I believe syslog-ng can send to one destination even if another is blocked)
I really can't see positive sides of this approach. Logstash seems to handle everything log.io does and much more... am I missing something?
Or do you store your logs on a random server that request happened to hit / session was bound to?
1. Show the glamour shot (even just a screen shot of text makes it compelling). 2. Quickly explain the problem you're solving. 3. Quickly explain how you solve the problem. 4. List the most compelling RTBs ("reasons to believe")
Just a heads up: it wasn't immediately clear that I could click on the screenshot for a demo. I'd make that a huge call-to-action. The product can sell itself.
Also, I don't believe your claims about WebSockets are true. I thought wss:// would allow for SSL secured WebSocket connections...
edit: Googling indeed seems to indicate that wss is ws over TLS. See: http://websocket.org/echo.html for an example.
I've seen socket.io drop messages and I wonder if it's happening here.
Open both Chrome and Firefox at the same time and watch logio_server in each browser. After several minutes I start seeing different messages in each browser. Is socket.io not delivering every message to each socket?
It's possible that log.io is not trying to send absolutely every message (which is the reason I introduced the volatile flag for the upcoming version: https://github.com/learnboost/socket.io-node/tree/develop)
ps. Maybe it's me, but 2 hours ago your site worked great in Opera, and now the design seems broken. If you changed some CSS, then that might be it :)
Yeah, they thought that up 30 years ago. It's called syslog.
In addition, graylog appears to be "solving" something RFC 5424 already has with structured messages.
It also seems that the structured messages handling assumes the message fits in a packet and can be processed dropped when convenient depending on its size. That's not something I expect from a logging system. Gelf adds chunking / compression just in case.
I agree it's not the most perfect format, but it's usable, and already much better than freeform text messages if you intend to do programmatic processing.
Another interesting initiative in normalized logging is CEE (http://cee.mitre.org/). The 'lognorm' and 'libee' libraries (http://www.liblognorm.com/) are early attempts to implement this.
Note that I haven't looked at 'gelf' yet so I don't know how it compares.
"logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching). Speaking of searching, logstash comes with a web interface for searching and drilling into all of your logs. It is fully free and fully open source."
node.js is also my (current) tool of choice for real time logfile analysis, i use a slightly different approach.
i ssh funnel the logfiles to my machine i.e.:
ssh server.example.com sudo tail -f /var/log/nginx/example.com_access.log > test.log
then use this (disclaimer: coded it during a hackweek) lib
https://github.com/franzenzenhofer/nolog
to attach events to the logfile nolog('./test.log').shoutIf('googlebot', /Googlebot/i ).on('googlebot', function(data) { ... });
basically you - watch a logfile
- shoutIf you come across a given pattern (can be regex or function)
- listen if a shout event occurs
i will definitly look into log.io and see if there is a way to plug nolog somewhere in there.an important addition to log.io would be log servers in php, asp(x) and all the other legacy languages. my experience is that webservices that allow and/or use modern development approches already have a suitable logfile observation, but all the millions of sites stuck with yesteryear really struggle with it.
* Java Agents run on the servers * vsConsole is a web application that runs on Tomcat
Use a browser to select the desired log file, and you can tail it. (When the browser polls the web app, the web app will contact the agent for the latest changes to the file).
View the demo at:
* http://demo.vamonossoftware.com/vsconsole/file/index#1:DEV:8...
More information at * http://demo.vamonossoftware.com/
vsConsole is aimed at development teams, not as a production log monitor. For example, while developers and testers are working with an application, when they want to see whats going on in the log, they can just click a button - no unix accounts, ssh, tailing, needing to know where the logs are etc.
A new version which looks a lot better, and has simple messaging and application monitoring will be out soon.
This looks more polished and complete though from a user interface perspective, nice job!
It's even encrypted.
Could I use SSH over iTerm, and display multiple windows in Screen? Sure. But this is easier/quicker.
It would be nice if it didn't need to constantly hit local disk on every machine, though.
But why would you ever inflict raw, unprocessed, scrolling logs on anyone other than developers working on a specific bug? (they'd expect an accessible backwards search too)
That said, I agree- Historical Search is a necessary feature for it to be very useful to debugging.
This tool is most useful for watching servers after deployments, tracking a process through a bunch of coordinated services, live debugging, or keeping an eye on specific log messages across a bunch of servers.
As many folks have pointed out, there are plenty of solutions for aggregating, storing, parsing and analyzing logs. We needed a tool to make watching live logs simpler. That's what this is for.
http://demo.vamonossoftware.com
So, I can easily see the use for these kinds of tools. Nagios, Splunk, et al are all too heavyweight for our kind of requirements.
OP's ignorance makes him a threat to himself and others. It's this absolute refusal to learn the existing toolset that's pervading modern software development, putting projects in jeopardy. What's odd to me is that not only is the HN community complacent in this, you actually applaud it.
FWIW, this is why your sysadmin is pithy. He has seen software developers pull stunts like this for far too long, unwilling to listen to reason, unwilling to be technically cuckolded by a software package that's existed for thirty years.
Ignorance doesn't listen to reason.