mirror of https://github.com/Icinga/icinga2.git
parent
d5e406db85
commit
255490ede2
|
@ -356,7 +356,7 @@ directive makes sure that all of your own configuration files are included.
|
|||
### <a id="init-conf"></a> init.conf
|
||||
|
||||
This initialization configuration file is automatically included by Icinga 2. It
|
||||
defines the daemon user and group [constants](#global-constants) `RunAsUser` and
|
||||
defines the daemon user and group [constants](#constants) `RunAsUser` and
|
||||
`RunAsGroup`.
|
||||
|
||||
|
||||
|
@ -1799,7 +1799,7 @@ you can also use the `--library` command-line option.
|
|||
|
||||
##### Constants
|
||||
|
||||
[Global constants](#global-constants) can be set using the `--define` command-line option.
|
||||
[Global constants](#constants) can be set using the `--define` command-line option.
|
||||
|
||||
##### Config Include Path
|
||||
|
||||
|
|
|
@ -2297,7 +2297,7 @@ You can customize the metric prefix name by using the `host_name_template` and
|
|||
`service_name_template` configuration attributes.
|
||||
|
||||
The example below uses [runtime macros](#runtime-macros) and a
|
||||
[global constant](#global-constants) named `GraphiteEnv`. The constant name
|
||||
[global constant](#constants) named `GraphiteEnv`. The constant name
|
||||
is freely definable and should be put in the [constants.conf](#constants-conf) file.
|
||||
|
||||
const GraphiteEnv = "icinga.env1"
|
||||
|
|
|
@ -1103,7 +1103,7 @@ and configure [cluster scenarios](#cluster-scenarios).
|
|||
#### <a id="configure-nodename"></a> Configure the Icinga Node Name
|
||||
|
||||
Instead of using the default FQDN as node name you can optionally set
|
||||
that value using the [NodeName](#global-constants) constant.
|
||||
that value using the [NodeName](#constants) constant.
|
||||
|
||||
> ** Note **
|
||||
>
|
||||
|
@ -1279,7 +1279,7 @@ process.
|
|||
>
|
||||
> `zones.d` must not be included in [icinga2.conf](#icinga2-conf). Icinga 2 automatically
|
||||
> determines the required include directory. This can be overridden using the
|
||||
> [global constant](#global-constants) `ZonesDir`.
|
||||
> [global constant](#constants) `ZonesDir`.
|
||||
|
||||
#### <a id="zone-global-config-templates"></a> Global Configuration Zone for Templates
|
||||
|
||||
|
|
|
@ -1,94 +1,5 @@
|
|||
# <a id="configuring-icinga2"></a> Configuring Icinga 2
|
||||
|
||||
## <a id="global-constants"></a> Global Constants
|
||||
|
||||
Icinga 2 provides a number of special global constants. Some of them can be overridden using the `--define` command line parameter:
|
||||
|
||||
Variable |Description
|
||||
--------------------|-------------------
|
||||
PrefixDir |**Read-only.** Contains the installation prefix that was specified with cmake -DCMAKE_INSTALL_PREFIX. Defaults to "/usr/local".
|
||||
SysconfDir |**Read-only.** Contains the path of the sysconf directory. Defaults to PrefixDir + "/etc".
|
||||
ZonesDir |**Read-only.** Contains the path of the zones.d directory. Defaults to SysconfDir + "/zones.d".
|
||||
LocalStateDir |**Read-only.** Contains the path of the local state directory. Defaults to PrefixDir + "/var".
|
||||
RunDir |**Read-only.** Contains the path of the run directory. Defaults to LocalStateDir + "/run".
|
||||
PkgDataDir |**Read-only.** Contains the path of the package data directory. Defaults to PrefixDir + "/share/icinga2".
|
||||
StatePath |**Read-write.** Contains the path of the Icinga 2 state file. Defaults to LocalStateDir + "/lib/icinga2/icinga2.state".
|
||||
ObjectsPath |**Read-write.** Contains the path of the Icinga 2 objects file. Defaults to LocalStateDir + "/cache/icinga2/icinga2.debug".
|
||||
PidPath |**Read-write.** Contains the path of the Icinga 2 PID file. Defaults to RunDir + "/icinga2/icinga2.pid".
|
||||
Vars |**Read-write.** Contains a dictionary with global custom attributes. Not set by default.
|
||||
NodeName |**Read-write.** Contains the cluster node name. Set to the local hostname by default.
|
||||
ApplicationType |**Read-write.** Contains the name of the Application type. Defaults to "icinga/IcingaApplication".
|
||||
EnableNotifications |**Read-write.** Whether notifications are globally enabled. Defaults to true.
|
||||
EnableEventHandlers |**Read-write.** Whether event handlers are globally enabled. Defaults to true.
|
||||
EnableFlapping |**Read-write.** Whether flap detection is globally enabled. Defaults to true.
|
||||
EnableHostChecks |**Read-write.** Whether active host checks are globally enabled. Defaults to true.
|
||||
EnableServiceChecks |**Read-write.** Whether active service checks are globally enabled. Defaults to true.
|
||||
EnablePerfdata |**Read-write.** Whether performance data processing is globally enabled. Defaults to true.
|
||||
UseVfork |**Read-write.** Whether to use vfork(). Only available on *NIX. Defaults to true.
|
||||
RunAsUser |**Read-write.** Defines the user the Icinga 2 daemon is running as. Used in [init.conf](#init-conf).
|
||||
RunAsGroup |**Read-write.** Defines the group the Icinga 2 daemon is running as. Used in [init.conf](#init-conf).
|
||||
|
||||
## <a id="reserved-keywords"></a> Reserved Keywords
|
||||
|
||||
These keywords are reserved by the configuration parser and must not be
|
||||
used as constants or custom attributes.
|
||||
|
||||
object
|
||||
template
|
||||
include
|
||||
include_recursive
|
||||
library
|
||||
null
|
||||
true
|
||||
false
|
||||
const
|
||||
var
|
||||
this
|
||||
use
|
||||
apply
|
||||
to
|
||||
where
|
||||
import
|
||||
assign
|
||||
ignore
|
||||
function
|
||||
return
|
||||
for
|
||||
if
|
||||
else
|
||||
in
|
||||
|
||||
You can escape reserved keywords using the `@` character. The following example
|
||||
will try to set `vars.include` which references a reserved keyword and generates
|
||||
the following error:
|
||||
|
||||
|
||||
[2014-09-15 17:24:00 +0200] critical/config: Location:
|
||||
/etc/icinga2/conf.d/hosts/localhost.conf(13): vars.sla = "24x7"
|
||||
/etc/icinga2/conf.d/hosts/localhost.conf(14):
|
||||
/etc/icinga2/conf.d/hosts/localhost.conf(15): vars.include = "some cmdb export field"
|
||||
^^^^^^^
|
||||
/etc/icinga2/conf.d/hosts/localhost.conf(16): }
|
||||
/etc/icinga2/conf.d/hosts/localhost.conf(17):
|
||||
|
||||
Config error: in /etc/icinga2/conf.d/hosts/localhost.conf: 15:8-15:14: syntax error, unexpected include (T_INCLUDE), expecting T_IDENTIFIER
|
||||
[2014-09-15 17:24:00 +0200] critical/config: 1 errors, 0 warnings.
|
||||
|
||||
You can escape the `include` key with an additional `@` character becoming `vars.@include`:
|
||||
|
||||
object Host "localhost" {
|
||||
import "generic-host"
|
||||
|
||||
address = "127.0.0.1"
|
||||
address6 = "::1"
|
||||
|
||||
vars.os = "Linux"
|
||||
vars.sla = "24x7"
|
||||
|
||||
vars.@include = "some cmdb export field"
|
||||
}
|
||||
|
||||
|
||||
## <a id="configuration-syntax"></a> Configuration Syntax
|
||||
|
||||
### <a id="object-definition"></a> Object Definition
|
||||
|
@ -129,8 +40,7 @@ The following data types are available for property values:
|
|||
|
||||
### Expressions
|
||||
|
||||
The following expressions can be used on the right-hand side of dictionary
|
||||
values.
|
||||
The following expressions can be used on the right-hand side of assignments.
|
||||
|
||||
#### <a id="numeric-literals"></a> Numeric Literals
|
||||
|
||||
|
@ -197,7 +107,7 @@ in multi-line string literals.
|
|||
|
||||
#### <a id="boolean-literals"></a> Boolean Literals
|
||||
|
||||
The keywords `true` and `false` are equivalent to 1 and 0 respectively.
|
||||
The keywords `true` and `false` are used to denote truth values.
|
||||
|
||||
#### <a id="null-value"></a> Null Value
|
||||
|
||||
|
@ -206,7 +116,7 @@ The `null` keyword can be used to specify an empty value.
|
|||
#### <a id="dictionary"></a> Dictionary
|
||||
|
||||
An unordered list of key-value pairs. Keys must be unique and are
|
||||
compared in a case-insensitive manner.
|
||||
compared in a case-sensitive manner.
|
||||
|
||||
Individual key-value pairs must either be comma-separated or on separate lines.
|
||||
The comma after the last key-value pair is optional.
|
||||
|
@ -249,6 +159,8 @@ Operator | Examples (Result) | Description
|
|||
- | 3 - 1 (2) | Subtracts two numbers
|
||||
* | 5m * 10 (3000) | Multiplies two numbers
|
||||
/ | 5m / 5 (60) | Divides two numbers
|
||||
% | 17 % 12 (5) | Remainder after division
|
||||
^ | 17 ^ 12 (29) | Bitwise XOR
|
||||
& | 7 & 3 (3) | Binary AND
|
||||
| | 2 | 3 (3) | Binary OR
|
||||
&& | true && false (false) | Logical AND
|
||||
|
@ -291,32 +203,17 @@ Functions can be called using the `()` operator:
|
|||
|
||||
assign where match("192.168.*", host.address)
|
||||
|
||||
A list of available functions is available in the [Built-in functions and methods](#builtin-functions) chapter.
|
||||
|
||||
Function | Description
|
||||
--------------------------------|-----------------------
|
||||
regex(pattern, text) | Returns true if the regex pattern matches the text, false otherwise.
|
||||
match(pattern, text) | Returns true if the wildcard pattern matches the text, false otherwise.
|
||||
len(value) | Returns the length of the value, i.e. the number of elements for an array or dictionary, or the length of the string in bytes.
|
||||
union(array, array, ...) | Returns an array containing all unique elements from the specified arrays.
|
||||
intersection(array, array, ...) | Returns an array containing all unique elements which are common to all specified arrays.
|
||||
keys(dict) | Returns an array containing the dictionary's keys.
|
||||
string(value) | Converts the value to a string.
|
||||
number(value) | Converts the value to a number.
|
||||
bool(value) | Converts the value to a bool.
|
||||
random() | Returns a random value between 0 and RAND_MAX (as defined in stdlib.h).
|
||||
log(value) | Writes a message to the log. Non-string values are converted to a JSON string.
|
||||
log(severity, facility, value) | Writes a message to the log. `severity` can be one of `LogDebug`, `LogNotice`, `LogInformation`, `LogWarning`, and `LogCritical`. Non-string values are converted to a JSON string.
|
||||
exit(integer) | Terminates the application.
|
||||
|
||||
### <a id="dictionary-operators"></a> Dictionary Operators
|
||||
### <a id="dictionary-operators"></a> Assignments
|
||||
|
||||
In addition to the `=` operator shown above a number of other operators
|
||||
to manipulate dictionary elements are supported. Here's a list of all
|
||||
to manipulate attributes are supported. Here's a list of all
|
||||
available operators:
|
||||
|
||||
#### <a id="operator-assignment"></a> Operator =
|
||||
|
||||
Sets a dictionary element to the specified value.
|
||||
Sets an attribute to the specified value.
|
||||
|
||||
Example:
|
||||
|
||||
|
@ -415,6 +312,8 @@ This is equivalent to writing:
|
|||
}
|
||||
}
|
||||
|
||||
If the `hello` attribute does not already have a value it is automatically initialized to an empty dictionary.
|
||||
|
||||
### <a id="template-imports"></a> Template Imports
|
||||
|
||||
Objects can import attributes from other objects.
|
||||
|
@ -458,8 +357,31 @@ Global constants can be set using the `const` keyword:
|
|||
Once defined a constant can be accessed from any file. Constants cannot be changed
|
||||
once they are set.
|
||||
|
||||
There is a defined set of [global constants](#global-constants) which allow
|
||||
you to specify application settings.
|
||||
Icinga 2 provides a number of special global constants. Some of them can be overridden using the `--define` command line parameter:
|
||||
|
||||
Variable |Description
|
||||
--------------------|-------------------
|
||||
PrefixDir |**Read-only.** Contains the installation prefix that was specified with cmake -DCMAKE_INSTALL_PREFIX. Defaults to "/usr/local".
|
||||
SysconfDir |**Read-only.** Contains the path of the sysconf directory. Defaults to PrefixDir + "/etc".
|
||||
ZonesDir |**Read-only.** Contains the path of the zones.d directory. Defaults to SysconfDir + "/zones.d".
|
||||
LocalStateDir |**Read-only.** Contains the path of the local state directory. Defaults to PrefixDir + "/var".
|
||||
RunDir |**Read-only.** Contains the path of the run directory. Defaults to LocalStateDir + "/run".
|
||||
PkgDataDir |**Read-only.** Contains the path of the package data directory. Defaults to PrefixDir + "/share/icinga2".
|
||||
StatePath |**Read-write.** Contains the path of the Icinga 2 state file. Defaults to LocalStateDir + "/lib/icinga2/icinga2.state".
|
||||
ObjectsPath |**Read-write.** Contains the path of the Icinga 2 objects file. Defaults to LocalStateDir + "/cache/icinga2/icinga2.debug".
|
||||
PidPath |**Read-write.** Contains the path of the Icinga 2 PID file. Defaults to RunDir + "/icinga2/icinga2.pid".
|
||||
Vars |**Read-write.** Contains a dictionary with global custom attributes. Not set by default.
|
||||
NodeName |**Read-write.** Contains the cluster node name. Set to the local hostname by default.
|
||||
ApplicationType |**Read-write.** Contains the name of the Application type. Defaults to "icinga/IcingaApplication".
|
||||
EnableNotifications |**Read-write.** Whether notifications are globally enabled. Defaults to true.
|
||||
EnableEventHandlers |**Read-write.** Whether event handlers are globally enabled. Defaults to true.
|
||||
EnableFlapping |**Read-write.** Whether flap detection is globally enabled. Defaults to true.
|
||||
EnableHostChecks |**Read-write.** Whether active host checks are globally enabled. Defaults to true.
|
||||
EnableServiceChecks |**Read-write.** Whether active service checks are globally enabled. Defaults to true.
|
||||
EnablePerfdata |**Read-write.** Whether performance data processing is globally enabled. Defaults to true.
|
||||
UseVfork |**Read-write.** Whether to use vfork(). Only available on *NIX. Defaults to true.
|
||||
RunAsUser |**Read-write.** Defines the user the Icinga 2 daemon is running as. Used in [init.conf](#init-conf).
|
||||
RunAsGroup |**Read-write.** Defines the group the Icinga 2 daemon is running as. Used in [init.conf](#init-conf).
|
||||
|
||||
### <a id="apply"></a> Apply
|
||||
|
||||
|
@ -578,7 +500,7 @@ C/C++ compiler:
|
|||
|
||||
Note the use of angle brackets instead of double quotes. This causes the
|
||||
config compiler to search the include search paths for the specified
|
||||
file. By default $PREFIX/share/icinga2 is included in the list of search
|
||||
file. By default $PREFIX/share/icinga2/include is included in the list of search
|
||||
paths. Additional include search paths can be added using
|
||||
[command-line options](#cmdline).
|
||||
|
||||
|
@ -610,7 +532,449 @@ Example:
|
|||
|
||||
library "snmphelper"
|
||||
|
||||
### <a id="functions"></a> Functions
|
||||
|
||||
Functions can be defined using the `function` keyword.
|
||||
|
||||
Example:
|
||||
|
||||
function multiply(a, b) {
|
||||
return a * b
|
||||
}
|
||||
|
||||
When encountering the `return` keyword further execution of the function is terminated and
|
||||
the specified value is supplied to the caller of the function:
|
||||
|
||||
log(multiply(3, 5))
|
||||
|
||||
In this example the `add` function we declared earlier is invoked with two arguments (3 and 5).
|
||||
The function computes the product of those arguments and makes the result available to the
|
||||
function's caller.
|
||||
|
||||
When no value is supplied for the `return` statement the function returns `null`.
|
||||
|
||||
Functions which do not have a `return` statement have their return value set to the value of the
|
||||
last expression which was performed by the function. For example, we could have also written our
|
||||
`multiply` function like this:
|
||||
|
||||
function multiply(a, b) {
|
||||
a * b
|
||||
}
|
||||
|
||||
### <a id="lambdas"></a> Lambda Expressions
|
||||
|
||||
Functions can also be declared using the alternative lambda syntax.
|
||||
|
||||
Example:
|
||||
|
||||
f = (x) => x * x
|
||||
|
||||
Multiple statements can be used by putting the function body into braces:
|
||||
|
||||
f = (x) => {
|
||||
log("Lambda called")
|
||||
x * x
|
||||
}
|
||||
|
||||
Just like with ordinary functions the return value is the value of the last statement.
|
||||
|
||||
For lambdas which take exactly one argument the braces around the arguments can be omitted:
|
||||
|
||||
f = x => x * x
|
||||
|
||||
### <a id="variable-scopes"></a> Variable Scopes
|
||||
|
||||
When setting a variable Icinga checks the following scopes in this order whether the variable
|
||||
already exists there:
|
||||
|
||||
* Local Scope
|
||||
* `this` Scope
|
||||
* Global Scope
|
||||
|
||||
The local scope contains variables which only exist during the invocation of the current function,
|
||||
object or apply statement. Local variables can be declared using the `var` keyword:
|
||||
|
||||
function multiple(a, b) {
|
||||
var temp = a * b
|
||||
return temp
|
||||
}
|
||||
|
||||
Each time the `multiply` function is invoked a new `temp` variable is used which is in no way
|
||||
related to previous invocations of the function.
|
||||
|
||||
When setting a variable which has not previously been declared as local using the `var` keyword
|
||||
the `this` scope is used.
|
||||
|
||||
The `this` scope refers to the current object which the function or object/apply statement
|
||||
operates on.
|
||||
|
||||
object Host "localhost" {
|
||||
check_interval = 5m
|
||||
}
|
||||
|
||||
In this example the `this` scope refers to the "localhost" object. The `check_interval` attribute
|
||||
is set for this particular host.
|
||||
|
||||
You can explicitly access the `this` scope using the `this` keyword:
|
||||
|
||||
object Host "localhost" {
|
||||
var check_interval = 5m
|
||||
|
||||
/* This explicitly specifies that the attribute should be set
|
||||
* for the host, if we had omitted `this.` the (poorly named)
|
||||
* local variable `check_interval` would have been modified instead.
|
||||
*/
|
||||
this.check_interval = 1m
|
||||
}
|
||||
|
||||
Similarly the keywords `locals` and `globals` are available to access the local and global scope.
|
||||
|
||||
Functions also have a `this` scope. However unlike for object/apply statements the `this` scope for
|
||||
a function is set to whichever object was used to invoke the function. Here's an example:
|
||||
|
||||
hm = {
|
||||
h_word = null
|
||||
|
||||
function init(word) {
|
||||
h_word = word
|
||||
}
|
||||
}
|
||||
|
||||
/* Let's invoke the init() function */
|
||||
hm.init("hello")
|
||||
|
||||
We're using `hm.init` to invoke the function which causes the value of `hm` to become the `this`
|
||||
scope for this function call.
|
||||
|
||||
### <a id="conditional-statements"></a> Conditional Statements
|
||||
|
||||
Sometimes it can be desirable to only evaluate statements when certain conditions are met. The if/else
|
||||
construct can be used to accomplish this.
|
||||
|
||||
Example:
|
||||
|
||||
a = 3
|
||||
|
||||
if (a < 5) {
|
||||
a *= 7
|
||||
} else {
|
||||
a *= 2
|
||||
}
|
||||
|
||||
An if/else construct can also be used in place of any other value. The value of an if/else statement
|
||||
is the value of the last statement which was evaluated for the branch which was taken:
|
||||
|
||||
a = if (true) {
|
||||
log("Taking the 'true' branch")
|
||||
7 * 3
|
||||
} else {
|
||||
log("Taking the 'false' branch")
|
||||
9
|
||||
}
|
||||
|
||||
This example prints the log message "Taking the 'true' branch" and the `a` variable is set to 21 (7 * 3).
|
||||
|
||||
The value of an if/else construct is null if the condition evaluates to false and no else branch is given.
|
||||
|
||||
## <a id="for-loops"></a> For Loops
|
||||
|
||||
The `for` statement can be used to iterate over arrays and dictionaries.
|
||||
|
||||
Example:
|
||||
|
||||
var list = [ "a", "b", "c" ]
|
||||
|
||||
for (item in list) {
|
||||
log("Item: " + item)
|
||||
}
|
||||
|
||||
The loop body is evaluated once for each item in the array. The variable `item` is declared as a local
|
||||
variable just as if the `var` keyword had been used.
|
||||
|
||||
Iterating over dictionaries can be accomplished in a similar manner:
|
||||
|
||||
var dict = { a = 3, b = 7 }
|
||||
|
||||
for (key => value in dict) {
|
||||
log("Key: " + key + ", Value: " + value)
|
||||
}
|
||||
|
||||
## <a id="types"></a> Types
|
||||
|
||||
All values have a static type. The `typeof` function can be used to determine the type of a value:
|
||||
|
||||
typeof(3) /* Returns an object which represents the type for numbers */
|
||||
|
||||
The following built-in types are available:
|
||||
|
||||
Type | Examples | Description
|
||||
-----------|-------------------|------------------------
|
||||
Number | 3.7 | A numerical value.
|
||||
Boolean | true, false | A boolean value.
|
||||
String | "hello" | A string.
|
||||
Array | [ "a", "b" ] | An array.
|
||||
Dictionary | { a = 3 } | A dictionary.
|
||||
|
||||
Depending on which other libraries are loaded other types may become available. The `icinga`
|
||||
library implements a whole bunch of other types, e.g. Host, Service, CheckCommand, etc.
|
||||
|
||||
Each type has an associated type object which describes the type's semantics. These
|
||||
type objects are made available using global variables which match the type's name:
|
||||
|
||||
/* This logs 'true' */
|
||||
log(typeof(3) == Number)
|
||||
|
||||
The type object's `prototype` property can be used to find out which methods a certain type
|
||||
supports:
|
||||
|
||||
/* This returns: ["find","len","lower","replace","split","substr","to_string","upper"] */
|
||||
keys(String.prototype)
|
||||
|
||||
## <a id="reserved-keywords"></a> Reserved Keywords
|
||||
|
||||
These keywords are reserved and must not be used as constants or custom attributes.
|
||||
|
||||
object
|
||||
template
|
||||
include
|
||||
include_recursive
|
||||
library
|
||||
null
|
||||
true
|
||||
false
|
||||
const
|
||||
var
|
||||
this
|
||||
use
|
||||
apply
|
||||
to
|
||||
where
|
||||
import
|
||||
assign
|
||||
ignore
|
||||
function
|
||||
return
|
||||
for
|
||||
if
|
||||
else
|
||||
in
|
||||
|
||||
You can escape reserved keywords using the `@` character. The following example
|
||||
tries to set `vars.include` which references a reserved keyword and generates
|
||||
an error:
|
||||
|
||||
[2014-09-15 17:24:00 +0200] critical/config: Location:
|
||||
/etc/icinga2/conf.d/hosts/localhost.conf(13): vars.sla = "24x7"
|
||||
/etc/icinga2/conf.d/hosts/localhost.conf(14):
|
||||
/etc/icinga2/conf.d/hosts/localhost.conf(15): vars.include = "some cmdb export field"
|
||||
^^^^^^^
|
||||
/etc/icinga2/conf.d/hosts/localhost.conf(16): }
|
||||
/etc/icinga2/conf.d/hosts/localhost.conf(17):
|
||||
|
||||
Config error: in /etc/icinga2/conf.d/hosts/localhost.conf: 15:8-15:14: syntax error, unexpected include (T_INCLUDE), expecting T_IDENTIFIER
|
||||
[2014-09-15 17:24:00 +0200] critical/config: 1 errors, 0 warnings.
|
||||
|
||||
You can escape the `include` keyword by prefixing it with an additional `@` character:
|
||||
|
||||
object Host "localhost" {
|
||||
import "generic-host"
|
||||
|
||||
address = "127.0.0.1"
|
||||
address6 = "::1"
|
||||
|
||||
vars.os = "Linux"
|
||||
vars.sla = "24x7"
|
||||
|
||||
vars.@include = "some cmdb export field"
|
||||
}
|
||||
|
||||
## <a id="builtin-functions"></a> Built-in functions and methods
|
||||
|
||||
### <a id="global-functions"></a> Global functions
|
||||
|
||||
Function | Description
|
||||
--------------------------------|-----------------------
|
||||
regex(pattern, text) | Returns true if the regex pattern matches the text, false otherwise.
|
||||
match(pattern, text) | Returns true if the wildcard pattern matches the text, false otherwise.
|
||||
len(value) | Returns the length of the value, i.e. the number of elements for an array or dictionary, or the length of the string in bytes.
|
||||
union(array, array, ...) | Returns an array containing all unique elements from the specified arrays.
|
||||
intersection(array, array, ...) | Returns an array containing all unique elements which are common to all specified arrays.
|
||||
keys(dict) | Returns an array containing the dictionary's keys.
|
||||
string(value) | Converts the value to a string.
|
||||
number(value) | Converts the value to a number.
|
||||
bool(value) | Converts the value to a bool.
|
||||
random() | Returns a random value between 0 and RAND_MAX (as defined in stdlib.h).
|
||||
log(value) | Writes a message to the log. Non-string values are converted to a JSON string.
|
||||
log(severity, facility, value) | Writes a message to the log. `severity` can be one of `LogDebug`, `LogNotice`, `LogInformation`, `LogWarning`, and `LogCritical`. Non-string values are converted to a JSON string.
|
||||
exit(integer) | Terminates the application.
|
||||
|
||||
### <a id="number-type"></a> Number type
|
||||
|
||||
#### <a id="number-to_string"></a> Number#to_string
|
||||
|
||||
Signature:
|
||||
|
||||
function to_string();
|
||||
|
||||
The `to_string` method returns a string representation of the number.
|
||||
|
||||
Example:
|
||||
|
||||
var example = 7
|
||||
example.to_string() /* Returns "7" */
|
||||
|
||||
### <a id="boolean-type"></a> Boolean type
|
||||
|
||||
#### <a id="boolean-to_string"></a> Boolean#to_string
|
||||
|
||||
Signature:
|
||||
|
||||
function to_string();
|
||||
|
||||
The `to_string` method returns a string representation of the boolean value.
|
||||
|
||||
Example:
|
||||
|
||||
var example = true
|
||||
example.to_string() /* Returns "true" */
|
||||
|
||||
### <a id="string-type"></a> String type
|
||||
|
||||
#### <a id="string-find"></a> String#find
|
||||
|
||||
Signature:
|
||||
|
||||
function find(str, start);
|
||||
|
||||
Returns the zero-based index at which the string `str` was found in the string. If the string
|
||||
was not found -1 is returned. `start` specifies the zero-based index at which `find` should
|
||||
start looking for the string (defaults to 0 when not specified).
|
||||
|
||||
Example:
|
||||
|
||||
"Hello World".find("World") /* Returns 6 */
|
||||
|
||||
#### <a id="string-len"></a> String#len
|
||||
|
||||
Signature
|
||||
|
||||
function len();
|
||||
|
||||
Returns the length of the string in bytes. Note that depending on the encoding type of the string
|
||||
this is not necessarily the number of characters.
|
||||
|
||||
Example:
|
||||
|
||||
"Hello World".len() /* Returns 11 */
|
||||
|
||||
#### <a id="string-lower"></a> String#lower
|
||||
|
||||
Signature:
|
||||
|
||||
function lower();
|
||||
|
||||
Returns a copy of the string with all of its characters converted to lower-case.
|
||||
|
||||
Example:
|
||||
|
||||
"Hello World".lower() /* Returns "hello world" */
|
||||
|
||||
#### <a id="string-upper"></a> String#upper
|
||||
|
||||
Signature:
|
||||
|
||||
function upper();
|
||||
|
||||
Returns a copy of the string with all of its characters converted to upper-case.
|
||||
|
||||
Example:
|
||||
|
||||
"Hello World".upper() /* Returns "HELLO WORLD" */
|
||||
|
||||
#### <a id="string-replace"></a> String#replace
|
||||
|
||||
Signature:
|
||||
|
||||
function replace(search, replacement);
|
||||
|
||||
Returns a copy of the string with all occurences of the string specified in `search` replaced
|
||||
with the string specified in `replacement`.
|
||||
|
||||
#### <a id="string-split"></a> String#split
|
||||
|
||||
Signature:
|
||||
|
||||
function split(delimiters);
|
||||
|
||||
Splits a string into individual parts and returns them as an array. The `delimiters` argument
|
||||
specifies the characters which should be used as delimiters between parts.
|
||||
|
||||
Example:
|
||||
|
||||
"x-7,y".split("-,") /* Returns [ "x", "7", "y" ] */
|
||||
|
||||
#### <a id="string-substr"></a> String#substr
|
||||
|
||||
Signature:
|
||||
|
||||
function substr(start, len);
|
||||
|
||||
Returns a part of a string. The `start` argument specifies the zero-based index at which the part begins.
|
||||
The optional `len` argument specifies the length of the part ("until the end of the string" if omitted).
|
||||
|
||||
Example:
|
||||
|
||||
"Hello World".substr(6) /* Returns "World" */
|
||||
|
||||
#### <a id="string-to_string"></a> String#to_string
|
||||
|
||||
Signature:
|
||||
|
||||
function to_string();
|
||||
|
||||
Returns a copy of the string.
|
||||
|
||||
### <a id="scriptfunction-type"> ScriptFunction type
|
||||
|
||||
#### <a id="scriptfunction-call"> ScriptFunction#call
|
||||
|
||||
Signature:
|
||||
|
||||
function call(thisArg, ...);
|
||||
|
||||
Invokes the function using an alternative `this` scope. The `thisArg` argument specifies the `this`
|
||||
scope for the function. All other arguments are passed directly to the function.
|
||||
|
||||
Example:
|
||||
|
||||
function set_x(val) {
|
||||
this.x = val
|
||||
}
|
||||
|
||||
dict = {}
|
||||
|
||||
set_x.call(dict, 7) /* Invokes set_x using `dict` as `this` */
|
||||
|
||||
#### <a id="scriptfunction-callv"> ScriptFunction#callv
|
||||
|
||||
Signature:
|
||||
|
||||
function call(thisArg, args);
|
||||
|
||||
Invokes the function using an alternative `this` scope. The `thisArg` argument specifies the `this`
|
||||
scope for the function. The items in the `args` array are passed to the function as individual arguments.
|
||||
|
||||
Example:
|
||||
|
||||
function set_x(val) {
|
||||
this.x = val
|
||||
}
|
||||
|
||||
var dict = {}
|
||||
|
||||
var args = [ 7 ]
|
||||
|
||||
set_x.callv(dict, args) /* Invokes set_x using `dict` as `this` */
|
||||
|
||||
## <a id="object-types"></a> Object Types
|
||||
|
||||
|
@ -1351,7 +1715,7 @@ Attributes:
|
|||
|
||||
Metric prefix names can be modified using [runtime macros](#runtime-macros).
|
||||
|
||||
Example with your custom [global constant](#global-constants) `GraphiteEnv`:
|
||||
Example with your custom [global constant](#constants) `GraphiteEnv`:
|
||||
|
||||
const GraphiteEnv = "icinga.env1"
|
||||
|
||||
|
|
|
@ -773,7 +773,7 @@ included in `icinga2.conf` by default.
|
|||
### <a id="differences-1x-2-main-config"></a> Main Config File
|
||||
|
||||
In Icinga 1.x there are many global configuration settings available in `icinga.cfg`.
|
||||
Icinga 2 only uses a small set of [global constants](#global-constants) allowing
|
||||
Icinga 2 only uses a small set of [global constants](#constants) allowing
|
||||
you to specify certain different setting such as the `NodeName` in a cluster scenario.
|
||||
|
||||
Aside from that, the [icinga2.conf](#icinga2-conf) should take care of including
|
||||
|
@ -826,7 +826,7 @@ set in the `constants.conf` configuration file:
|
|||
|
||||
const PluginDir = "/usr/lib/nagios/plugins"
|
||||
|
||||
[Global macros](#global-constants) can only be defined once. Trying to modify a
|
||||
[Global macros](#constants) can only be defined once. Trying to modify a
|
||||
global constant will result in an error.
|
||||
|
||||
### <a id="differences-1x-2-configuration-comments"></a> Configuration Comments
|
||||
|
|
Loading…
Reference in New Issue