File: customobjectvars.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 (229 lines) | stat: -rw-r--r-- 10,810 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
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">&lt;object&gt;
      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       ; &lt;-- Custom MAC_ADDRESS variable
        _rack_number    R32                     ; &lt;-- Custom RACK_NUMBER variable
        ...
        }
 define service{
        host_name       linuxserver
        description     Memory Usage
        _SNMP_community public                  ; &lt;-- Custom SNMP_COMMUNITY variable
        _TechContact    Jane Doe                ; &lt;-- Custom TECHCONTACT variable
        ....
        }
 define contact{
        contact_name    john
        _AIM_username   john16                  ; &lt;-- Custom AIM_USERNAME variable
        _YahooID        john32                  ; &lt;-- 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>