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?