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?


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
define service{
    service_name myservice
    hostgroup_name mygroup
    host_name !dontmonitorthis,!orthis
  • Just for completeness sake (at least as of 2019/nagios 4) this still works, and works fine with groups as well. – davidgo Feb 18 at 19:36

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)

  • Have you ever found out how to use both regexps and host exclusion simultaneously? – Adrian Frühwirth Jul 3 '13 at 9:49
  • No, sorry Adrian, I got pulled onto another project, but I'd be interested to know if anyone has, or it has been fixed etc – herdingofthecats Jul 4 '13 at 23:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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