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
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>3.5. Maßgeschneiderte Objektvariablen</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="ch03.html" title="Kapitel 3. Icinga konfigurieren">
<link rel="prev" href="objectdefinitions.html" title="3.4. Objektdefinitionen">
<link rel="next" href="configcgi.html" title="3.6. Optionen CGI-Konfigurationsdatei">
<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">3.5. Maßgeschneiderte Objektvariablen</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="objectdefinitions.html">Zurück</a> </td>
<th width="60%" align="center">Kapitel 3. Icinga konfigurieren</th>
<td width="20%" align="right"> <a accesskey="n" href="configcgi.html">Weiter</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="section" title="3.5. Maßgeschneiderte Objektvariablen">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="customobjectvars"></a>3.5. Maßgeschneiderte Objektvariablen</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section">3.5.1. <a href="customobjectvars.html#introduction">Einführung</a></span></dt>
<dt><span class="section">3.5.2. <a href="customobjectvars.html#basicscustomvars">Grundlagen zu maßgeschneiderten Variablen</a></span></dt>
<dt><span class="section">3.5.3. <a href="customobjectvars.html#examples">Beispiele</a></span></dt>
<dt><span class="section">3.5.4. <a href="customobjectvars.html#customvarsasmacros">maßgeschneiderte Variablen als Makros</a></span></dt>
<dt><span class="section">3.5.5. <a href="customobjectvars.html#inheritancecustomvars">maßgeschneiderte Variablen und Vererbung</a></span></dt>
</dl></div>
<a class="indexterm" name="idm139734674200800"></a>
<div class="section" title="3.5.1. Einführung">
<div class="titlepage"><div><div><h3 class="title">
<a name="introduction"></a>3.5.1. Einführung</h3></div></div></div>
<p>Benutzer fragen oft nach neuen Variablen in Host-, Service- und Kontaktdefinitionen. Dazu gehören Variablen für die
SNMP-Community, MAC-Adressen, AIM-Benutzernamen, Skype-Nummern und Straßennamen. Die Liste ist endlos. Das Problem, was wir darin sehen
ist, dass Icinga weniger generisch und mehr infrastrukturspezifisch wird. Icinga war dazu gedacht, flexibel zu sein, was
bedeutet, dass die Dinge in einer generischen Art und Weise geplant waren. Host-Definitionen in Icinga zum Beispiel haben eine
generische "address"-Variable, die alles von einer IP-Adresse bis zu menschlich-lesbaren Wegbeschreibungen enthalten kann - was immer
für die Umgebung des Benutzers angemessen ist.</p>
<p>Trotzdem muss es eine Methode für Administratoren geben, in ihrer Icinga-Konfiguration Informationen zu ihren
Infrastrukturkomponenten zu speichern, ohne anderen einen Satz von speziellen Variablen aufzubürden. Icinga versucht dieses
Problem zu lösen, indem es Benutzern erlaubt, maßgeschneiderte Variablen in ihren Objektdefinitionen anzugeben. Maßgeschneiderte
Variablen erlauben es Benutzern, zusätzliche Eigenschaften in ihren Host-, Service- und Kontaktdefinitionen anzugeben und ihre Werte in
Benachrichtigungen, Eventhandlern sowie Host- und Service-Prüfungen zu benutzen.</p>
</div>
<div class="section" title="3.5.2. Grundlagen zu maßgeschneiderten Variablen">
<div class="titlepage"><div><div><h3 class="title">
<a name="basicscustomvars"></a>3.5.2. Grundlagen zu maßgeschneiderten Variablen</h3></div></div></div>
<p>Es gibt ein paar wichtige Dinge, die Sie bei maßgeschneiderten Variablen beachten sollten:</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<p>maßgeschneiderte Variablennamen müssen mit einem Unterstrich (_) beginnen, um einen Namenskonflikt mit Standardvariablen zu
verhindern</p>
</li>
<li class="listitem">
<p>maßgeschneiderten Variablennamen werden vor der Benutzung in Großbuchstaben umgewandelt</p>
</li>
<li class="listitem">
<p>maßgeschneiderten Variablen werden von Objektvorlagen wie normale Variablen <a class="link" href="objectinheritance.html" title="7.26. Objektvererbung">geerbt</a></p>
</li>
<li class="listitem">
<p>Scripts können sich mit <a class="link" href="macros.html" title="5.2. Makros verstehen und wie sie arbeiten">Makros und Umgebungsvariablen</a> auf die Werte von maßgeschneiderten
Variablen beziehen</p>
</li>
</ul></div>
<a name="customobjectvars-runtime"></a>
<div class="important" title="Wichtig" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Wichtig]" src="../images/important.png"></td>
<th align="left">Wichtig</th>
</tr>
<tr><td align="left" valign="top">
<p>Maßgeschneiderte Variablen werden erst <span class="emphasis"><em>zur Laufzeit</em></span> ersetzt, weder bei der Überprüfungsphase (icinga -v
icinga.cfg) noch während des Icinga-Startprozesses, so dass das Platzieren in Host-Namen, Service-Beschreibungen oder
verschiedenen anderen Stellen der Objektdefinition während der Überprüfung zu einer Fehlermeldung ähnlich "<code class="literal"><object>
contains one or more illegal characters.</code>" führt. Das Ändern der Direktive "illegal_object_name_chars" wird <span class="emphasis"><em>
nicht</em></span> das Problem lösen.</p>
</td></tr>
</table></div>
<a class="indexterm" name="idm139734674186544"></a>
</div>
<div class="section" title="3.5.3. Beispiele">
<div class="titlepage"><div><div><h3 class="title">
<a name="examples"></a>3.5.3. Beispiele</h3></div></div></div>
<p>Hier ein Beispiel, wie maßgeschneiderte Variablen in verschiedenen Arten von Objektdefinitionen definiert werden können:</p>
<pre class="programlisting"> define host{
host_name linuxserver
_mac_address 00:06:5B:A6:AD:AA ; <-- Custom MAC_ADDRESS variable
_rack_number R32 ; <-- Custom RACK_NUMBER variable
...
}
define service{
host_name linuxserver
description Memory Usage
_SNMP_community public ; <-- Custom SNMP_COMMUNITY variable
_TechContact Jane Doe ; <-- Custom TECHCONTACT variable
....
}
define contact{
contact_name john
_AIM_username john16 ; <-- Custom AIM_USERNAME variable
_YahooID john32 ; <-- Custom YAHOOID variable
...
}</pre>
</div>
<div class="section" title="3.5.4. maßgeschneiderte Variablen als Makros">
<div class="titlepage"><div><div><h3 class="title">
<a name="customvarsasmacros"></a>3.5.4. maßgeschneiderte Variablen als Makros</h3></div></div></div>
<p>Maßgeschneiderte Variablen können über <a class="link" href="macros.html" title="5.2. Makros verstehen und wie sie arbeiten">Makros</a> oder Umgebungsvariablen in Scripts und Programmen
eingesetzt werden, die Icinga für Prüfungen, Benachrichtigungen usw. ausführt.</p>
<p>Um Namenskonflikte zwischen maßgeschneiderten Variablen aus verschiedenen Objektarten zu verhindern, stellt Icinga "_HOST",
"_SERVICE" oder "_CONTACT" an den Anfang von maßgeschneiderten Host-, Service- oder Kontaktvariablennamen in Makros und
Umgebungsvariablen. Die folgende Tabelle zeigt die entsprechenden Namen für maßgeschneiderte Variablen, die im obigen Beispiel definiert
wurden.</p>
<div class="informaltable">
<table border="1">
<colgroup>
<col>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td><p> <span class="bold"><strong>Objekttyp</strong></span> </p></td>
<td><p> <span class="bold"><strong>Variablenname</strong></span> </p></td>
<td><p> <span class="bold"><strong>Makroname</strong></span> </p></td>
<td><p> <span class="bold"><strong>Umgebungsvariable</strong></span> </p></td>
</tr>
<tr>
<td><p>Host</p></td>
<td><p>MAC_ADDRESS</p></td>
<td><p>$_HOSTMAC_ADDRESS$</p></td>
<td><p>ICINGA__HOSTMAC_ADDRESS</p></td>
</tr>
<tr>
<td><p>Host</p></td>
<td><p>RACK_NUMBER</p></td>
<td><p>$_HOSTRACK_NUMBER$</p></td>
<td><p>ICINGA__HOSTRACK_NUMBER</p></td>
</tr>
<tr>
<td><p>Service</p></td>
<td><p>SNMP_COMMUNITY</p></td>
<td><p>$_SERVICESNMP_COMMUNITY$</p></td>
<td><p>ICINGA__SERVICESNMP_COMMUNITY</p></td>
</tr>
<tr>
<td><p>Service</p></td>
<td><p>TECHCONTACT</p></td>
<td><p>$_SERVICETECHCONTACT$</p></td>
<td><p>ICINGA__SERVICETECHCONTACT</p></td>
</tr>
<tr>
<td><p>Contact</p></td>
<td><p>AIM_USERNAME</p></td>
<td><p>$_CONTACTAIM_USERNAME$</p></td>
<td><p>ICINGA__CONTACTAIM_USERNAME</p></td>
</tr>
<tr>
<td><p>Contact</p></td>
<td><p>YAHOOID</p></td>
<td><p>$_CONTACTYAHOOID$</p></td>
<td><p>ICINGA__CONTACTYAHOOID</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section" title="3.5.5. maßgeschneiderte Variablen und Vererbung">
<div class="titlepage"><div><div><h3 class="title">
<a name="inheritancecustomvars"></a>3.5.5. maßgeschneiderte Variablen und Vererbung</h3></div></div></div>
<p>Maßgeschneiderte Objektvariablen werden genau wie Standard-Host-, Service- oder Kontaktvariablen <a class="link" href="objectinheritance.html" title="7.26. Objektvererbung">vererbt</a>.</p>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="objectdefinitions.html">Zurück</a> </td>
<td width="20%" align="center"><a accesskey="u" href="ch03.html">Nach oben</a></td>
<td width="40%" align="right"> <a accesskey="n" href="configcgi.html">Weiter</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">3.4. Objektdefinitionen </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td>
<td width="40%" align="right" valign="top"> 3.6. Optionen CGI-Konfigurationsdatei</td>
</tr>
</table>
</div>
<P class="copyright">© 1999-2009 Ethan Galstad, 2009-2017 Icinga Development Team, https://www.icinga.com</P>
</body>
</html>
|