Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question already has an answer here:

I have installed Nagios on my network, and I have some beginner questions.

I would like to get some "best practice" information about the following types of server:

  • Web Server
  • Exchange Server
  • Database Server

From the list above I would like to know the resources that should be monitored. For example, what are the preferred checks to monitor an exchange server, I initially thought of these :

  • Disk Space (C:)
  • CPU Load (%)
  • Memory Usage (%)

I'd like to compile a list of these so that when I add a new server to my network I know what checks I should add (in essence a set of templates) depending on the server type.

To further clarify, I am not asking HOW to configure Nagios, but what are some best practices and typical checks I should choose for different types of server.

share|improve this question

marked as duplicate by Jenny D, mdpc, Rex, Dave M, Katherine Villyard Feb 24 '14 at 22:47

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

You cannot seriously expect to configure or use something like Nagios without reading its documentation, which covers everything you are asking about. – John Gardeniers Mar 16 '11 at 10:12
what type of web server/exchange server? What else? All configurations for * isnt a good question. – pablo Mar 16 '11 at 11:28
@john - I think the OP already knows nagios, but is unclear about what types of resources he/she should monitor on different types of servers. I have an edit pending approval that clarifies this. – Kev Mar 27 '11 at 12:29
@kev, only the OP can tell us whether he/she meant the original question or your edited version. Quite honestly, I could not interpret the original in the way you have, as it has changes the context totally. – John Gardeniers Mar 27 '11 at 20:43
@john - looked fairly obvious if you take the time to read the original a couple of times. – Kev Mar 27 '11 at 21:30

I'm having a bit of trouble grokking you, but I think you're looking for an example setup.

Wikimedia (The Wikipedia guys) have a public Nagios server that sounds like it's exactly what you need. Check it out here:

share|improve this answer
Wow, I've never seen that before. *looks – TheLQ Mar 27 '11 at 14:50

You are looking for hostgroups. The key to a scalable nagios deployment, or at least one key, is to never map a service check directly to a host or list of hosts. Instead, create hostgroups and add hosts to those hostgroups then assign service checks to those hostgroups. This will mean that adding a new server is very easy. Here's an example.

define hostgroup {
        hostgroup_name          mogile-servers
        alias                   Mogile Servers
        members                 adrock,mca,miked

define service {
        hostgroup               mogile-servers
        use                     he-generic-service
        service_description     MOGSTORED_RSS
        contact_groups          sms
        check_command           check_remote_procs_rss!10485760!12582912!mogstored

Note, there are several more services assigned to the mogile-servers hostgroup.

Now, if I need to add another mogile server, I simply add it to the mogile-servers hostgroup and all services will be checked on that new host. Easy.

If you force yourself to consider mapping services to groups of hosts as above, you'll save a lot of heartache and config mess going forward.

In your example above, you'd create something like:

define hostgroup {
        hostgroup_name          exchange-servers
        alias                   Exchange Servers
        members                 pdc-host, sdc-host, tdc-host

define service {
        hostgroup               exchange-servers
        use                     he-generic-service
        service_description     EXCHANGE
        contact_groups          sms
        check_command           check_exchange

share|improve this answer

One thing to note is:

quis custodes ipsos custodiet

If the monitoring service provided by Nagios goes down, then how will you know whether either a) your services are just okay or b) you've lost your monitoring service and actually things are falling apart around your ears.

Therefore I'd always recommend having two Nagios hosts.

  • The first is configured to monitor all your services.
  • The second is configured to monitor the other Nagios service - ideally this should be in a different location in order that complete site failure can be detected.

Both of them should be configured to be able to send notifications, the second one should also be configured so that it is not dependent upon any services in the first location.

share|improve this answer
Some tips pertaining: 1) "The first is configured to monitor all your services including the second Nagios". 2) In these days of smartphones, the second Nagios can use e.g. Google Talk for notification. That fairly guarantees that it uses a totally different route for notification. 3) You can use e.g. Amazon EC2 to host the Nagios instance to get it separated. – Bittrance Apr 12 '11 at 17:35

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