]> granicus.if.org Git - icinga2/blob - doc/4.3-object-types.md
Documentation: Update commands and external commands.
[icinga2] / doc / 4.3-object-types.md
1 ## Object Types
2
3 ### <a id="objecttype-host"></a> Host
4
5 A host.
6
7 > **Note**
8 >
9 > Unlike in Icinga 1.x hosts are not checkable objects in Icinga 2. Instead
10 > hosts inherit their state from the service that is specified using the `check`
11 > attribute.
12
13 Example:
14
15     object Host "localhost" {
16       display_name = "The best host there is",
17
18       groups = [ "all-hosts" ],
19
20       host_dependencies = [ "router" ],
21
22       service_dependencies = [
23         { host = "db-server", service = "mysql" }
24       ],
25
26       services["ping"] = {
27         templates = [ "ping" ]
28       },
29
30       services["http"] = {
31         templates = [ "my-http" ],
32
33         macros = {
34           vhost = "test1.example.org",
35           port = 81
36         }
37       },
38
39       check = "ping"
40     }
41
42 Attributes:
43
44   Name            |Description
45   ----------------|----------------
46   display_name    |**Optional.** A short description of the host.
47   check           |**Optional.** A service that is used to determine whether the host is up or down. This must be a service short name of a service that belongs to the host.
48   groups          |**Optional.** A list of host groups this host belongs to.
49   host_dependencies|**Optional.** A list of host names which this host depends on. These dependencies are used to determine whether the host is unreachable.
50   service_dependencies|**Optional.** A list of services which this host depends on. Each array element must be a dictionary containing the keys "host" and "service". These dependencies are used to determine whether the host is unreachable.
51   services        |**Optional.** Inline definition of services. Each dictionary item specifies a service.<br /><br />The `templates` attribute can be used to specify an array of templates that should be inherited by the service.<br /><br />The new service's name is "hostname:service" - where "service" is the dictionary key in the services dictionary.<br /><br />The dictionary key is used as the service's short name.
52   macros          |**Optional.** A dictionary containing macros that are specific to this host.
53
54 ### <a id="objecttype-hostgroup"></a> HostGroup
55
56 A group of hosts.
57
58 Example:
59
60     object HostGroup "my-hosts" {
61       display_name = "My hosts",
62     }
63
64 Attributes:
65
66   Name            |Description
67   ----------------|----------------
68   display_name    |**Optional.** A short description of the host group.
69
70 ### <a id="objecttype-service"></a> Service
71
72 Service objects describe network services and how they should be checked
73 by Icinga 2.
74
75 > **Best Practice**
76 >
77 > Rather than creating a `Service` object for a specific host it is usually easier
78 > to just create a `Service` template and using the `services` attribute in the `Host`
79 > object to associate these templates with a host.
80
81 Example:
82
83     object Service "localhost-uptime" {
84       host = "localhost",
85       short_name = "uptime",
86
87       display_name = "localhost Uptime",
88
89       check_command = "check_snmp",
90
91       macros = {
92         community = "public",
93         oid = "DISMAN-EVENT-MIB::sysUpTimeInstance"
94       }
95
96       check_interval = 60s,
97       retry_interval = 15s,
98
99       servicegroups = [ "all-services", "snmp" ],
100     }
101
102 Attributes:
103
104   Name            |Description
105   ----------------|----------------
106   host            |**Required.** The host this service belongs to. There must be a `Host` object with that name.
107   short_name      |**Required.** The service name. Must be unique on a per-host basis (Similar to the service_description attribute in Icinga 1.x).
108   display_name    |**Optional.** A short description of the service.
109   macros          |**Optional.** A dictionary containing macros that are specific to this host.
110   check\_command  |**Required.** The name of the check command.
111   max\_check\_attempts|**Optional.** The number of times a service is re-checked before changing into a hard state. Defaults to 3.
112   check\_period   |**Optional.** The name of a time period which determines when this service should be checked. Not set by default.
113   check\_interval |**Optional.** The check interval (in seconds). This interval is used for checks when the service is in a `HARD` state. Defaults to 5 minutes.
114   retry\_interval |**Optional.** The retry interval (in seconds). This interval is used for checks when the service is in a `SOFT` state. Defaults to 1/5th of the check interval if not specified.
115   enable\_active\_checks|**Optional.** Whether active checks are enabled. Defaults to true.
116   enable\_passive\_checks|**Optional.** Whether passive checks are enabled. Defaults to true.
117   enable\_event\_handler|**Optional.** Enables event handlers for this service. Defaults to true.
118   event\_command  |**Optional.** The name of an event command that should be executed every time the service's state changes.
119   flapping\_threshold|TODO
120   volatile        |TODO
121   host_dependencies|**Optional.** A list of host names which this host depends on. These dependencies are used to determine whether the host is unreachable.
122   service_dependencies|**Optional.** A list of services which this host depends on. Each array element must be a dictionary containing the keys "host" and "service". These dependencies are used to determine whether the host is unreachable.
123   groups          |**Optional.** The service groups this service belongs to.
124   notifications   |**Optional.** Inline definition of notifications. Each dictionary item specifies a notification.<br /><br />The `templates` attribute can be used to specify an array of templates that should be inherited by the notification object.<br /><br />The new notification object's name is "hostname:service:notification" - where "notification" is the dictionary key in the notifications dictionary.
125
126 ### <a id="objecttype-servicegroup"></a> ServiceGroup
127
128 A group of services.
129
130 Example:
131
132     object ServiceGroup "snmp" {
133       display_name = "SNMP services",
134     }
135
136 Attributes:
137
138   Name            |Description
139   ----------------|----------------
140   display_name    |**Optional.** A short description of the service group.
141
142 ### <a id="objecttype-notification"></a> Notification
143
144 Notification objects are used to specify how users should be notified in case
145 of service state changes and other events.
146
147 > **Best Practice**
148 >
149 > Rather than creating a `Notification` object for a specific service it is usually easier
150 > to just create a `Notification` template and using the `notifications` attribute in the `Service`
151 > object to associate these templates with a service.
152
153 Example:
154
155     object Notification "localhost-ping-notification" {
156       host = "localhost",
157       service = "ping4",
158
159       notification_command = "mail-notification",
160
161       users = [ "user1", "user2" ]
162     }
163
164 Attributes:
165
166   Name            |Description
167   ----------------|----------------
168   host            |**Required.** The name of the host this notification belongs to.
169   service         |**Required.** The short name of the service this notification belongs to.
170   macros          |**Optional.** A dictionary containing macros that are specific to this notification object.
171   users           |**Optional.** A list of user names who should be notified.
172   user_groups     |**Optional.** A list of user group names who should be notified.
173   times           |TODO
174   notification_command|TODO
175   notification_interval|TODO
176   notification_period|TODO
177   notification_type_filter|TODO
178   notification_state_filter|TODO
179
180 ### <a id="objecttype-user"></a> User
181
182 A user.
183
184 Example:
185
186     object User "icingaadmin" {
187       display_name = "Icinga 2 Admin",
188       groups = [ "icingaadmins" ],
189
190       enable_notifications = 1,
191       notification_period = "24x7",
192
193       notification_state_filter = (StateFilterWarning |
194                                    StateFilterCritical |
195                                    StateFilterUnknown),
196       notification_type_filter = (NotificationFilterProblem |
197                                   NotificationFilterRecovery),
198       macros = {
199         "name" = "Icinga 2 Admin",
200         "email" = "icinga@localhost",
201         "pager" = "icingaadmin@localhost.localdomain"
202       },
203
204       custom = {
205         notes = "This is the Icinga 2 Admin account.",
206       }
207     }
208
209
210 Attributes:
211
212   Name            |Description
213   ----------------|----------------
214   display_name    |**Optional.** A short description of the user.
215   macros          |**Optional.** A dictionary containing macros that are specific to this user.
216   custom          |**Optional.** A dictionary containing custom attributes that are specific to this user.
217   groups          |TODO
218   enable_notifications|TODO
219   notification_period|TODO
220   notification_type_filter|TODO
221   notification_state_filter|TODO
222
223 ### <a id="objecttype-usergroup"></a> UserGroup
224
225 A user group.
226
227 Example:
228
229     object UserGroup "icingaadmins" {
230         display_name = "Icinga 2 Admin Group"
231     }
232
233 Attributes:
234
235   Name            |Description
236   ----------------|----------------
237   display_name    |**Optional.** A short description of the user group.
238
239 ### <a id="objecttype-timeperiod"></a> TimePeriod
240
241 Time periods can be used to specify when services should be checked or to limit
242 when notifications should be sent out.
243
244 Example:
245
246     object TimePeriod "24x7" inherits "legacy-timeperiod" {
247       display_name = "Icinga 2 24x7 TimePeriod",
248       ranges = {
249         "monday"    = "00:00-24:00",
250         "tuesday"   = "00:00-24:00",
251         "wednesday" = "00:00-24:00",
252         "thursday"  = "00:00-24:00",
253         "friday"    = "00:00-24:00",
254         "saturday"  = "00:00-24:00",
255         "sunday"    = "00:00-24:00",
256       }
257     }
258
259 Attributes:
260
261   Name            |Description
262   ----------------|----------------
263   display_name    |**Optional.** A short description of the time period.
264   methods         |**Required.** The "update" script method takes care of updating the internal representation of the time period. In virtually all cases you should just inherit from the "legacy-timeperiod" template to take care of this setting.
265   ranges          |TODO
266
267 The `/etc/icinga2/conf.d/timeperiods.conf` file is usually used to define
268 timeperiods including this one.
269
270
271 ### <a id="objecttype-consolelogger"></a> ConsoleLogger
272
273 Specifies Icinga 2 logging to the console.
274
275 Example:
276
277     object ConsoleLogger "my-debug-console" {
278       severity = "debug"
279     }
280
281 Attributes:
282
283   Name            |Description
284   ----------------|----------------
285   severity        |**Optional.** The minimum severity for this log. Can be "debug", "information", "warning" or "critical". Defaults to "information".
286
287 ### <a id="objecttype-filelogger"></a> FileLogger
288
289 Specifies Icinga 2 logging to a file.
290
291 Example:
292
293     object FileLogger "my-debug-file" {
294       severity = "debug",
295       path = "/var/log/icinga2/icinga2-debug.log"
296     }
297
298 Attributes:
299
300   Name            |Description
301   ----------------|----------------
302   path            |**Required.** The log path.
303   severity        |**Optional.** The minimum severity for this log. Can be "debug", "information", "warning" or "critical". Defaults to "information".
304
305 ### <a id="objecttype-sysloglogger"></a> SyslogLogger
306
307 Specifies Icinga 2 logging to syslog.
308
309 Example:
310
311     object SyslogLogger "my-crit-syslog" {
312       severity = "critical"
313     }
314
315 Attributes:
316
317   Name            |Description
318   ----------------|----------------
319   severity        |**Optional.** The minimum severity for this log. Can be "debug", "information", "warning" or "critical". Defaults to "information".
320
321 ### <a id="objecttype-checkcommand"></a> CheckCommand
322
323 A check command definition. Additional default command macros can be
324 defined here.
325
326 Example:
327
328     object CheckCommand "check_snmp" inherits "plugin-check-command" {
329       command = "$plugindir$/check_snmp -H $address$ -C $community$ -o $oid$",
330
331       macros = {
332         address = "127.0.0.1",
333         community = "public",
334       }
335     }
336
337 Attributes:
338
339   Name            |Description
340   ----------------|----------------
341   methods         |**Required.** The "execute" script method takes care of executing the check. In virtually all cases you should just inherit from the "plugin-check-command" template to take care of this setting.
342   command         |**Required.** The command. This can either be an array of individual command arguments. Alternatively a string can be specified in which case the shell interpreter (usually /bin/sh) takes care of parsing the command.
343   export_macros   |**Optional.** A list of macros which should be exported as environment variables prior to executing the command.
344   escape_macros   |**Optional.** A list of macros which should be shell-escaped in the command.
345   macros          |**Optional.** A dictionary containing macros that are specific to this command.
346   timeout         |**Optional.** The command timeout in seconds. Defaults to 5 minutes.
347
348 ### <a id="objecttype-notificationcommand"></a> NotificationCommand
349
350 A notification command definition.
351
352 Example:
353
354     object NotificationCommand "mail-service-notification" inherits "plugin-notification-command" {
355       command = [
356         "/opt/bin/send-mail-notification",
357         "$USEREMAIL$",
358         "$NOTIFICATIONTYPE$ - $HOSTNAME$ - $SERVICEDESC$ - $SERVICESTATE$",
359         {{{***** Icinga  *****
360
361     Notification Type: $NOTIFICATIONTYPE$
362
363     Service: $SERVICEDESC$
364     Host: $HOSTALIAS$
365     Address: $HOSTADDRESS$
366     State: $SERVICESTATE$
367
368     Date/Time: $LONGDATETIME$
369
370     Additional Info: $SERVICEOUTPUT$
371
372     Comment: [$NOTIFICATIONAUTHORNAME$] $NOTIFICATIONCOMMENT$}}}
373       ]
374     }
375
376 Attributes:
377
378   Name            |Description
379   ----------------|----------------
380   methods         |**Required.** The "execute" script method takes care of executing the notification. In virtually all cases you should just inherit from the "plugin-notification-command" template to take care of this setting.
381   command         |**Required.** The command. This can either be an array of individual command arguments. Alternatively a string can be specified in which case the shell interpreter (usually /bin/sh) takes care of parsing the command.
382   export_macros   |**Optional.** A list of macros which should be exported as environment variables prior to executing the command.
383   escape_macros   |**Optional.** A list of macros which should be shell-escaped in the command.
384   macros          |**Optional.** A dictionary containing macros that are specific to this command.
385   timeout         |**Optional.** The command timeout in seconds. Defaults to 5 minutes.
386
387 ### <a id="objecttype-eventcommand"></a> EventCommand
388
389 An event command definition.
390
391 > **Note**
392 >
393 > Similar to Icinga 1.x event handlers.
394
395 Example:
396
397     object EventCommand "restart-httpd-event" inherits "plugin-event-command" {
398       command = "/opt/bin/restart-httpd.sh",
399     }
400
401
402 Attributes:
403
404   Name            |Description
405   ----------------|----------------
406   methods         |**Required.** The "execute" script method takes care of executing the event handler. In virtually all cases you should just inherit from the "plugin-event-command" template to take care of this setting.
407   command         |**Required.** The command. This can either be an array of individual command arguments. Alternatively a string can be specified in which case the shell interpreter (usually /bin/sh) takes care of parsing the command.
408   export_macros   |**Optional.** A list of macros which should be exported as environment variables prior to executing the command.
409   escape_macros   |**Optional.** A list of macros which should be shell-escaped in the command.
410   macros          |**Optional.** A dictionary containing macros that are specific to this command.
411   timeout         |**Optional.** The command timeout in seconds. Defaults to 5 minutes.
412
413 ### <a id="objecttype-perfdatawriter"></a> PerfdataWriter
414
415 Writes check result performance data to a defined path using macro
416 pattern.
417
418 Example:
419
420     library "perfdata"
421
422     object PerfdataWriter "pnp" {
423       perfdata_path = "/var/spool/icinga2/perfdata/service-perfdata",
424
425       format_template = "DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$",
426
427       rotation_interval = 15s,
428     }
429
430 Attributes:
431
432   Name            |Description
433   ----------------|----------------
434   perfdata\_path  |**Optional.** Path to the service performance data file. Defaults to IcingaLocalStateDir + "/cache/icinga2/perfdata/perfdata".
435   format\_template|**Optional.** Format template for the performance data file. Defaults to a template that's suitable for use with PNP4Nagios.
436   rotation\_interval|**Optional.** Rotation interval for the file specified in `perfdata\_path`. Defaults to 30 seconds.
437
438 > **Note**
439 >
440 > When rotating the performance data file the current UNIX timestamp is appended to the path specified
441 > in `perfdata\_path` to generate a unique filename.
442
443 ### <a id="objecttype-graphitewriter"></a> GraphiteWriter
444
445 Writes check result metrics and performance data to a defined
446 Graphite Carbon host.
447
448 Example:
449
450     library "perfdata"
451
452     object GraphiteWriter "graphite" {
453       host = "127.0.0.1",
454       port = 2003
455     }
456
457 Attributes:
458
459   Name            |Description
460   ----------------|----------------
461   host            |**Optional.** Graphite Carbon host address. Defaults to '127.0.0.1'.
462   port            |**Optional.** Graphite Carbon port. Defaults to 2003.
463
464 ### <a id="objecttype-idomysqlconnection"></a> IdoMySqlConnection
465
466 IDO DB schema compatible output into MySQL database.
467
468 Example:
469
470     library "db_ido_mysql"
471
472     object IdoMysqlConnection "mysql-ido" {
473       host = "127.0.0.1",
474       port = 3306,
475       user = "icinga",
476       password = "icinga",
477       database = "icinga",
478       table_prefix = "icinga_",
479       instance_name = "icinga2",
480       instance_description = "icinga2 dev instance",
481
482       cleanup = {
483         downtimehistory_age = 48h,
484         logentries_age = 31d,
485       }
486     }
487
488 Attributes:
489
490   Name            |Description
491   ----------------|----------------
492   host            |**Optional.** MySQL database host address. Defaults to "localhost".
493   port            |**Optional.** MySQL database port. Defaults to 3306.
494   user            |**Optional.** MySQL database user with read/write permission to the icinga database. Defaults to "icinga".
495   password        |**Optional.** MySQL database user's password. Defaults to "icinga".
496   database        |**Optional.** MySQL database name. Defaults to "icinga".
497   table\_prefix   |**Optional.** MySQL database table prefix. Defaults to "icinga\_".
498   instance\_name  |**Optional.** Unique identifier for the local Icinga 2 instance. Defaults to "default".
499   instance\_description|**Optional.** Description for the Icinga 2 instance.
500   cleanup         |**Optional.** Dictionary with items for historical table cleanup.
501
502 Cleanup Items:
503
504   Name            | Description
505   ----------------|----------------
506   acknowledgement_age |**Optional.** Max age for acknowledgement table rows (entry_time). Defaults to 0 (never).
507   commenthistory_age |**Optional.** Max age for commenthistory table rows (entry_time). Defaults to 0 (never).
508   contactnotifications_age |**Optional.** Max age for contactnotifications table rows (start_time). Defaults to 0 (never).
509   contactnotificationmethods_age |**Optional.** Max age for contactnotificationmethods table rows (start_time). Defaults to 0 (never).
510   downtimehistory_age |**Optional.** Max age for downtimehistory table rows (entry_time). Defaults to 0 (never).
511   eventhandlers_age |**Optional.** Max age for eventhandlers table rows (start_time). Defaults to 0 (never).
512   externalcommands_age |**Optional.** Max age for externalcommands table rows (entry_time). Defaults to 0 (never).
513   flappinghistory_age |**Optional.** Max age for flappinghistory table rows (event_time). Defaults to 0 (never).
514   hostchecks_age |**Optional.** Max age for hostchecks table rows (start_time). Defaults to 0 (never).
515   logentries_age |**Optional.** Max age for logentries table rows (logentry_time). Defaults to 0 (never).
516   notifications_age |**Optional.** Max age for notifications table rows (start_time). Defaults to 0 (never).
517   processevents_age |**Optional.** Max age for processevents table rows (event_time). Defaults to 0 (never).
518   statehistory_age |**Optional.** Max age for statehistory table rows (state_time). Defaults to 0 (never).
519   servicechecks_age |**Optional.** Max age for servicechecks table rows (start_time). Defaults to 0 (never).
520   systemcommands_age |**Optional.** Max age for systemcommands table rows (start_time). Defaults to 0 (never).
521
522 ### <a id="objecttype-livestatuslistener"></a> LiveStatusListener
523
524 Livestatus API interface available as TCP or UNIX socket.
525
526 Example:
527
528     library "livestatus"
529
530     object LivestatusListener "livestatus-tcp" {
531       socket_type = "tcp",
532       bind_host = "127.0.0.1",
533       bind_port = "6558"
534     }
535
536     object LivestatusListener "livestatus-unix" {
537       socket_type = "unix",
538       socket_path = "/var/run/icinga2/livestatus"
539     }
540
541 Attributes:
542
543   Name            |Description
544   ----------------|----------------
545   socket\_type    |**Optional.** Specifies the socket type. Can be either "tcp" or "unix". Defaults to "unix".
546   bind\_host      |**Optional.** Only valid when socket\_type is "tcp". Host address to listen on for connections. Defaults to "127.0.0.1".
547   bind\_port      |**Optional.** Only valid when `socket\_type` is "tcp". Port to listen on for connections. Defaults to 6558.
548   socket\_path    |**Optional.** Only valid when `socket\_type` is "unix". Specifies the path to the UNIX socket file. Defaults to IcingaLocalStateDir + "/run/icinga2/livestatus".
549
550 > **Note**
551 >
552 > UNIX sockets are not supported on Windows.
553
554 ### <a id="objecttype-statusdatawriter"></a> StatusDataWriter
555
556 Periodically writes status data files which are used by the Classic UI and other third-party tools.
557
558 Example:
559
560     library "compat"
561
562     object StatusDataWriter "status" {
563         status\_path = "/var/cache/icinga2/status.dat",
564         objects\_path = "/var/cache/icinga2/objects.path"
565     }
566
567 Attributes:
568
569   Name            |Description
570   ----------------|----------------
571   status\_path    |**Optional.** Path to the status.dat file. Defaults to IcingaLocalStateDir + "/cache/icinga2/status.dat".
572   objects\_path   |**Optional.** Path to the objects.cache file. Defaults to IcingaLocalStateDir + "/cache/icinga2/objects.cache".
573
574 ### <a id="objecttype-externalcommandlistener"></a> ExternalCommandListener
575
576 Implements the Icinga 1.x command pipe which can be used to send commands to Icinga.
577
578 Example:
579
580     library "compat"
581
582     object ExternalCommandListener "external" {
583         command\_path = "/var/run/icinga2/cmd/icinga2.cmd"
584     }
585
586 Attributes:
587
588   Name            |Description
589   ----------------|----------------
590   command\_path   |**Optional.** Path to the command pipe. Defaults to IcingaLocalStateDir + "/run/icinga2/cmd/icinga2.cmd".
591
592 ### <a id="objecttype-compatlogger"></a> CompatLogger
593
594 Writes log files in a format that's compatible with Icinga 1.x.
595
596 Example:
597
598     library "compat"
599
600     object CompatLogger "my-log" {
601       log\_dir = "/var/log/icinga2/compat",
602       rotation\_method = "HOURLY"
603     }
604
605 Attributes:
606
607   Name            |Description
608   ----------------|----------------
609   log\_dir        |**Optional.** Path to the compat log directory. Defaults to IcingaLocalStateDir + "/log/icinga2/compat".
610   rotation\_method|**Optional.** Specifies when to rotate log files. Can be one of "HOURLY", "DAILY", "WEEKLY" or "MONTHLY". Defaults to "HOURLY".
611
612 ### <a id="objecttype-checkresultreader"></a> CheckResultReader
613
614 Reads Icinga 1.x check results from a directory. This functionality is provided
615 to help existing Icinga 1.x users and might be useful for certain cluster
616 scenarios.
617
618 Example:
619
620     library "compat"
621
622     object CheckResultReader "reader" {
623       spool_dir = "/data/check-results"
624     }
625
626 Attributes:
627
628   Name            |Description
629   ----------------|----------------
630   spool\_dir      |**Optional.** The directory which contains the check result files. Defaults to IcingaLocalStateDir + "/lib/icinga2/spool/checkresults/".
631
632 ### <a id="objecttype-checkcomponent"></a> CheckerComponent
633
634 The checker component is responsible for scheduling active checks. There are no configurable options.
635
636 Example:
637
638     library "checker"
639
640     object CheckerComponent "checker" { }
641
642 ### <a id="objecttype-notificationcomponent"></a> NotificationComponent
643
644 The notification component is responsible for sending notifications. There are no configurable options.
645
646 Example:
647
648     library "notification"
649
650     object NotificationComponent "notification" { }
651
652 ### <a id="objecttype-clusterlistener"></a> ClusterListener
653
654 TODO
655
656 Example:
657
658     TODO
659
660 Attributes:
661
662   Name            |Description
663   ----------------|----------------
664   cert\_path      |TODO
665   key\_path       |TODO
666   ca\_path        |TODO
667   bind\_host      |TODO
668   bind\_port      |TODO
669   peers           |TODO
670
671 ### <a id="objecttype-endpoint"></a> Endpoint
672
673 Endpoint objects are used to specify connection information for remote
674 Icinga 2 instances.
675
676 Example:
677
678     library "cluster"
679
680     object Endpoint "icinga-c2" {
681       node = "192.168.5.46",
682       service = 7777,
683     }
684
685 Attributes:
686
687   Name            |Description
688   ----------------|----------------
689   node            |**Required.** The hostname/IP address of the remote Icinga 2 instance.
690   service         |**Required.** The service name/port of the remote Icinga 2 instance.
691   config\_files   |TODO
692   accept\_config  |**Optional.** A list of endpoint names from which this endpoint accepts configuration files.
693
694 ### <a id="objecttype-domain"></a> Domain
695
696 TODO
697
698 Example:
699
700     TODO
701
702 Attributes:
703
704   Name            |Description
705   ----------------|----------------
706   acl             |TODO