From: John P. R. <ro...@cs...> - 2005-09-30 15:23:41
|
Hi all: Not sure if 2.0 was supposed to be supported on the main nagios list or not, and since this deals with bugs and development ideas, I figured here would be better. One bug is preventing clear notifications when using servicedependencies. Also there are a couple of doc bugs. Also as a feature, I would loke a way to set up dependencies between two services running on the same machine using specifying multiple host/hostgroups. First for the bugs major to minor: I am not geting a proper clear notification when using servicedependencies. I have four services each depending on the other. Using my check_test plugin I set up the following: define service{ use generic-service host_name web_server1 service_description web_service2 is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 1 retry_check_interval 1 contact_groups admins notification_interval 15 notification_period 24x7 notification_options w,u,c,r check_command check_web1 } which is duplicated for every service (except for a different check command). define servicedependency { name dependency_template execution_failure_criteria n notification_failure_criteria w,u,c register 0 } define servicedependency { use dependency_template dependent_host_name web_server1 dependent_service_description web_service2 host_name web_server1 service_description web_service1 inherits_parent 1 } define servicedependency { use dependency_template dependent_host_name web_server1 dependent_service_description web_service2.1 host_name web_server1 service_description web_service2 inherits_parent 1 } define servicedependency { use dependency_template dependent_host_name web_server1 dependent_service_description web_service2.1.1 host_name web_server1 service_description web_service2.1 inherits_parent 1 } define servicedependency { use dependency_template dependent_host_name web_server1 dependent_service_description web_service3 host_name web_server1 service_description web_service2 inherits_parent 1 } If I set three services to critical: service2.1.1 which depends on service2.1 which depends on service2 I correctly get critical notification only for service 2. Now if I put service1 (which is depended on by service2) in critical mode and let that notification go through, and then bring service2 up (ok), I get the service down notification for service1, but I never get a service up notification for service2. Service2 is displayed as OK in the web interface. When I set service1 to ok, I get the notification of ok status for service1 as expected, but I don't get a delayed or other notification for service2 in the OK state. Also I get the service critical alert for service2.1 as expected. I think that the notification for service2 should be sent since a critical alert went out for it. This is needed when a different group of people respond to the service2 event as compared to the service1 event. If the down notification for service2 never went out I wouldn't be concerned. I could also agree (but somewhat less strongly) with sending the OK status for service2 out after service1 goes to an OK status. BUG2 The use of hostgroups in the service dependency definition: /nagios/docs/xodtemplate.html isn't documented. BUG3 If you set up a service dependency and use the "inherit_parent" parent directive and set it to "yes" rather then 1, nagios doesn't give you an error, it treats it as a 0. It should probably complain. FEATURE REQUEST A way to set up dependencies between two services running on the same machine using specifying multiple host/hostgroups. When you have a farm of machines, it is useful to be able to specify the dependencies between services running on a given host using a hostgroup to supply the names of all the hosts. I suggest making the dependent_host (or hostgroup) optional. So that the example from: nagios/docs/templatetricks.html: define servicedependency{ hostgroup_name HOSTGROUP1,HOSTGROUP2 service_description SERVICE1 dependent_hostgroup_name HOSTGROUP3,HOSTGROUP4 dependent_service_description SERVICE2 other dependency directives ... } That sets up a dependency between each host in groups 3 and 4 on ALL of the hosts in groups 1 and 2 have a variant like: define servicedependency{ hostgroup_name HOSTGROUP1,HOSTGROUP2 service_description SERVICE1 dependent_service_description SERVICE2 other dependency directives ... } that would make SERVICE1 on every host in group 1 and 2 depend on SERVICE2 on the same host. I.E. it would be like specifying: define servicedependency{ host_name HOSTGROUP1_host1 service_description SERVICE1 dependent_host_name HOSTGROUP1_host1 dependent_service_description SERVICE2 other dependency directives ... } define servicedependency{ host_name HOSTGROUP1_host2 service_description SERVICE1 dependent_host_name HOSTGROUP1_host2 dependent_service_description SERVICE2 other dependency directives ... } etc. This would mean that the dependent_host* keywords are optional, but I suppose the special host SELF could be used as in: define servicedependency{ hostgroup_name HOSTGROUP1,HOSTGROUP2 service_description SERVICE1 dependent_hostgroup_name SELF dependent_service_description SERVICE2 other dependency directives ... } Specifying this inter-service dependency for the same host is really a pain. Even when using a preprocessor such as filepp to generate the configs, its annoying. For just one host I have 20 of these dependencies on the master service ssh and the dependent services that use check_by_ssh. This leads to the very compact and easy to read: define servicedependency{ hostgroup_name HOSTGROUP1,HOSTGROUP2 service_description sshd dependent_hostgroup_name SELF dependent_servicegroup_name check_by_ssh_services,ssh_login_services other dependency directives ... } Quips, comments suggestions or answers? -- rouilj John Rouillard =========================================================================== My employers don't acknowledge my existence much less my opinions. |