5

We're using nagios to check our ssh server is running. We have the check_ssh group defined for all members of a certain group. We have other services defined for that group as well. Everything is fine. However for 2 of the members of this group, they listen for ssh on a different port. Hence I have to make a new service for them. Which is fine, but then nagios complains that I'm defining the SSH service twice for the same host.

Can I change the original ssh service to include all the members of group A, but exclude hosts X and Y?

Amandasaurus
  • 31,471
  • 65
  • 192
  • 253

3 Answers3

10

Use the host_name directive in the service definition with an exclamation before the name of the host. For example:

define service{
        service_description     CPU Stats
        servicegroups   sysres
        use             generic
        hostgroup_name  linux
        host_name       !server1
        check_command   check_iostat
}
Kyle Brandt
  • 83,619
  • 74
  • 305
  • 448
3

Sorry if this thread is old, but I had resolved this exact problem as @arun had implementing the solution.

I haven't found why exactly yet, nor how to re-enable them, but having regular expressions enabled in my nagios.cfg stopped "!" (host/group negation) working for me.

Once I disabled it (set use_regexp_matching=0 in nagios.cfg), I was able to use them fine.

(nagios 3.3.1, x86_64)

3
define service{
    service_name myservice
    hostgroup_name mygroup
    host_name !dontmonitorthis,!orthis
}
chankster
  • 1,324
  • 7
  • 9
  • Just for completeness sake (at least as of 2019/nagios 4) this still works, and works fine with groups as well. – davidgo Feb 18 '19 at 19:36