File: clusters.html

package info (click to toggle)
icinga 1.14.2%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 49,264 kB
  • sloc: ansic: 108,564; sql: 9,656; sh: 4,945; perl: 3,439; makefile: 1,213; php: 581; xml: 104
file content (208 lines) | stat: -rw-r--r-- 14,451 bytes parent folder | download
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>7.12. Service- und Host-Gruppen überwachen</title>
<link rel="stylesheet" href="../stylesheets/icinga-docs.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
<meta name="keywords" content="Supervision, Icinga, Nagios, Linux">
<link rel="home" href="index.html" title="Icinga Version 1.14 Dokumentation">
<link rel="up" href="ch07.html" title="Kapitel 7. Fortgeschrittene Themen">
<link rel="prev" href="oncallrotation.html" title="7.11. Bereitschafts-Rotation">
<link rel="next" href="dependencies.html" title="7.13. Host- und Service-Abhängigkeiten">
<script src="../js/jquery-min.js" type="text/javascript"></script><script src="../js/icinga-docs.js" type="text/javascript"></script>
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<CENTER><IMG src="../images/logofullsize.png" border="0" alt="Icinga" title="Icinga"></CENTER>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">7.12. Service- und Host-Gruppen überwachen</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="oncallrotation.html">Zurück</a> </td>
<th width="60%" align="center">Kapitel 7. Fortgeschrittene Themen</th>
<td width="20%" align="right"> <a accesskey="n" href="dependencies.html">Weiter</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="section" title="7.12. Service- und Host-Gruppen überwachen">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="clusters"></a>7.12. Service- und Host-Gruppen überwachen</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section">7.12.1. <a href="clusters.html#introduction">Einführung</a></span></dt>
<dt><span class="section">7.12.2. <a href="clusters.html#planofattack">Angriffsplan</a></span></dt>
<dt><span class="section">7.12.3. <a href="clusters.html#checkclusterplugin">Das check_cluster-Plugin benutzen</a></span></dt>
<dt><span class="section">7.12.4. <a href="clusters.html#serviceclusters">Service-Cluster überwachen</a></span></dt>
<dt><span class="section">7.12.5. <a href="clusters.html#hostclusters">Host-Cluster überwachen</a></span></dt>
</dl></div>
  

  <div class="section" title="7.12.1. Einführung">
<div class="titlepage"><div><div><h3 class="title">
<a name="introduction"></a>7.12.1. Einführung</h3></div></div></div>
    

    <p>Einige Leute haben gefragt, wie man Gruppen (Cluster) von Hosts und Services überwacht, also möchten wir hier schreiben, wie man
    das macht. Es ist ziemlich geradeaus, also hoffentlich sind die Dinge einfach zu verstehen...</p>

    <p>Zuerst benötigen wir eine Definition, was wir mit "Cluster" meinen. Der einfachste Weg, dies zu verstehen, ist mit einem Beispiel.
    Lassen Sie uns annehmen, Ihr Unternehmen hat fünf Hosts, die redundante DNS-Services für Ihr Unternehmen zur Verfügung stellt. Wenn
    einer ausfällt, ist das keine große Katastrophe, weil die verbleibenden Server weiterhin die Namensauflösung bereitstellen. Wenn Sie mit
    der Überwachung der Verfügbarkeit der DNS-Server betraut sind, werden Sie fünf Server überwachen wollen. Das ist das, was wir als
    <span class="emphasis"><em>Service</em></span>-Cluster ansehen würden. Der Service-Cluster besteht aus fünf einzelnen DNS-Services, die Sie überwachen
    wollen. Obwohl Sie jeden einzelnen Service überwachen wollen, wird Ihr Hauptaugenmerk eher auf dem Gesamtstatus des DNS-Service-Clusters
    liegen als auf der Verfügbarkeit eines einzelnen Service.</p>

    <p>Wenn Ihre Organisation eine Gruppe von Hosts hat, die eine Hochverfügbarkeitslösung darstellt, würden wir dies als
    <span class="emphasis"><em>Host</em></span>-Cluster bezeichnen. Wenn ein bestimmter Host ausfällt, wird ein anderer einspringen, um die Aufgaben des
    ausgefallenen zu übernehmen. Als eine Randbemerkung: Sehen Sie sich das <a class="link" href="http://www.linux-ha.org/" target="_top">High-Availability
    Linux Project</a> für Informationen zur Redundanz von Hosts und Services mit Linux an.</p>
  </div>

  <div class="section" title="7.12.2. Angriffsplan">
<div class="titlepage"><div><div><h3 class="title">
<a name="planofattack"></a>7.12.2. Angriffsplan</h3></div></div></div>
    

    <p>Es gibt mehrere Wege, wie Sie eventuell Service- oder Host-Gruppen überwachen können. Wir werden die Methode beschreiben, von der
    wir glauben, dass sie die Einfachste ist. Service- oder Host-Cluster überwachen umfasst zwei Dinge:</p>

    <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
        <p>überwachen einzelner Cluster-Elemente</p>
      </li>
<li class="listitem">
        <p>überwachen des Clusters als eine gesamte Einheit</p>
      </li>
</ul></div>

    <p>Das Überwachen von einzelnen Host- oder Service-Cluster-Elementen ist einfacher als Sie denken. Eigentlich tun Sie es
    wahrscheinlich schon. Bei Service-Clustern sollten Sie sicherstellen, dass Sie jedes Service-Element des Clusters überwachen. Wenn Sie
    ein Cluster aus fünf DNS-Servern haben, dann stellen Sie sicher, dass Sie fünf einzelne Service-Definitionen haben (z.B. mit dem
    <span class="emphasis"><em>check_dns</em></span>-Plugin). Bei Host-Clustern stellen Sie sicher, dass Sie entsprechende Host-Definitionen für jedes
    Mitglied des Clusters haben (Sie müssen auch mindestens einen Service auf jedem Host überwachen). <span class="bold"><strong>Wichtig:</strong></span> Sie können die Benachrichtigungen für die einzelnen Cluster-Elemente deaktivieren (Host- oder
    Service-Definitionen). Obwohl keine Benachrichtigungen für die einzelnen Elemente versandt werden, bekommen Sie trotzdem eine visuelle
    Anzeige des einzelnen Host- oder Service-Zustands in der <a class="link" href="cgis.html#cgis-status_cgi">Status CGI</a>. Das ist nützlich bei der
    genauen Erkennung der Quelle von Problemen im Cluster in der Zukunft.</p>

    <p>Die Überwachung des gesamten Clusters kann mit Hilfe der bereits im Cache verfügbaren Ergebnisse der Cluster-Elemente erfolgen.
    Auch wenn Sie alle Elemente des Clusters erneut prüfen könnten, um den Cluster-Status zu ermitteln: warum sollten Sie Bandbreite und
    Ressourcen vergeuden, wenn bereits die Ergebnisse im Cache vorliegen? Wo werden die Ergebnisse abgelegt? Ergebnisse für Cluster-Elemente
    sind im <a class="link" href="configmain.html#configmain-status_file">Status-File</a> zu finden (vorausgesetzt, dass Sie jedes Element überwachen). Das
    <span class="emphasis"><em>check_cluster</em></span>-Plugin ist genau für den Zweck ausgelegt, um Host- und Service-Zustände im Status-File zu prüfen.
    <span class="bold"><strong>Wichtig:</strong></span> Auch wenn Sie Benachrichtigungen für einzelne Elemente des Clusters nicht aktiviert haben,
    möchten Sie sie vielleicht für den Gesamtstatus des Clusters aktivieren.</p>
  </div>

  <div class="section" title="7.12.3. Das check_cluster-Plugin benutzen">
<div class="titlepage"><div><div><h3 class="title">
<a name="checkclusterplugin"></a>7.12.3. Das check_cluster-Plugin benutzen</h3></div></div></div>
    

    <p>Das check_cluster-Plugin ist dafür ausgelegt, den Gesamtstatus eines Host- oder Service-Clusters durch die Prüfung der
    Statusinformationen jedes einzelnen Host- oder Service-Cluster-Elements zu ermitteln.</p>

    <p>noch mehr... Das <span class="emphasis"><em>check_cluster</em></span>-Plugin finden Sie im contrib-Verzeichnis der Monitoring Plugins unter <a class="link" href="https://www.monitoring-plugins.org" target="_top">https://www.monitoring-plugins.org/</a>.</p>
  </div>

  <div class="section" title="7.12.4. Service-Cluster überwachen">
<div class="titlepage"><div><div><h3 class="title">
<a name="serviceclusters"></a>7.12.4. Service-Cluster überwachen</h3></div></div></div>
    

    <p>Nehmen wir an, dass Sie drei DNS-Server haben, die redundante Dienste in Ihrem Netzwerk bereitstellen. Zuerst müssen Sie jeden
    einzelnen DNS-Server überwachen, bevor Sie sie als Cluster überwachen können. Wir nehmen an, dass Sie bereits drei einzelne Services
    haben (die alle "DNS Service" heißen), die mit Ihren DNS-Hosts verbunden sind ("host1", "host2" und "host3" genannt).</p>

    <p>Um die Services als einen Cluster zu überwachen, müssen Sie einen neuen "Cluster"-Service erstellen. Bevor Sie das tun, sollten
    Sie ein Service-Cluster-Prüfbefehl konfigurieren. Lassen Sie uns annehmen, dass Sie einen Befehl namens
    <span class="emphasis"><em>check_service_cluster</em></span> wie folgt definieren:</p>

    <pre class="screen"> define command{
        command_name    check_service_cluster
        command_line    /usr/local/icinga/libexec/check_cluster --service -l $ARG1$ -w $ARG2$ -c $ARG3$ -d $ARG4$ 
        }</pre>

    <p>Nun müssen Sie den "Cluster"-Service erstellen und den <span class="emphasis"><em>check_service_cluster</em></span>-Befehl benutzen, den Sie gerade
    als Cluster-Prüfbefehl erstellt haben. Das folgende Beispiel gibt einen Hinweis, wie das zu tun ist. Es generiert einen CRITICAL-Alarm,
    wenn zwei oder mehr Services im Cluster in einem nicht-OK-Zustand sind und einen WARNING-Alarm, wenn nur einer der Services in einem
    nicht-OK-Zustand ist. Wenn jedes der einzelnen Service-Mitglieder des Clusters OK sind, wird auch die Cluster-Prüfung einen OK-Status
    zurückliefern.</p>

    <pre class="screen"> define service{
        ...
        check_command   check_service_cluster!"DNS Cluster"!0!1!$SERVICESTATEID:host1:DNS Service$,$SERVICESTATEID:host2:DNS Service$,$SERVICESTATEID:host3:DNS Service$
        ...
        }</pre>

    <p>Es ist wichtig anzumerken, dass wir eine Komma-separierte Liste von <span class="emphasis"><em>on-demand</em></span> Service-Zustands-<a class="link" href="macros.html" title="5.2. Makros verstehen und wie sie arbeiten">Makros</a> an das $ARG4$-Makro des Cluster-Prüfbefehls übergeben. Das ist wichtig! Icinga wird diese
    On-Demand-Makros mit den aktuellen Service-Status-IDs (numerischen Werten statt Zeichenketten) der einzelnen Mitglieder des Clusters
    füllen.</p>
  </div>

  <div class="section" title="7.12.5. Host-Cluster überwachen">
<div class="titlepage"><div><div><h3 class="title">
<a name="hostclusters"></a>7.12.5. Host-Cluster überwachen</h3></div></div></div>
    

    <p>Host-Cluster zu überwachen ist ziemlich ähnlich zur Überwachung von Service-Clustern. Offenkundig besteht der Hauptunterschied
    darin, dass Hosts überwacht werden und nicht Services. Um den Status eines Host-Clusters zu überwachen, müssen Sie einen Service
    definieren, der das <span class="emphasis"><em>check_cluster</em></span>-Plugin benutzt. Der Service sollte <span class="emphasis"><em>nicht</em></span> mit einem der Hosts
    im Cluster verbunden werden, weil dies Probleme mit Benachrichtigungen für den Cluster erzeugt, wenn der Host "down" geht. Eine gute
    Idee könnte es sein, den Service mit dem Host zu verbinden, auf dem Icinga läuft. Wenn der Host, auf dem Icinga läuft,
    "down" geht, dann funktioniert auch Icinga nicht mehr und dann können Sie auch nichts mehr tun (es sei denn, Sie hätten eine
    <a class="link" href="redundancy.html" title="7.7. Redundante und Failover-Netzwerk-Überwachung">redundante Host-Überwachung</a> eingerichtet)...</p>

    <p>Wie auch immer, lassen Sie uns annehmen, dass Sie einen <span class="emphasis"><em>check_host_cluster</em></span>-Befehl wie folgt definiert
    haben:</p>

    <pre class="screen"> define command{
        command_name    check_host_cluster
        command_line    /usr/local/icinga/libexec/check_cluster --host -l $ARG1$ -w $ARG2$ -c $ARG3$ -d $ARG4$ 
        }</pre>

    <p>Sagen wir, dass Sie drei Hosts ("host1", "host2" und "host3" genannt) in Ihrem Host-Cluster haben. Wenn Icinga einen
    WARNING-Alarm generieren soll, wenn einer der Host im Cluster nicht UP ist bzw. einen CRITICAL-Alarm, wenn zwei oder mehr Hosts nicht UP
    sind, dann sollte der Service, um das Host-Cluster zu überwachen, ungefähr so aussehen:</p>

    <pre class="screen"> define service{
        ...
        check_command   check_host_cluster!"Super Host Cluster"!0!1!$HOSTSTATEID:host1$,$HOSTSTATEID:host2$,$HOSTSTATEID:host3$
        ...
        }</pre>

    <p>Es ist wichtig anzumerken, dass wir eine Komma-separierte Liste von <span class="emphasis"><em>on-demand</em></span> Host-Zustands-<a class="link" href="macros.html" title="5.2. Makros verstehen und wie sie arbeiten">Makros</a> an das $ARG4$-Makro des Cluster-Prüfbefehls übergeben. Das ist wichtig! Icinga wird diese
    On-Demand-Makros mit den aktuellen Host-Status-IDs (numerischen Werten statt Zeichenketten) der einzelnen Mitglieder des Clusters
    füllen.</p>

    <p>Das war's! Icinga wird regelmäßig den Status des Host-Clusters prüfen und Benachrichtigungen an Sie versenden, wenn der
    Status nicht OK ist (vorausgesetzt, dass Sie Benachrichtigungen für den Service aktiviert haben). Beachten Sie, dass Sie
    höchstwahrscheinlich die Benachrichtigungen in den einzelnen Host-Definitionen deaktivieren werden, wenn der Host "down" geht. Denken
    Sie daran, dass Sie der Status der einzelnen Hosts weniger interessiert als der Gesamtstatus des Clusters. Abhängig von Ihrem
    Netzwerk-Layout und von dem, was Sie erreichen wollen, möchten Sie vielleicht die Benachrichtigungen für UNREACHABLE-Zustände bei den
    Host-Definitionen aktiviert lassen.</p>

    <a class="indexterm" name="idm139734665642576"></a>
  </div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="oncallrotation.html">Zurück</a> </td>
<td width="20%" align="center"><a accesskey="u" href="ch07.html">Nach oben</a></td>
<td width="40%" align="right"> <a accesskey="n" href="dependencies.html">Weiter</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">7.11. Bereitschafts-Rotation </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td>
<td width="40%" align="right" valign="top"> 7.13. Host- und Service-Abhängigkeiten</td>
</tr>
</table>
</div>
<P class="copyright">© 1999-2009 Ethan Galstad, 2009-2017 Icinga Development Team, https://www.icinga.com</P>
</body>
</html>