12.07.2011, 04:17 UTC+2

Sie sind nicht angemeldet.

SNMP Servicedependencies per regExp(?)

MichaW

Anfänger

Beiträge: 38

Anzahl Nagios-Server: 2

Nagios-Version(en): 3.2.1

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 25

Anzahl Services: 100

Betriebssystem(e): Debian Squeeze

Plugin-Version(en): 1.4.15

NagVis-Version: 1.4.6

1

Gestern, 00:32

SNMP Servicedependencies per regExp(?)

ich würde gerne für meine SNMP-Services auf jedem Host eine Serviceabhängigkeit zu snmp-uptime konfigurieren. Damit soll sichergestellt werden, dass ich nicht 3-4 Mails erhalte, wenn z.B. der SNMP Dienst nicht läuft.

Für einen Host klappt das prima:

define servicedependency{
host_name papagei
service_description snmp-uptime
dependent_host_name papagei
dependent_service_description snmp-diskspace,snmp-cpu,snmp-traffic,eth0
notification_failure_criteria w,c,u
execution_failure_criteria n
}


Allerdings muss ich dann die Aufzählung immer aktualisieren, wenn weitere Services dazukommen.

Kann man bei dependent_service_description mit einem regulären Ausdruck (z.B. snmp-*) arbeiten, oder wie könnte ich das Pflegen der Liste umgehen?

Der zweite Schritt wäre dann, die Servicedependency auf mehrere Hosts auszuweiten. Das wäre natürlich obercool :)

Die Seite "Zeitsparende Tricks für Objektdefinitionen" im Wiki habe ich zwar gefunden, aber das Servicedependency Beispiel, basiert ja auch auf der Aufzählung einzelner Services.

Danke im voraus
Micha

smiler

Anfänger

Beiträge: 39

Anzahl Nagios-Server: 4

Nagios-Version(en): 3.2

Verteiltes Monitoring: Ja

Redundantes Monitoring: Ja

Anzahl-Hosts: 750

Anzahl Services: 6800

Betriebssystem(e): linux

Plugin-Version(en): 1.4

Sonstige Addon's: pnp4nagios

2

Gestern, 09:42

Hallo,

bei den service dependencies gibt es die sogenannte "same host dependency",

wenn du hostname und dependent host name weglaesst wird beides gleichgesetzt. Ich habe das bei uns auf diese Weise gelöst und habe den laufenden nrpe-daemon als "master" service und die per nrpe ausgeführten checks als Abhaengigkeit festgelegt. Um das durchzuführen müssen die nrpe checks, die abhaengig sind in eine Servicegruppe eingefügt werden. bei Dir müssten dann wohl alle nicht-snmp-uptime checks in die entsprechende Servicegruppe. So siehts bei uns aus:


zuerst die servicegruppe:

Quellcode

1
2
3
4
define servicegroup {
        servicegroup_name       standard_nrpe_checks
        alias                   alle per nrpe ausgefuehrten servicechecks auf nicht windows systemen
}


dann sie service dependency:

Quellcode

1
2
3
4
5
define servicedependency {
        service_description             check nrpe
        dependent_servicegroup_name     standard_nrpe_checks
        notification_failure_criteria   c,p,w,u
}


in des servciecheck definitionen müsste dann folghende Zeile drin sein:

Quellcode

1
2
3
4
5
define service {
        ...
        servicegroups                   standard_nrpe_checks
        ....
}



Was mir dann aufgefallen ist (wobei ich nicht weiss, ob es in einer aktuellen Version gefixt ist, ist dass die konsistenz und sysntaxchecks, die Nagios beim Start ausführt extrem lange dauern, je grösser die Servicegruppe wird. teilweise dauert es unertraeglich lange. Ein langes Suchen in Google hat dann einen Patch zutage gefördert, der diese Zeiten wieder runterrbingt. Hier ist der Patch, falls Du ihn mal versuchen willst:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
diff -Naur nagios-3.0.6-orig/xdata/xodtemplate.c nagios-3.0.6/xdata/xodtemplate.c
--- xdata/xodtemplate.c-orig    2009-09-02 17:15:52.000000000 -0400
+++ xdata/xodtemplate.c 2009-09-02 17:21:55.000000000 -0400
@@ -5247,6 +5247,7 @@
 
        char *service_descriptions=NULL;
        int first_item=FALSE;
+       int same_host_servicedependency=FALSE;
 
 
        /*************************************/
@@ -5725,6 +5726,11 @@
                                my_free(temp_servicedependency->dependent_service_description);
                                my_free(temp_servicedependency->dependent_hostgroup_name);
                                }
+                       
+                       /* MG(20090902): Same host servicegroups dependencies */
+                       same_host_servicedependency=FALSE;
+                       if(temp_servicedependency->host_name==NULL && temp_servicedependency->hostgroup_name==NULL)
+                               same_host_servicedependency=TRUE;
 
                        /* duplicate service dependency entries */
                        first_item=TRUE;
@@ -5742,6 +5748,10 @@
 
                                        my_free(temp_servicedependency->dependent_service_description);
                                        temp_servicedependency->dependent_service_description=(char *)strdup(temp_dependentservice->name2);
+                                       
+                                       /* MG(20090902): Same host servicegroups dependencies */
+                                       if(same_host_servicedependency==TRUE)
+                                               temp_servicedependency->host_name=(char *)strdup(temp_dependentservice->name1);
 
                                        /* clear the dependent servicegroup */
                                        temp_servicedependency->have_dependent_servicegroup_name=FALSE;
@@ -5757,7 +5767,11 @@
                                        }
 
                                /* duplicate service dependency definition */
-                               result=xodtemplate_duplicate_servicedependency(temp_servicedependency,temp_servicedependency->host_name,temp_servicedependency->service_description,NULL,NULL,temp_dependentservice->name1,temp_dependentservice->name2,NULL,NULL);
+                               /* MG(20090902): Same host servicegroups dependencies */
+                               if(same_host_servicedependency==TRUE)
+                                       result=xodtemplate_duplicate_servicedependency(temp_servicedependency,temp_dependentservice->name1,temp_servicedependency->service_description,NULL,NULL,temp_dependentservice->name1,temp_dependentservice->name2,NULL,NULL);
+                               else
+                                       result=xodtemplate_duplicate_servicedependency(temp_servicedependency,temp_servicedependency->host_name,temp_servicedependency->service_description,NULL,NULL,temp_dependentservice->name1,temp_dependentservice->name2,NULL,NULL);
 
                                /* exit on error */
                                if(result==ERROR){


Ich weiss nicht, ob das problem heute gelöst ist, oder ob es damals an etwas anderem lag, aber die Korrelation zeischen dem wachsen der Servicegruppe und dem anwachsen der checkzeiten bei "nagios -v " war schon hinweis genug. Auf jeden Fall kann man den Patch noch in der aktuellen Nagiosversion anwenden.
Hoffentlich werde ich jetzt nicht von den hier anwesenden Nagios Entwicklern für diesen patch in der Lusft zerissen ;-)

Viele grüsse

Thomas

MichaW

Anfänger

Beiträge: 38

Anzahl Nagios-Server: 2

Nagios-Version(en): 3.2.1

Verteiltes Monitoring: Nein

Redundantes Monitoring: Nein

Anzahl-Hosts: 25

Anzahl Services: 100

Betriebssystem(e): Debian Squeeze

Plugin-Version(en): 1.4.15

NagVis-Version: 1.4.6

3

Gestern, 15:06

Zitat von »smiler«

Hallo,

bei den service dependencies gibt es die sogenannte "same host dependency",

wenn du hostname und dependent host name weglaesst wird beides gleichgesetzt. Ich habe das bei uns auf diese Weise gelöst und habe den laufenden nrpe-daemon als "master" service und die per nrpe ausgeführten checks als Abhaengigkeit festgelegt. Um das durchzuführen müssen die nrpe checks, die abhaengig sind in eine Servicegruppe eingefügt werden. bei Dir müssten dann wohl alle nicht-snmp-uptime checks in die entsprechende Servicegruppe. So siehts bei uns aus:

Das sieht sehr vielversprechend aus. Ich gucks mir an und schreib dann nat. auch hier ins Forum ob es geklappt hat.
Den Patch brauche ich bei ca. 50 Hosts sicherlich noch nicht.
Danke
Micha

Ähnliche Themen