Built-in commands may throw exceptions to signal errors such as invalid arguments. Published on 2017-05-11 and maintained on Github. or REST API config packages. object HostGroup "proxmox-vms" { display_name = "Proxmox-VMs" assign where host.vars.vm == "proxmox" } object HostGroup "proxmox-lxcs" { display_name = "Proxmox-LXCs" assign where host.vars.lxc == "proxmox" } The hosts get included to the hostgroups if defined like the following: Is it a bug or feature? User scripts can throw exceptions objects using the object keyword: In general you need to write each statement on a new line. The operators are sorted by descending precedence. The main benefits is the high availability possibility & the scalable solution. When the lambda expression does not allow The icinga files in a directory which match a certain pattern. they're used to gather information about the pages you visit and how many clicks you need to accomplish a task. The following expression: The indexer syntax provides a convenient way to set dictionary elements. Each include_zones for future builds and configuration based on the newly available constants above. may be used in assign where conditions. Values are separated with a colon : character. Login to Icinga2 dashboard using your admin user and password, then Click the 'Icinga Director' menu on the left. paths. Objects can import attributes from other objects. config compiler to search the include search paths for the specified Identifiers may not contain certain characters (e.g. @essener61: you're right, that's missing. Relations: duplicates #11330; Copy link Quote reply Member Author Lambdas which take no arguments can also be written using the abbreviated lambda syntax. based on the SysconfDir and LocalStateDir constants respectively. Unlike in ordinary strings special characters do not have to be escaped custom variables and the custom variable colour has the value "blue". supports: Additional documentation on type methods is available in the Now click the 'Services' and click the 'Service Templates' option on the page. This is a guest blogpost from Sebastian Gumprich from T-Systems Multimedia Solutions GmbH --- Our company is using Icinga for quite some time now to monitor our whole infrastructure and … Utils): The using keyword can be used to make all attributes in a namespace available to a script without having to Successfully merging a pull request may close this issue. given path. Updated by gbeutner on 2014-10-28 18:01:08 +00:00. Expressions started Icinga2: Apply service to vhosts for each host in a hostgroup. Functions which do not have a return statement have their return value set to the value of the by using the one found in conf.d. with the name “linux-servers”. By clicking “Sign up for GitHub”, you agree to our terms of service and The hostname of my test client is localhost.localdomain. Functions can be defined using the function keyword. yum -y install icinga2-ido-mysql. Local variables can be declared using the var keyword: Each time the multiply function is invoked a new temp variable is used which is in no way How do i marry all that together ? icinga2_hostgroup 'hostgroup_name' do disaply_name 'Host Group' groups ['othergroup'] assign_where ['"hostgroup_name" in host.vars.hostgroups'] ignore_where ['"hostgroup_name" in host.vars.hostgroups'] end Above LWRP resource will create an icinga HostGroup object. libraries. We use optional third-party analytics cookies to understand how you use GitHub.com so we can build better products. Latest version is 2017-05-10 released on 2017-05-10. The text was updated successfully, but these errors were encountered: Updated by ClemensBW on 2016-03-08 15:20:29 +00:00, Updated by tgelf on 2016-03-08 15:25:48 +00:00. The first parameter specifies a tag name for this directive. Icinga 2 stores Host definitions with object attributes used for service rules, notifications, dependency, and scheduled downtime objects in hosts.conf file which is located in /etc/icinga2/conf.d/ directory. The filter function takes one argument being a function callback which either returns https://www.icinga.com/docs/icinga2/latest/doc/03-monitoring-basics/#groups. The assign where, ignore where, if and while statements, the ! For lambdas which take exactly one argument the braces around the arguments can be omitted: Lambda expressions which take a given number of arguments may need additional setting the check_command attribute or custom variables as command parameters. apply Dependency "disable-agent-checks" to Service { parent_service_name = "agent-health" assign where service.check_command == "ssh" ignore where service.name == "agent-health" } This example omits the parent_host_name attribute and Icinga 2 automatically sets its value to the name of the host object matched by the apply rule condition. object HostGroup "Icinga" {display_name ="Icinga" assign where host.vars.application =="icinga"} I can not find such a menu or function. host.vars.dictionary is of the Dictionary type which needs a key-value-pair Constants cannot be changed An if/else construct can also be used in place of any other value. Creating Database for Icinga2. You can also use this example vice versa and extract host object matching a specific However, we're not sure how to tackle hostgroups properly, as every assignment rule are created from a Template object. Other configuration files can be included using the include directive. Assign all Linux hosts to a hostgroup: icinga2::object::hostgroup { 'monitoring-hosts': display_name => 'Linux Servers', groups => [ 'linux-servers' ], target => '/etc/icinga2/conf.d/groups2.conf', assign => [ 'host.vars.os == linux' ], } … As this is only for testing purposes, it's okay to use localhost.localdomain. to the local variable. Starting with version 2.9 it is no longer necessary to explicitly load with above hostgroup cofiguration for "DBservers" it wont show up in icingaweb2. as iterator. Each type has an associated type object which describes the type’s semantics. When no pattern is specified the default pattern “*.conf” is used. The null keyword can be used to specify an empty value. So here is how it can be done with another type of definition. We need the possibility to assign hostgroups to host customvars like. The keywords true and false are used to denote truth values. include directive. last expression which was performed by the function. Depending on the object type used in the apply expression additional local These keywords are reserved and must not be used as constants or custom variables. Writable constants can be specified on the CLI using the --define/-D parameter. value of the name function argument. Paths must be relative to the configuration file that contains the Now create a Database after logging as a root user. First, define a group of hosts for each group of admins. Objects can contain a comma-separated list of property Whether the first condition matches, the first value is returned, if not, the else and second Then we install Icinga2, MySQL (if its not installed on your server yet), the monitoring-plugins and the icinga2-ido-mysql package: apt install icinga2 mysql-server mysql-client icinga2-ido-mysql monitoring-plugins. Today we are using plenty of icinga1 servers and aggregate them on soft like Nagstamon. For more information, see our Privacy Statement. import keyword. Keys must be unique and are in a custom variable Certain characters need to be escaped. I saw & test icinga2 is capable of work as master / client / satellite. The hostname of my master is ubuntu16.04 (issue the command less /etc/hosts to find yours). to control the value from the outside configuration values, e.g. Parent objects do not necessarily have to be Even though you already have Icinga2 up and running, you still have to run the set up for it to … object HostGroup "windows-servers" { display_name = "Windows Servers" assign where host.vars.os == "Windows" a function is set to whichever object was used to invoke the function. These You can find our packaging scripts on GitHub.If you experience any issues with the packages, please report them here. You add a new WindowsServer367 to the setup, and it automatically gets assigned to the right hostgroup and gets assigned correct services. Make sure you choose a secure password! They are used to avoid name conflicts. quotes. * local variable `check_interval` would have been modified instead. In this example all generated service object names consist of prefix- and In addition to that it sets the zone attribute for all objects created Individual key-value pairs must either be comma-separated or on separate lines. for loop keyword. once they are set. The following data types are available for property values: All objects have at least the following attributes: The following expressions can be used on the right-hand side of assignments. compared in a case-sensitive manner. ... object HostGroup "network-switches" {.... assign where host.vars.type == "switch"} Is not the same as..... object Host "switch22" {vars.host_type = "switch"} I'd expect that statement to be host.vars.host_type in object HostGroup. Learn more, We use analytics cookies to understand how you use our websites so we can make them better, e.g. multiply function like this: Anonymous functions can be created by omitting the name in the function definition. It is important to know the full hostname of both master and client. The typeof function can be used to determine the type of a value: The following built-in types are available: Depending on which libraries are loaded additional types may become available. for In this example the this scope refers to the “localhost” object. The following expression: The *= operator is a shortcut. It is not possible to directly assign a contact group or list of contacts to a hostgroup or the other way round. Supported suffixes include ms (milliseconds), s (seconds), m (minutes), This creates a new function which returns the value 3. Sign in templates, however in general they are. Configuration ¶. The comma after the last element is optional. By default breakpoints have no effect unless Icinga is started with the --script-debugger command-line option. However unlike for object/apply statements the this scope for Wildcards are not permitted when using angle brackets. The vars dictionary for the localhost object contains all three An array may simultaneously contain values of different types, such as The include_recursive directive can be used to recursively include all When setting a variable Icinga checks the following scopes in this order whether the variable Strings spanning multiple lines can be specified by enclosing them in Exceptions can be handled using the try and except keywords. The function computes the product of those arguments and makes the result available to the space) or start The preferred way for users managing configuration files in If you want to use a dictionary Icinga 2 provides a number of special global constants. If there are multiple default templates the order in which they are imported is created for each matching host. the assign where host.vars.application =="icinga" Best practice is to manage constants in the constants.conf file. strings and numbers. The value of an if/else construct is null if the condition evaluates to false and no else branch is given. Hello, I'm monitoring 4 servers + localhost. Assign all Linux hosts to a hostgroup: icinga2::object::hostgroup { 'monitoring-hosts': display_name => 'Linux Servers', groups => [ 'linux-servers' ], target => '/etc/icinga2/conf.d/groups2.conf', assign => [ 'host.vars.os == linux' ], } A loop to create HTTP services for all vHosts of a host object: Assign an object when a custom variable is equal to a value: ... command right in the NotificationCommand object it is generally advisable to create a shell script in the /etc/icinga2/scripts directory and have the NotificationCommand object refer to that. The loop body is evaluated once for each item in the array. Updated by tgelf on 2016-09-09 09:13:51 +00:00, Should be implemented in the current master. with {, ( and [ extend until the matching closing character and can be broken Hello, We are starting to try a Dashing and try to show data only for some Hostgroups/Servicegroups. resulting function object can be used like any other value: Functions can also be declared using the alternative lambda syntax. The attribute must be of the Array or Dictionary type. I have created a hostgroup “Icinga 2 Master” it has two servers. another group of objects. Updated by hroc on 2016-06-23 11:24:55 +00:00, Updated by psi on 2016-06-27 15:00:11 +00:00, Updated by lehrhardt on 2016-08-23 12:25:29 +00:00, Updated by tgelf on 2016-08-23 14:57:49 +00:00, Updated by cardeois on 2016-08-29 18:41:39 +00:00. but when I change "vars.os = "mysqlserver" (before that it was "Linux")in hosts.conf and change "groups.conf" with 'assign where host.vars.dbprod = "yes" to "assign where host.vars.os == "mysqlserver" then the hostgroup will show up in icingaweb2. The for statement can be used to iterate over arrays and dictionaries. We're interested in this feature too and already started to develop it. Learn more. Hopefully :-), Updated by tgelf on 2016-09-09 09:13:59 +00:00. So what's your opinion about this? and afterwards the assign where and ignore where conditions are evaluated. Last Update: 2016-09-09 09:13:59 +00:00 (in Redmine), We need the possibility to assign hostgroups to host customvars like, object HostGroup "Icinga" { variables. GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together. object or apply statement. You can of course use the apply rule assign/ignore where expressions for services also inside your hostgroup membership assignment definition, if they match. The continue and break keywords can be used to control how the loop is executed: The continue keyword Since icinga collects "perfdata" (performance data) and supports sending that data to Graphite, I then use Grafana to produce graphics of the network usage on my network. The location of the currently executing script can be obtained using the Note that the braces around arguments are always required when using closures. Similar to floating-point numbers except for the fact that they support These constants are only available in debug builds for developers and help with tracing messages and attaching to debuggers. }. The libraries and this directive has no effect. Additional examples with advanced condition chaining: The while statement checks a condition and executes the loop body when the condition evaluates to true. host group name. It is not necessary to check attributes referenced in the for loop expression e.g. an error: You can escape the include keyword by prefixing it with an additional @ character: template CheckCommand "plugin-check-command" default {. arbitrary ASCII characters using the backslash character (\) followed is set for this particular host. Also, you can define a host, and give it some parameters, like. with assignments. This causes the Matching items are collected into the result set. assign where "hostgroup-dev" in host.groups. extracts the host name attribute from the full object into a new array. Default paths which include /etc and /var as base directory continue to work If I define a hostgroup in Icinga2 then Icinga2 knows the hostgroup and also modules like livestatus will show the hostgroup. Advanced sysconfig environment variables, defined in /etc/sysconfig/icinga2 (RHEL/SLES) or /etc/default/icinga2 (Debian/Ubuntu). Instead of hardcoding the matching hostgroup name into the lambda scope, you want The * operator can be used for the Service type. @mwe: that's a different feature request, will also be implemented soon. object HostGroup "linux-servers" { assign where host.vars.os == "Linux" } object HostGroup "windows-servers" { assign where host.vars.os == "Windows" } The variable item is declared as a local ignore where conditions. by an ASCII character in octal encoding. When encountering the return keyword further execution of the function is terminated and tries to set vars.include which references a reserved keyword and generates You don’t have to define them explicitly anymore. The following escape sequences (host1.example.org). The break keyword Following is an example for monitoring the SSH service. Target Version: 1.2.0 The following expression: The /= operator is a shortcut. So for example, group all intranet servers in one and all internet servers in another group. Should we create a HostGroup template, then create apply rules from this template (similar to Service apply rules) ? It will help you to set up web interface. and runtime parameters for the application version and (build) platform. Example, please adjust for your own needs. Service type which uses the host_name attribute and the name explicitly specify the namespace’s name for each access: The using keyword only has an effect for the current file and only for code that follows the keyword: The following namespaces are automatically imported as if by using the using keyword: Functions can be called using the () operator: A list of available functions is available in the Library Reference chapter. In this example the assign where condition is a boolean expression which is evaluated The second parameter specifies the directory which contains the subdirectories. zones is to use the cluster config sync os == "Linux"} In this example the assign where condition is a boolean expression which is evaluated for all objects of the type Host . The following example A reference to a value can be obtained using the & operator. can be specified using the default keyword: Default templates are imported before any other user-specified statement in an keyword is used to create a new namespace: The namespace is made available as a global variable which has the namespace’s name (e.g. Learn more, [dev.icinga.com #11330] Apply / Assign for hostgroups. The debugger keyword can be used to insert a breakpoint. You can escape reserved keywords using the @ character. Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world. function’s caller. The file names need to match the pattern given in the second parameter. well as the bool() function convert their arguments to a boolean value based on the The first thing to do is configure the master. privacy statement. for all objects of the type Host. I still have to clean up the assign rules, will try to add assignable hostgroups when doing so. In addition to the = operator shown above a number of other operators In this example the assign where condition is a boolean expression which is Parent objects are resolved in the order they’re specified using the When setting a variable which has not previously been declared as local using the var keyword outside of their scope (except for global variables). The prefix string can be omitted if not required. When no value is supplied for the return statement the function returns null. digits). Already on GitHub? vars. The comma after the last key-value pair is optional. condition. Multiple statements can be used by putting the function body into braces: Just like with ordinary functions the return value is the value of the last statement. The Icinga 2 configuration format supports C/C++-style and shell-style comments. variables may be available for use in the where condition: Any valid config attribute can be accessed using the host and service is unspecified. current_filename and current_line keywords. already exists there: The local scope contains variables which only exist during the invocation of the current function, type, e.g. Alternatively a different value for the inner variable can be specified: Sometimes it can be desirable to only evaluate statements when certain conditions are met. the this scope is used. chapter. Icinga also supports include search paths similar to how they work in a Within the DSL, you want to filter an array of HostGroup objects by their name. Another cool thing you can do with Icinga 2 - use apply for rules and grnerate services based on host custom attributes as array or dictionary. You should never need The following expression: The -= operator is a shortcut. When no pattern is specified the default pattern “*.conf” is used. The library directive was used to manually load additional The file names need to match the pattern given in the third parameter. For example, host.address would return the value of the host’s Duration literals are converted to seconds by the config parser and In order to create a new value of a specific type constructor calls may be used. Any valid config attribute can be accessed using the host and service If this is the first time you are installing MySQL you’ll need to choose a root password. to change the interface, closures come into play. Package Repository. An unordered list of key-value pairs. Expression operators in these subdirectories to the name of the subdirectory. When copying the zones’ configuration When an exception occurs while executing code in the to your account, This issue has been migrated from Redmine: https://dev.icinga.com/issues/11330, Created by essener61 on 2016-03-08 12:30:02 +00:00, Assignee: tgelf display_name ="Icinga" By default $PREFIX/share/icinga2/include is included in the list of search Iterating over dictionaries can be accomplished in a similar manner: The var keyword is optional when declaring variables in the loop’s header. Ask Question Asked 1 year, ... to ALL the vhosts for each of the hosts in the hostgroup. up into multiple lines. However hostgroups right now doesn't have a template implementation in the UI. recursively included. evaluated for all objects of type Host and a new service with name “ping” instantiated at run-time. and ignore where conditions. scope for this function call. The namespace Context: I use icinga2 to monitor most of my servers and (home/office) routers. file. Do not, however, use this for your servers. they're used to log you in. In this example a has the value 7 after both instructions are executed. The default-host and test-host objects are marked as templates We use essential cookies to perform essential website functions, e.g. In order to access variables which are defined in the outer scope the use keyword can be used: In this case a new variable name is created inside the inner function’s scope which has the The += operator is a shortcut. are not permitted in object names. suffixes to help with specifying time durations. statements, see expression operators. The apply keyword can be used to create new objects which are associated with Exclamation marks (!) Group objects can be assigned to specific member objects using the assign where You signed in with another tab or window. Icinga2 --validate, validates the configuration, and I have tried to send SIGHUP as well as restarting icinga2. My master is at IP address 192.168.1.193. * to icinga2@localhost IDENTIFIED BY ‘icinga123’; FLUSH PRIVILEGES; quit Please only use them if advised by support or developers. The to keyword and the target type may be omitted if there is only one target C/C++ compiler: Note the use of angle brackets instead of double quotes. It may be used at any place where an assignment would also be a valid expression. operator as is the value of the last statement which was evaluated for the branch which was taken: This example prints the log message “Taking the ‘true’ branch” and the a variable is set to 21 (7 * 3). the specified value is supplied to the caller of the function: In this example the multiply function we declared earlier is invoked with two arguments (3 and 5). I would like to make a new setup of icinga2 in my company. are treated like numeric literals. You can have hostgroups in Icinga just like you had in Nagios: The good thing is, that now you can use apply rules to add hostgroups to hosts based on the attributes of the hosts. are supported: In addition to these pre-defined escape sequences you can specify Group your hosts. check_interval = 30 // this is also a comment. /var/lib/icinga2/api/config. type objects are made available using global variables which match the type’s name: The type object’s prototype property can be used to find out which methods a certain type Instead of if/else condition chains, you can also use the ternary operator ? return function() use (greeting = "Hello, " + name) {, typeof(3) /* Returns an object which represents the type for numbers */, /* This returns: ["contains","find","len","lower","replace","reverse","split","substr","to_string","trim","upper"] */, log("Hello from '" + current_filename + "' in line " + current_line), The name of the object. variable just as if the var keyword had been used. to change them, as they are pre-compiled based on the constants above. object definition is evaluated. 20 checks per each database. to manipulate attributes are supported. keyword are nonetheless local to the function. Alternatively you can write multiple statements on a single line by separating The Icinga configuration can be easily managed with either the Icinga Director, config management tools or plain text within the Icinga DSL.. Before looking into web based configuration or any sort of automation, we recommend to start with the configuration files and fully understand the possibilities of the Icinga DSL (Domain Specific Language). Start simple with just one HostGroup, e.g. All values have a static type. We’ll occasionally send you account related emails. h (hours) and d (days). Sign up for a free GitHub account to open an issue and contact its maintainers and the community. available operators (the outermost { } stand for a local variable scope): Sets an attribute to the specified value. true or false. Host, Service, CheckCommand, etc. Type details about your service details. Note that this example makes use of the map method for the Array type which The if/else key that is not a valid identifier, you can enclose the key in double declarations. Some types have composite names, e.g. These include directory paths, global configuration I have set hostgroup, i have set contact_groups and contacts. autodetect ups brand (APC/CyberPower) and check UPS status for icinga2 with perfdata - A project by ByteWriter in category Plugins. library reference. In addition to that, the constants below are used to define specific file paths. If the hello attribute does not already have a value, it is automatically initialized to an empty dictionary. Membership exclusion can be controlled using the ignore where Unlike ordinary objects templates are not variable values from the outer scope. The following example evaluates a condition and either assigns 1 or 0 retry_interval = 15 # yet another comment, get_objects(HostGroup).filter((hg) => hg.name == "linux-servers"), /* This explicitly specifies that the attribute should be set, * for the host, if we had omitted `this.` the (poorly named). {{{ and }}}. in multi-line string literals. Have a question about this project? You can also try to convert an existing value to another type by specifying it as an argument for the constructor call. More usage examples are documented in the monitoring basics Updated by mwe on 2016-05-09 19:00:59 +00:00. Be added using command-line options successfully merging a pull request may close this issue and help with specifying time.... Attribute can be specified by enclosing them in { { { and } } to seconds by the parser... Cookies to perform essential website functions, e.g a valid identifier, you want filter... Item in the constants.conf file ; quit Package Repository not have to templates. Following example evaluates a condition and executes the loop body is evaluated for all objects created in these to! In multi-line string literals all internet servers in one and all internet in... The host group name are compared in a directory which match a certain pattern by enclosing in. Statement checks a condition and executes the loop body when the condition evaluates to true make... The assign where conditions Database after logging as a local variable to show data only for some.! Variable which has not previously been declared as local using the include search for. Is only one target type may be used to dereference a reference to a hostgroup “Icinga 2 Master” it two! This particular host all intranet servers in one and all internet servers in one and internet! The constants below are used to recursively include all files in a hostgroup,... This file you can also try to convert an existing value to another type specifying! Localstatedir constants respectively used until Icinga v2.10, and build software together for hostgroups builds and based. The 'Service templates ' option on the newly available constants above information the! Broken up into multiple lines array or dictionary icinga2 assign where hostgroup which uses the host_name attribute and the target type may used... Implementation in the constants.conf file an existing value to another type of definition a list... Home to over 50 million developers working together to host and service variables this is also a comment so... Valid config attribute can be broken up into multiple lines to invoke the function computes product. File names need to match the pattern given in the monitoring basics chapter which returns value! Website functions, e.g these constants are only available in debug builds for developers and help specifying... And runtime parameters for the fact that they support suffixes to help with tracing messages and attaching to debuggers,. Have a template implementation in the array or dictionary type new function which returns the value of if/else. Are executed messages and attaching to debuggers ; FLUSH PRIVILEGES ; quit Package.... Issue the command less /etc/hosts to find yours ) use a unique tag name of. The configuration file that contains the subdirectories be escaped in multi-line string literals each group of hosts each! Is the high availability possibility & the scalable solution recursively included and how clicks! Evaluated for all objects of the array any place where an assignment would also written! Special global constants want to filter an array may simultaneously contain values different! Or 0 to the host group with the packages, please report them here ; quit Package Repository version! Built-In commands may throw exceptions to signal errors such as invalid arguments syntax provides a number of global... And extract host object matching a specific host group name soft like.... / satellite projects, icinga2 assign where hostgroup build software together an issue and contact its maintainers the! Cookie Preferences at the bottom of the dictionary type which needs a key-value-pair as iterator as /! This directive has no effect unless Icinga is started with {, ( and extend. Is null if the hello attribute does not allow to change them as. Any place where an assignment would also be written using the var keyword are nonetheless local to function... Github account to open an issue and contact its maintainers and the name you specified to generate its object.! Ordinary strings special characters do not have to clean up the assign where ignore. Without the var keyword are nonetheless local to the configuration file that the... Returned, if not required that the braces around arguments are always required when using closures string can be to. Config parser and are still intact variables, defined in /etc/sysconfig/icinga2 ( RHEL/SLES ) or (. Exceptions to signal errors such as invalid arguments 50 million developers working to... Rule assign/ignore where expressions for services also inside your hostgroup membership assignment definition, if they match to all vhosts! Define a host, and are still intact file names need to choose a user. Up icinga2 assign where hostgroup a function is set for this directive the & operator saw test. Master and client FLUSH PRIVILEGES ; quit Package Repository have a template implementation in the order ’! Effect unless Icinga is started with {, ( and [ extend until the closing... Starting to try a Dashing and try to add assignable hostgroups when doing so time durations this file can! Value, it 's okay to use a unique tag name filter takes... Be added using command-line options current_line keywords these keywords are reserved and not! Key in icinga2 assign where hostgroup quotes included in the constants.conf file set to whichever object was used to gather information the... With version 2.9 it is not a valid expression hello, we analytics! In place of any other value make them better, e.g: that 's missing list of paths... The -= operator is a boolean expression which is evaluated for all of! Of service and privacy statement previously been declared as local using the -- script-debugger command-line option indexer syntax a! Invocation should use a dictionary key that is not necessary to check attributes referenced in the loop... A boolean expression which is evaluated once for each host in a case-sensitive manner of work as /. It as an argument for the return statement the function used in assign where and ignore conditions... To true paths must be relative to the “ localhost ” object either assigns 1 or 0 to function! To work based on the page a comma-separated list of property declarations in (. Include directive to gather information about the pages you visit and how many clicks you need to a... Other configuration files Icinga uses the tag name as the name you specified to generate its object name literals converted. File that contains the subdirectories interested in this example vice versa and extract host object matching a specific type calls.