As you know, I have several systems running at home (physical and virtual machines).
I was looking for a way to “see” quickly any bottleneck, or any unusual activity on those systems from my laptop.
My first reaction was to go for a gnome-like system monitor (gnome-system-monitor).
Despite all criticisms I could read, it was showing me all necessary information, especially real-time graphs for CPU, Memory, and Network.
But when I launched them remotely (through an SSH session, and with the appropriate DISPLAY forwarding option), it showed clearly that it was consuming around 4Mb/s of Network bandwidth just to display… itself !
So, I googled a little bit, and I rediscovered a tool I used to install a long time ago : gkrellm
Local install
From my laptop (ubuntu), installation is very easy :
sudo apt-get install gkrellm
And starting it is also very simple:
gkrellm
Then, I slightly configured it.
There are plenty of options, I tried to adjust them to my needs, as much as possible (I’m still using conky for my own laptop, so I was not looking for a lot of information…)
I even customized the theme, by downloading MonkeyLovers (from official theme site: http://www.muhri.net/gkrellm/)
To install a theme, simply untar the theme package in ~/.gkrellm2/themes, and select it in configuration setup.
Nice, but what about remote monitoring ?
I could have done the same, and simply trigger gkrellm run through an ssh command. But in that case, we are back to the above situation: only the X DISPLAY is remote, and it is consuming traffic bandwidth for… nothing (even if much less than gnome-system-monitor, it was still too much for me, as I was looking for the smallest network footprint possible).
Remote install
Hopefully gkrellm is able to run as deamon that provides its counters information to remote clients.
For that, you just need to install the server piece : gkrellmd
On my Ubuntu systems, it was quite easy :
sudo apt-get install gkrellmd
Then I had to reconfigure /etc/gkrellmd.conf to allow my local network to poll information
(quite nice security feature 🙂 ) and to lower the CPU load (via line : inet-interval 10
)
Next, a simple sudo /etc/init.d/gkrellmd restart
, once the config file was saved, and all is done…
Once this action completed on each remote system, I get back to my laptop.
For each server, I launched the local client, instructing it to connect to the remote server:
gkrellm -s geo
(assuming “geo” is the name of my remote server ; no need to specify anything else if you didn’t change default settings)
Result is exactly what I expected. Local software running (to display graphs) with a remote connection (low bandwidth) to the remote machine.