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 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>7.5. Service- und Host-Frische-Prüfungen</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="volatileservices.html" title="7.4. sprunghafte Services">
<link rel="next" href="distributed.html" title="7.6. Verteilte Überwachung">
<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.5. Service- und Host-Frische-Prüfungen</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="volatileservices.html">Zurück</a> </td>
<th width="60%" align="center">Kapitel 7. Fortgeschrittene Themen</th>
<td width="20%" align="right"> <a accesskey="n" href="distributed.html">Weiter</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="section" title="7.5. Service- und Host-Frische-Prüfungen">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="freshness"></a>7.5. Service- und Host-Frische-Prüfungen</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section">7.5.1. <a href="freshness.html#introduction">Einführung</a></span></dt>
<dt><span class="section">7.5.2. <a href="freshness.html#howitworks">Wie funktioniert die Frische-Prüfung?</a></span></dt>
<dt><span class="section">7.5.3. <a href="freshness.html#enable">Frische-Prüfungen aktivieren</a></span></dt>
<dt><span class="section">7.5.4. <a href="freshness.html#example">Beispiel</a></span></dt>
<dt><span class="section">7.5.5. <a href="freshness.html#stale">"Check results ... are stale. Forcing an immediate check ...</a></span></dt>
</dl></div>
<div class="section" title="7.5.1. Einführung">
<div class="titlepage"><div><div><h3 class="title">
<a name="introduction"></a>7.5.1. Einführung</h3></div></div></div>
<p>Icinga unterstützt ein Feature, das die "Frische" (Freshness) der Host- und Service-Prüfungen überprüft. Der Zweck der
Frische-Prüfung ist es, bei passiven Host- und Service-Prüfungen sicherzustellen, dass diese regelmäßig von externen Applikationen zur
Verfügung gestellt werden.</p>
<p>Frische-Prüfungen sind sinnvoll, wenn Sie sicherstellen wollen, dass <a class="link" href="passivechecks.html" title="5.7. Passive Prüfungen (Passive Checks)">passive Prüfungen</a> so
regelmäßig empfangen werden wie Sie das erwarten. Das kann in <a class="link" href="distributed.html" title="7.6. Verteilte Überwachung">verteilten</a> und <a class="link" href="redundancy.html" title="7.7. Redundante und Failover-Netzwerk-Überwachung">Failover</a> Überwachungsumgebungen sehr sinnvoll sein.</p>
<div class="mediaobject" align="right"><img src="../images/freshness.png" align="right"></div>
</div>
<div class="section" title="7.5.2. Wie funktioniert die Frische-Prüfung?">
<div class="titlepage"><div><div><h3 class="title">
<a name="howitworks"></a>7.5.2. Wie funktioniert die Frische-Prüfung?</h3></div></div></div>
<p>Icinga prüft periodisch die Frische der Ergebnisse für alle Hosts und Services, bei denen Frische-Prüfungen aktiviert
sind.</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<p>ein Frische-Schwellwert wird für jeden Host oder Service berechnet.</p>
</li>
<li class="listitem">
<p>für jeden Host/Service wird das Alter des letzten Prüfungsergebnisses mit dem Frische-Schwellwert verglichen.</p>
</li>
<li class="listitem">
<p>wenn das Alter des letzten Prüfungsergebnisses größer als der Frisch-Schwellwert ist, wird das Prüfergebnis als "abgestanden"
(stale) betrachtet.</p>
</li>
<li class="listitem">
<p>wenn das Prüfergebnis als abgestanden angesehen wird, wird Icinga eine <a class="link" href="activechecks.html" title="5.6. Aktive Prüfungen (Active Checks)">aktive
Prüfung</a> für den Host oder Service mit dem Kommando ausführen, das in der Host- oder Service-Definition angegeben ist.</p>
</li>
</ul></div>
<p><span class="inlinemediaobject"><img src="../images/tip.gif"></span> Hinweis: Eine aktive Prüfung wird ausgeführt, selbst wenn aktive Prüfungen programmweit oder auf Host- bzw.
Service-spezifischer Basis deaktiviert sind.</p>
<p>Wenn Sie beispielsweise einen Frische-Schwellwert von 60 für einen Ihrer Services haben, wird Icinga diesen Service als
abgestanden ansehen, wenn das letzte Prüfergebnis älter als 60 Sekunden ist.</p>
</div>
<div class="section" title="7.5.3. Frische-Prüfungen aktivieren">
<div class="titlepage"><div><div><h3 class="title">
<a name="enable"></a>7.5.3. Frische-Prüfungen aktivieren</h3></div></div></div>
<p>Was Sie tun müssen, um Frische-Prüfungen zu aktivieren...</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<p>aktivieren Sie Frische-Prüfungen auf programmweiter Basis mit den <a class="link" href="configmain.html#configmain-check_service_freshness">check_service_freshness</a> und <a class="link" href="configmain.html#configmain-check_host_freshness">check_host_freshness</a>-Direktiven.</p>
</li>
<li class="listitem">
<p>benutzen Sie die <a class="link" href="configmain.html#configmain-service_freshness_check_interval">service_freshness_check_interval</a>- und
<a class="link" href="configmain.html#configmain-host_freshness_check_interval">host_freshness_check_interval</a>-Optionen, um Icinga
mitzuteilen, wie oft es die Frische von Host- und Service-Ergebnissen prüfen soll.</p>
</li>
<li class="listitem">
<p>aktivieren Sie Frische-Prüfungen auf Host- und Service-spezifischer Basis, indem Sie die
<span class="emphasis"><em>check_freshness</em></span>-Option in Ihrer Host- und Service-Definitionen auf 1 setzen.</p>
</li>
<li class="listitem">
<p>konfigurieren Sie Frische-Schwellwerte, indem Sie die <span class="emphasis"><em>freshness_threshold</em></span>-Option in Ihren Host- und
Service-Definitionen setzen.</p>
</li>
<li class="listitem">
<p>konfigurieren Sie die <span class="emphasis"><em>check_command</em></span>-Option in Ihren Host- oder Service-Definitionen, so dass sie ein
gültiges Script enthalten, das benutzt werden kann, um den Host oder Service aktiv zu prüfen, wenn er als abgestanden angesehen
wird.</p>
</li>
<li class="listitem">
<p>Die <span class="emphasis"><em>check_period</em></span>-Option in Ihren Host- und Service-Definitionen wird benutzt, wenn Icinga
festlegt, wann ein Host oder Service auf Frische geprüft werden soll, um sicherzustellen, dass es sich um ein gültiges Zeitfenster
handelt.</p>
</li>
</ul></div>
<p><span class="inlinemediaobject"><img src="../images/tip.gif"></span> Hinweis: Wenn Sie keinen Host- oder Service-spezifischen <span class="emphasis"><em>freshness_threshold</em></span>-Wert angeben
(oder ihn auf Null setzen), wird Icinga automatisch einen Schwellwert berechnen, der darauf basiert, wie oft Sie den jeweiligen
Host- oder Service überwachen. Wir würden empfehlen, dass Sie explizit einen Frische-Schwellwert angeben, statt dass Icinga einen
für Sie auswählt.</p>
</div>
<div class="section" title="7.5.4. Beispiel">
<div class="titlepage"><div><div><h3 class="title">
<a name="example"></a>7.5.4. Beispiel</h3></div></div></div>
<p>Ein Beispiel für einen Service, der eine Frische-Prüfung benötigen könnte, wäre einer, der den Status Ihrer nächtlichen Backups
meldet. Vielleicht haben Sie ein externes Script, welches das Ergebnis des Backup-Jobs an Icinga meldet, sobald das Backup
beendet ist. In diesem Fall werden alle Prüfungen/Ergebnisse für diesen Service durch eine externe Applikation mit Hilfe von passiven
Prüfungen zur Verfügung gestellt. Um sicherzustellen, dass der Status des Backup-Jobs täglich gemeldet wird, können Sie die
Frische-Prüfung für diesen Service aktivieren. Falls das externe Script das Ergebnis des Backup-Jobs nicht meldet, kann Icinga
ein kritisches Ergebnis imitieren, indem man folgendes tut...</p>
<p>Nachfolgend, wie die Definition für den Service aussehen könnte (einige benötigte Optionen fehlen...)</p>
<pre class="screen"> define service{
host_name backup-server
service_description ArcServe Backup Job
active_checks_enabled 0 ; aktive Prüfungen sind NICHT aktiviert
passive_checks_enabled 1 ; passive Prüfungen sind aktiviert (dadurch werden Ergebnisse gemeldet)
check_freshness 1
freshness_threshold 93600 ; 26 Stunden Schwellwert, nachdem Backups nicht immer zur gleichen Zeit beendet sind
check_command no-backup-report ; dieses Kommando wird nur ausgeführt, wenn der Service als "abgestanden" angesehen wird
...andere Optionen...
}</pre>
<p>Beachten Sie, dass aktive Prüfungen für den Service deaktiviert sind. Das ist so, weil die Ergebnisse für den Service nur durch
eine externe Applikation geliefert werden. Die Frische-Prüfung ist aktiviert und der Frische-Schwellwert ist auf 26 Stunden gesetzt. Das
ist ein bisschen mehr als 24 Stunden, weil Backup-Jobs ab und zu länger dauern (abhängig davon, wie viele Daten zu sichern sind, wie
viel Netzwerkverkehr herrscht, usw.). Das <span class="emphasis"><em>no-backup-report</em></span>-Kommando wird nur ausgeführt, wenn die Ergebnisse des
Service als abgestanden angesehen werden. Die Definition des <span class="emphasis"><em>no-backup-report</em></span>-Kommandos könnte wie folgt
aussehen...</p>
<pre class="screen"> define command{
command_name no-backup-report
command_line /usr/local/icinga/libexec/check_dummy 2 "CRITICAL: Results of backup job were not reported!"
}</pre>
<p>Falls Icinga erkennt, dass das Service-Ergebnis abgestanden ist, wird es das <span class="emphasis"><em>no-backup-report</em></span>-Kommando
als eine aktive Service-Prüfung ausführen. Das führt dazu, dass das <span class="emphasis"><em>check_dummy</em></span>-Plugin ausgeführt wird, das einen
kritischen Status an Icinga meldet. Der Service wird dann in einen kritischen Zustand gehen (falls das nicht bereits der Fall
ist) und wahrscheinlich wird jemand über das Problem informiert.</p>
<a class="indexterm" name="idm139734666147824"></a>
</div>
<div class="section" title='7.5.5. "Check results ... are stale. Forcing an immediate check ...'>
<div class="titlepage"><div><div><h3 class="title">
<a name="stale"></a>7.5.5. "Check results ... are stale. Forcing an immediate check ...</h3></div></div></div>
<p>Manchmal finden Sie vielleicht Meldungen wie die folgende in icinga.log:</p>
<pre class="screen"> Check results for service x on host y are stale by 0d 0h 0m 10s (threshold=0d 0h 10m 0s).
Forcing an immediate check of the service...</pre>
<p>Das bedeutet, dass der Service in der Vergangenheit geprüft wurde und die als Schwellwert definierte Zeit (z.B. 10min) vergangen
ist, ohne dass ein neues Prüfergebnis geliefert wurde, so dass eine Prüfung durch den Core erzwungen wird.</p>
<p>Die Meldung kommt aus dem Code-Fragment in base/checks.c (Zeilen wurden umgebrochen, um die Lesbarkeit zu
verbessern)</p>
<pre class="programlisting"> /* the results for the last check of this service are stale */
if (expiration_time < current_time) {
get_time_breakdown((current_time - expiration_time), &days, &hours, &minutes, &seconds);
get_time_breakdown(freshness_threshold, &tdays, &thours, &tminutes, &tseconds);
/* log a warning */
if (log_this == TRUE)
logit(NSLOG_RUNTIME_WARNING, TRUE,
"Warning: The results of service '%s' on host '%s' are stale by %dd %dh %dm %ds (threshold=%dd %dh %dm %ds).
I'm forcing an immediate check of the service.\n",
temp_service->description, temp_service->host_name,
days, hours, minutes, seconds, tdays, thours, tminutes, tseconds
);
log_debug_info(DEBUGL_CHECKS, 1,
"Check results for service '%s' on host '%s' are stale by %dd %dh %dm %ds (threshold=%dd %dh %dm %ds).
Forcing an immediate check of the service...\n",
temp_service->description, temp_service->host_name,
days, hours, minutes, seconds, tdays, thours, tminutes, tseconds
);
return FALSE;
}</pre>
<p>Normalerweise trifft folgendes zu</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<p><code class="literal">expiration_time</code> = last_check + freshness threshold (z.B. 10 Min.)</p>
</li>
<li class="listitem">
<p>expiration_time ist in der Vergangenheit (<code class="literal">< current_time</code>) == stale</p>
</li>
<li class="listitem">
<p>der Unterschied zwischen jetzt und expiration_time wird im Protokoll angezeigt (z.B. 10 Sek.)</p>
</li>
</ul></div>
<p>Falls der Service nicht jetzt, aber bereits in der Vergangenheit geprüft wurde (event_start > last_check) und der
Schwellwert 0 ist, wird max_service_check_spread multipliziert mit dem Intervall als zusätzlicher Offset addiert (das passiert während
der Startphase, um festzustellen, wann die erste Prüfung (und Status + Ausgabe) erfolgen muss).</p>
<a class="indexterm" name="idm139734666136304"></a>
<a class="indexterm" name="idm139734666134608"></a>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="volatileservices.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="distributed.html">Weiter</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">7.4. sprunghafte Services </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td>
<td width="40%" align="right" valign="top"> 7.6. Verteilte Überwachung</td>
</tr>
</table>
</div>
<P class="copyright">© 1999-2009 Ethan Galstad, 2009-2017 Icinga Development Team, https://www.icinga.com</P>
</body>
</html>
|