3

I know conky can monitor my personal computer, but can it monitor the other Linux servers I have on the network? I'd like to see data on CPU and memory usage and some critical processes each server uses. For instance, one server is our MySQL server, so I'd like to display the CPU and memory usage for this server, how much resources the mysqld processes consumes and the network consumption. For another server, some other information should be display according to its use.

4 Answers 4

2

I'm not sure if there's a way to do this directly from within conky. I ran into a similar situation earlier and solved it via SSH. Basically, you set up an unprivileged user account with passwordless SSH login and do this:

${execi 1 ssh dummy_user@server_name <monitoring_command>}

The "1" means the output will be updated every second. You should substitute with the appropriate update interval you'd like and whatever monitoring command you'd like to use.

4
  • thanks for your input! I thought I'd need to do something like this as well. I just hoped for a more secured solution since one server is our DB, the other is the main production and the third I want to connect is testing.
    – gtludwig
    Mar 5, 2013 at 13:49
  • I was just thinking, maybe I can store the credentials on a file on my /home and have conky use this file for each ssh connection?
    – gtludwig
    Mar 5, 2013 at 13:52
  • 1
    I don't see why this is not secure; should be secure enough as long as you keep the dummy user's privileges low. I think storing your credentials on a file is even more risky...
    – Joseph R.
    Mar 5, 2013 at 18:28
  • True enough. Since this is still low priority to me, so I'll poke around a bit more. Also I accepted your previous answer. Thanks again.
    – gtludwig
    Mar 5, 2013 at 19:48
1

I wrote a program for this very purpose: Conkw. It stands for web based conky.

This is a program that, like conky, can monitor many vitals on your system but also all sorts of stuff (stocks, weather, etc) and exposes a REST API with all the data. It can also monitor a Windows or a MacOS machine.

There is also a HTML UI to display your stuff on any browser (even quite old). The goal was to find some use to the old ipads/tablets we all have lying around. You can put them next to your screen and have your metrics displayed there. More real estate for the real work on your main screens!

But the network-based communication btw UI and API make it trivial to monitor another computer. In fact, you can build a mesh network and have metrics of plenty of different machines on the same UI.

It's still very much under development but I've been using it constantly for about 6 month now, so it works well.

1

The traditional way to query a remote machine for performance stats is to send an appropriate SNMP query.

If you set up snmpd on your servers you'll be able to pull all kinds of management data.

1
  • hmm, that's definitely worth a closer look into. thanks for this input as well.
    – gtludwig
    Mar 6, 2013 at 11:46
-1

You could do something like this:

${execi1 sshpass -p <yourpasssword> ssh dummy_user@server_name <monitoring_command>}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.