Logfiles Made Interesting with glTail
Fudgie writes "My boss claimed it was pretty much impossible to create an entertaining way to visualize server traffic and events in a short time frame, so of course I had to prove him wrong. A weekend of neglecting my family produced a small ruby program which connects to your servers via SSH, grabs and parses data from Apaches access log and Ruby on Rails production log, and displays your traffic and statistics in real-time using a simple OpenGL interface (tested under Linux and Mac OS/X). It's a bit hard to explain over text, so please have a look at fudgie.org for an example movie, and more information."
...I'm afraid that's the nearest I've seen to a simulated pissing contest ever! B^>
Rgds
Damon
http://m.earth.org.uk/
...we just made his log screen look like a bukkake flick.
And it looks like lots of things taking a wee. Once the site is slashdotted, it'll be a veritable golden shower...
Nice work though.
Task Mangler
I love looking at log files through less. Tons of fun.
tell the engineer it can't be done
The most entertaining way I ever saw to view logs was Visitorville-its kind of like SimCity meets web logging.
Can the same concept be used for graphing network traffic, perhaps from netflow?
It's pretty obvious that fudgie.org is just the name of the site and glTail is the name of the program.
Obligatory jokes about 'taking the piss' aside, that is brilliant. It's the ultimate 'machine that does ping' (to name an old sketch) to keep management amused, but also provides real data. I bet that screen will go ballistic when you get Slashdotted (also a good way to visualise DDoS, maybe?).
I was about to say that it's a sort of etherape on steroids, but I've just realised your visualisation could benefit etherape instead (if you don't know etherape, look it up. No tools identifies a virus infection quicker).
Class, I'm impressed.
Insert
Notice in the movie that one of the sites being monitored is fudgie.org, which is what is linked to here. This looks like a ploy to visualize the slashdot effect. :) Wonder what that must look like. Might tax the renderer pretty hard. I guess that is one way to get load testing done!
-molo
Using your sig line to advertise for friends is lame.
didn't someone once do a version of doom that displayed network activity?
I recall seeing screenshots, but that was years ago.
You gotta add an 'Asteroids' ship on the screen that lets you shoot down connections!
"Oh, look! Bob just logged on... let's get 'em!"
...
"IT support. How can I help you?"
"Hi, this is Bob..."
--
X's and O's for all my foes.
Man this is cool. Very cool.
Ken Lai
Luckily, I saw the movie before the meltdown of the server. It always pays to be on time. ;)
...' scrolling top to bottom; like the cast of a movie.
For those unlucky and late, actually, you missed a competition of peeing coloured snowflakes from the right versus doing the same from the left.
Only, the sources on the left are much better at aiming.
Plus, you have some 'Login
Heads up, Fudgie, it is truely the most amazing display of log files ever creeping across my eyes.
Keep the good work up, and please post again when you have something actually useful for the sysadmin.
I declare you 'King of Log Candy' !
All I see now is blonde, brunette, redhead.
WARNING: Smartphones have side effects--most of them undocumented.
It's pretty, but it is useful? Actually, I think that it is. Those who review the logs ("Firefox?!? We don't need to support a web browser with only 30% market share!!!") apparently have no idea what the data means anyway. So making it pretty certainly won't hurt. And if it's pretty it just might spark interest.
It is dangerous to be right when the government is wrong.
I'd enjoy a postfix version
Serious prostrate problems at Fundie.org, it appears... I'm looking forward to plugging this in to sysstat for some over-utilized servers I manage....
-- @rjamestaylor on Ello
Comment removed based on user account deletion
Hey, this is not the correct way to apply the GNU GPL licence. I don't know whether you had very little time available or just don't care, but the correct way is to explain exactly what licence (full title) the program is under and enable the user to find the licence (provide a copy of it and explain that the author of the licence is FSF, giving their address). We nerds of course understand completely what you mean, but other people may have no idea what you are talking about. To learn how to apply GPL on your program read this.
Good work, by the way. Was there any reason you preferred GPLv2 and not GPLv3? Also from the wording of your licence I think that you intended this to be available only under v2 and not v3 (you say "Licensed under the GPLv2" without a "or any later version" clause).
I loved this line:
"Certain processes are vital to the computer's operation and should not be killed. For example, after I took the screenshot of myself being attacked by csh, csh was shot by friendly fire from behind, possibly by tcsh or xv, and my session was abruptly terminated."
Perhaps the parser doesn't like my Apache logs?
2437 frames in 5.000 seconds = 487.400 FPS
Elements[0], Activities[0]
2550 frames in 5.001 seconds = 509.898 FPS
Elements[0], Activities[0]
1182 frames in 5.002 seconds = 236.305 FPS
Elements[0], Activities[0]
987 frames in 5.001 seconds = 397.321 FPS
Elements[0], Activities[0]
2534 frames in 5.003 seconds = 506.496 FPS
Elements[0], Activities[0]
2506 frames in 5.000 seconds = 501.200 FPS
Elements[0], Activities[0]
2505 frames in 5.000 seconds = 501.000 FPS
Elements[0], Activities[0]
2603 frames in 5.000 seconds = 520.600 FPS
Elements[0], Activities[0]
2548 frames in 5.000 seconds = 509.600 FPS
Elements[0], Activities[0]
2561 frames in 5.000 seconds = 512.200 FPS
Elements[0], Activities[0]
2559 frames in 5.001 seconds = 511.698 FPS
Elements[0], Activities[0]
2567 frames in 5.029 seconds = 510.439 FPS
Elements[0], Activities[0]
2548 frames in 5.000 seconds = 509.600 FPS
Elements[0], Activities[0]
2193 frames in 5.001 seconds = 438.512 FPS
Elements[0], Activities[0]
2300 frames in 5.000 seconds = 460.000 FPS
Elements[0], Activities[0]
2508 frames in 5.001 seconds = 501.500 FPS
Elements[0], Activities[0]
its still NOT entertaining.. Its more bizzare then anything else.
---- Booth was a patriot ----
Why use ssh + tail -f when one can send the output to a centralized syslog server? There isn't any need to setup an account, keys, etc. when you can have the individual servers consolidate the data for you.
Those obstacles keep getting in my way!
How do I shoot?
This would be very cool indeed.
I guess we could download the source and do it ourselves!
I don't know why so many comments were hating on this tool. As a big fan of "visualization" (Tufte books, etc.) I find Fudgie easy to understand and useful. The possibilities here are amazing.
Kudos to you, Fudgie (er...that sounds kinda bad)
Nothing is inexplicable; only unexplained -Tom Baker, Doctor Who
Our servers don't allow the root account ssh access, and the log file ownership is root.
Can this be made to work with sudo? (For instance, if the command argument is "sudo tail -f" instead of just "tail -f" then glTail could feed the password to the ssh session a second time? Forgive me, never used ruby.)
Remote syslog also means that your servers are more secure: (a) because it is harder for crackers to falsify remote logs as they need to compromise two machines, not just one; and (b) because your visualisation program doesn't need access to SSH keys for all of the machines it monitors, so a compromise on the visualisation computer doesn't automatically mean that all of the servers can also be compromised. However, you could presumably adapt this tool to use syslog quite easily.
>north
You're an immobile computer, remember?
Uh, wtf are you talking about?
Ignore the troll. Anyone with a PETA link for their site is obviously some type of sub-intelligent humanoid.
If you want to run glTail on Windows:
1. Use the One-click Ruby installer from rubyforge (not Cygwin ruby)
2. Make sure to `gem install net-ssh`
3. Change "require 'glut'" to "require 'glut_prev'" to enable legacy GLUT ruby bindings
Took me a while to figure this out.
fastfinge> I used to have a program that would play a musical note every time someone hit a port. so for each port it would have a different note
fastfinge> i put it in the dmz
fastfinge> much musical entertainment
fastfinge> I should find the source for that thing again. i could change midi intruments depending on the type of packet.
fastfinge> or maybe create length and timbre data from the source IP?
2006-09-20
RDP? VNC? RSH???
Don't thank God, thank a doctor!
We did something similar like 10 years ago, hooking the log-file to the sound server where each port hat its individual sound and the frequency of connects directly related to the respective sound's volume.
Was rather interesting as you actually could *hear* all those Windows trojans and worms trying to dig their way into your (Linux) system.
They heard about your cool project and want to subject you to a series of tedious interviews, ultimately not offering you a job because you didn't go to stanford.
Damn! I hate flash..
Of course, the logical next step is to make it into a game. Log File Centipede!!!!1!11
Curiously, I spent a good half-minute staring at the animation. For a busy site this could actually be really useful, to watch a slashdotting as it unfolds in real-time, and to a skilled sysadmin it could offer the kind of timely info required to properly tune the server to survive the bursts.
I'm not going to start watching this thing 8 hours a day (though some drones would), but it definitely does have limited uses that aren't currently matched by other analysis tools.
-Billco, Fnarg.com
Movie OS
netcosm youtube vid
The Admin and the Engineer
./gl_tail-0.02.rb:479:in `BitmapCharacter': integer 206452306528 too big to convert to `int' (RangeError) ./gl_tail-0.02.rb:479:in `render' ./gl_tail-0.02.rb:479:in `each_byte' ./gl_tail-0.02.rb:479:in `render' ./gl_tail-0.02.rb:581:in `render' ./gl_tail-0.02.rb:669:in `draw' ./gl_tail-0.02.rb:668:in `each' ./gl_tail-0.02.rb:668:in `draw' /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `to_proc' ./gl_tail-0.02.rb:805:in `call' ./gl_tail-0.02.rb:805:in `MainLoop' ./gl_tail-0.02.rb:805:in `start' ./gl_tail-0.02.rb:882
from
from
from
from
from
from
from
from
from
from
from
from
I'd like to see a dDOS in action with this
people love fish-tanks
Table-ized A.I.
Is available at the site.
The thing is, Netcosm is officially a "research project" that isn't public, it's not something you can install and use today.
http://www.networkperformancedaily.com/2007/04/why_netcosm_is_not_a_product_y_1.html