Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm deploy an application in a Fedora Linux server. This application is a Ruby on Rails web application, using MySQL and MongoDB as databases. The application also uses the Delayed Job gem for asynchronous processing. I'm using NGinx as web server. I`m also using Passenger.

So, I have at least 5 process I have to worry about:

  • MySQL process
  • MongoDB process
  • Nginx process
  • Ruby Enterprise Edition process for the web application
  • Ruby Enterprise Edition process for the Delayed Job gem

Unfortunately, all this process will be running in the same virtual machine :(

It's very important for me to monitor:

  • The status of each process
  • The memory and CPU usage of each process
  • The overall I/O usage
  • The overall CPU and Memory usage
  • The database connection pool usage (so I can tune it)

I want a tool that can give me that monitoring data, creating time based graphics for the CPU and memory data. I'm also want to be able to access the log files of all this process via web.

My company has no budget for buying licenses for expensive tools, so I really will give preference for open source tools.

Which tool, or which set or tools do you guys recommends?

Regards,

Rubem

share|improve this question

4 Answers 4

up vote 4 down vote accepted

If your website is public, I recommend you the excellent New Relic RPM for Rails monitoring :

http://www.newrelic.com/

share|improve this answer

Nagios is the standard recommendation for system monitoring for a good reason. It is open source and free. We use it, too.

Is this a public web app? If so, I suggest to add some 3rd-party monitoring. We use AlertFox Pro (paid) for that, but they also have a free package. The free monitoring plan is a bit hidden, but quite powerful ;)

share|improve this answer
    
Can Nagios give me some kind of graph informing me the cpu/memory usage per process versus Time? –  Rubem Azenha Oct 20 '10 at 5:25
1  
Yes, via NagiosGrapher or similar addons: netways.de/en/de/produkte/nagios_add_ons/nagiosgrapher –  FrankJK Oct 20 '10 at 5:40

Nagios will give you alert about your process status.

Cacti will graph what you want to monitor about your processes.

share|improve this answer

Nagios plugins are a great solution for your database pool. There are solid plugins for most databases. Plugins are also a good solution to monitor your system by URL with synthetic transactions.

In order to get process details that you describe you will end up with several disparate systems. You will likely do well to look at a solution that is entirely independent of language or app component type. This is hard to do right, but check out AppFirst. They do a good job of seeing everything. You can also put all of your Nagios plugin data in their data stream.

If you need code level details for your Ruby processes you should check out New Relic. Be aware that this is for developers. It's a great solution. But it depends on what you are looking for.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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