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.

What tool would I need to use if I need to monitor an Apache installation and a Postgres installation?

In Apache: I'm mainly interested in the logs and the requests per second and few other simple metrics.

In Postgres: I'm looking to monitor DB load, table space sizes and few other things.

Is this where something like Nagios comes in? If I'm correct these would be pretty common things to monitor and I guess there must be tools around to do that without the need of a hodgepodge of scripts and digging through logs manually.

Thank you everyone.

share|improve this question

5 Answers 5

For performance monitoring there are a bunch of tools, some popular Linux ones are,

  • nagios
  • munin
  • cacti
  • zabbix

Here's a nice list at Wikipedia.

None of them are trivial to setup, but they do vary in their complexity. In the above list, I would rate them (in order of setup complexity, highest first), nagios, zabbix, cacti, munin.

Munin will certainly show you performance data for Apache and Postgres with very little effort out of the box.

For log monitoring, it depends specifically want you want out of the Apache logs, if you want web page stats, then something like webalizer is probably sufficient, but if you want to look for attempted attacks and exploits you might want LogWatch.

share|improve this answer

There is no one answer to this question. The best answer you're likely to get is "Pick a monitoring system that is extensible, and extend it to monitor what you care about". @EightBitTony gave you a nice list above.

As an example, I use InterMapper and monitor both Apache and Postgres using it.

  • We monitor Apache using their built-in HTTP & HTTPS probes, since all I really care about is that the pages are up and working. The probes we use exercise a small portion of the web application (it attempts a login: Tests apache, PHP and connectivity to the database we auth against).

  • We monitor Postgres by way of a "command-line probe" (perl script) that checks number of active connections, idle connections, etc.
    That could easily be extended to check on tablespace sizes and such.

Similar setups can be done for Nagios (though I'm biased against Nagios as every setup I've ever seen had decayed to total unusability), and likely for the other tools as well. You may also find that one of the other tools does what you want "out of the box".


Note that none of this addresses "log monitoring" which you also seem to want (for apache).
Be VERY wary of log monitoring, for that way lies obsession and sleepless nights (you configure the system to report anything unusual, then one day your pager blows up because a normal event never happened when you were collecting your data).

share|improve this answer

I think that Nagios not very good solution. I propose you to use Munin for DB load and disk sizes and etc, and phplogcon for logs.

share|improve this answer

Hyperic is a pretty neat open source tool. The agent comes with autodiscovery and plugins for a lot of product, including apache and postgresql.

I use it with Oracle, I just had to give it an ojdbc driver and an account on the database and it discovered all my tablespaces and a bunch of system information on its own.

share|improve this answer

Check out LogicMonitor if you want a (commercial, but hosted - so fairly cheap for small number of servers) system to avoid the "hodgpepodge of scripts."

http://www.logicmonitor.com/monitoring/databases/postgres-monitoring/ http://www.logicmonitor.com/monitoring/applications/web-server-monitoring/apache/

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.