mirror of
https://github.com/Icinga/icinga2.git
synced 2025-04-08 17:05:25 +02:00
commit
2bebb92b35
@ -173,7 +173,7 @@ git clone git@git.icinga.com:packaging/rpm-icinga2.git && cd rpm-icinga2
|
||||
git clone git@git.icinga.com:packaging/deb-icinga2.git && cd deb-icinga2
|
||||
```
|
||||
|
||||
#### Raspbian Packages
|
||||
### Raspbian Packages
|
||||
|
||||
```bash
|
||||
git clone git@git.icinga.com:packaging/raspbian-icinga2.git && cd raspbian-icinga2
|
||||
|
@ -7,7 +7,7 @@ the availability of your network resources, notifies users of outages, and gener
|
||||
performance data for reporting.
|
||||
|
||||
Scalable and extensible, Icinga can monitor large, complex environments across
|
||||
multiple locations.
|
||||
multiple locations. This includes your data center as well as your private, public, or hybrid clouds.
|
||||
|
||||
Icinga 2 is the monitoring server and requires [Icinga Web 2](https://icinga.com/products/)
|
||||
on top in your Icinga Stack. The [configuration](https://icinga.com/products/configuration/)
|
||||
|
@ -23,18 +23,18 @@ We recommend using our official repositories. Here's how to add it to your syste
|
||||
### Debian Repository <a id="debian-repository"></a>
|
||||
|
||||
```bash
|
||||
apt-get update
|
||||
apt-get -y install apt-transport-https wget gnupg
|
||||
apt update
|
||||
apt -y install apt-transport-https wget gnupg
|
||||
|
||||
wget -O - https://packages.icinga.com/icinga.key | apt-key add -
|
||||
wget -O - https://packages.icinga.com/icinga.key | gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpg
|
||||
|
||||
DIST=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release); \
|
||||
echo "deb https://packages.icinga.com/debian icinga-${DIST} main" > \
|
||||
echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/debian icinga-${DIST} main" > \
|
||||
/etc/apt/sources.list.d/${DIST}-icinga.list
|
||||
echo "deb-src https://packages.icinga.com/debian icinga-${DIST} main" >> \
|
||||
echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/debian icinga-${DIST} main" >> \
|
||||
/etc/apt/sources.list.d/${DIST}-icinga.list
|
||||
|
||||
apt-get update
|
||||
apt update
|
||||
```
|
||||
|
||||
#### Debian Backports Repository <a id="debian-backports-repository"></a>
|
||||
@ -48,7 +48,7 @@ DIST=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release); \
|
||||
echo "deb https://deb.debian.org/debian ${DIST}-backports main" > \
|
||||
/etc/apt/sources.list.d/${DIST}-backports.list
|
||||
|
||||
apt-get update
|
||||
apt update
|
||||
```
|
||||
|
||||
<!-- {% endif %} -->
|
||||
@ -57,18 +57,18 @@ apt-get update
|
||||
### Ubuntu Repository <a id="ubuntu-repository"></a>
|
||||
|
||||
```bash
|
||||
apt-get update
|
||||
apt-get -y install apt-transport-https wget gnupg
|
||||
apt update
|
||||
apt -y install apt-transport-https wget gnupg
|
||||
|
||||
wget -O - https://packages.icinga.com/icinga.key | apt-key add -
|
||||
wget -O - https://packages.icinga.com/icinga.key | gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpg
|
||||
|
||||
. /etc/os-release; if [ ! -z ${UBUNTU_CODENAME+x} ]; then DIST="${UBUNTU_CODENAME}"; else DIST="$(lsb_release -c| awk '{print $2}')"; fi; \
|
||||
echo "deb https://packages.icinga.com/ubuntu icinga-${DIST} main" > \
|
||||
echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu icinga-${DIST} main" > \
|
||||
/etc/apt/sources.list.d/${DIST}-icinga.list
|
||||
echo "deb-src https://packages.icinga.com/ubuntu icinga-${DIST} main" >> \
|
||||
echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu icinga-${DIST} main" >> \
|
||||
/etc/apt/sources.list.d/${DIST}-icinga.list
|
||||
|
||||
apt-get update
|
||||
apt update
|
||||
```
|
||||
<!-- {% endif %} -->
|
||||
|
||||
@ -76,18 +76,18 @@ apt-get update
|
||||
### Raspbian Repository <a id="raspbian-repository"></a>
|
||||
|
||||
```bash
|
||||
apt-get update
|
||||
apt-get -y install apt-transport-https wget gnupg
|
||||
apt update
|
||||
apt -y install apt-transport-https wget gnupg
|
||||
|
||||
wget -O - https://packages.icinga.com/icinga.key | apt-key add -
|
||||
wget -O - https://packages.icinga.com/icinga.key | gpg --dearmor -o /usr/share/keyrings/icinga-archive-keyring.gpg
|
||||
|
||||
DIST=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release); \
|
||||
echo "deb https://packages.icinga.com/raspbian icinga-${DIST} main" > \
|
||||
echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/raspbian icinga-${DIST} main" > \
|
||||
/etc/apt/sources.list.d/icinga.list
|
||||
echo "deb-src https://packages.icinga.com/raspbian icinga-${DIST} main" >> \
|
||||
echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/raspbian icinga-${DIST} main" >> \
|
||||
/etc/apt/sources.list.d/icinga.list
|
||||
|
||||
apt-get update
|
||||
apt update
|
||||
```
|
||||
<!-- {% endif %} -->
|
||||
|
||||
@ -151,7 +151,8 @@ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.r
|
||||
|
||||
```bash
|
||||
rpm --import https://packages.icinga.com/icinga.key
|
||||
dnf install https://packages.icinga.com/fedora/icinga-rpm-release-$(. /etc/os-release; echo "$VERSION_ID")-latest.noarch.rpm
|
||||
dnf install -y 'dnf-command(config-manager)'
|
||||
dnf config-manager --add-repo https://packages.icinga.com/fedora/$(. /etc/os-release; echo "$VERSION_ID")/release
|
||||
```
|
||||
<!-- {% endif %} -->
|
||||
|
||||
@ -247,7 +248,7 @@ with `root` permissions unless noted otherwise.
|
||||
#### Debian / Ubuntu / Raspbian
|
||||
<!-- {% endif %} -->
|
||||
```bash
|
||||
apt-get install icinga2
|
||||
apt install icinga2
|
||||
```
|
||||
<!-- {% endif %} -->
|
||||
|
||||
@ -359,7 +360,7 @@ to determine where to find the plugin binaries.
|
||||
#### Debian / Ubuntu / Raspbian
|
||||
<!-- {% endif %} -->
|
||||
```bash
|
||||
apt-get install monitoring-plugins
|
||||
apt install monitoring-plugins
|
||||
```
|
||||
<!-- {% endif %} -->
|
||||
|
||||
@ -411,7 +412,7 @@ as part of the [server:monitoring repository](https://build.opensuse.org/project
|
||||
Please make sure to enable this repository beforehand.
|
||||
|
||||
```bash
|
||||
zypper install monitoring-plugins
|
||||
zypper install --recommends monitoring-plugins-all
|
||||
```
|
||||
<!-- {% endif %} -->
|
||||
|
||||
@ -530,7 +531,7 @@ yum install icingadb-redis
|
||||
##### Debian / Ubuntu
|
||||
<!-- {% endif %} -->
|
||||
```bash
|
||||
apt-get install icingadb-redis
|
||||
apt install icingadb-redis
|
||||
```
|
||||
<!-- {% endif %} -->
|
||||
|
||||
|
@ -1,2 +1,3 @@
|
||||
# Install Icinga 2 on Fedora
|
||||
<!-- {% set fedora = True %} -->
|
||||
<!-- {% include "02-installation.md" %} -->
|
||||
|
@ -1572,12 +1572,18 @@ send notifications to all group members.
|
||||
> Only users who have been notified of a problem before (`Warning`, `Critical`, `Unknown`
|
||||
states for services, `Down` for hosts) will receive `Recovery` notifications.
|
||||
|
||||
Icinga 2 v2.10 allows you to configure `Acknowledgement` and/or `Recovery`
|
||||
Icinga 2 v2.10 allows you to configure a `User` object with `Acknowledgement` and/or `Recovery`
|
||||
without a `Problem` notification. These notifications will be sent without
|
||||
any problem notifications beforehand, and can be used for e.g. ticket systems.
|
||||
|
||||
```
|
||||
object User "ticketadmin" {
|
||||
display_name = "Ticket Admin"
|
||||
enable_notifications = true
|
||||
states = [ OK, Warning, Critical ]
|
||||
types = [ Acknowledgement, Recovery ]
|
||||
email = "ticket@localhost"
|
||||
}
|
||||
```
|
||||
|
||||
### Notifications: Users from Host/Service <a id="alert-notifications-users-host-service"></a>
|
||||
@ -1817,8 +1823,14 @@ Sometimes the problem in question should not be announced when the notification
|
||||
(the object reaching the `HARD` state), but after a certain period. In Icinga 2
|
||||
you can use the `times` dictionary and set `begin = 15m` as key and value if you want to
|
||||
postpone the notification window for 15 minutes. Leave out the `end` key -- if not set,
|
||||
Icinga 2 will not check against any end time for this notification. Make sure to
|
||||
specify a relatively low notification `interval` to get notified soon enough again.
|
||||
Icinga 2 will not check against any end time for this notification.
|
||||
|
||||
> **Note**
|
||||
>
|
||||
> Setting the `end` key to `0` will stop sending notifications immediately
|
||||
> when a problem occurs, effectively disabling the notification.
|
||||
|
||||
Make sure to specify a relatively low notification `interval` to get notified soon enough again.
|
||||
|
||||
```
|
||||
apply Notification "mail" to Service {
|
||||
@ -1835,6 +1847,10 @@ apply Notification "mail" to Service {
|
||||
}
|
||||
```
|
||||
|
||||
Also note that this mechanism doesn't take downtimes etc. into account, only
|
||||
the `HARD` state change time matters. E.g. for a problem which occurred in the
|
||||
middle of a downtime from 2 PM to 4 PM `times.begin = 2h` means 5 PM, not 6 PM.
|
||||
|
||||
### Disable Re-notifications <a id="disable-renotification"></a>
|
||||
|
||||
If you prefer to be notified only once, you can disable re-notifications by setting the
|
||||
|
@ -343,7 +343,7 @@ object Host NodeName {
|
||||
vars.http_vhosts["http"] = {
|
||||
http_uri = "/"
|
||||
}
|
||||
/* Uncomment if you've sucessfully installed Icinga Web 2. */
|
||||
/* Uncomment if you've successfully installed Icinga Web 2. */
|
||||
//vars.http_vhosts["Icinga Web 2"] = {
|
||||
// http_uri = "/icingaweb2"
|
||||
//}
|
||||
|
@ -898,7 +898,7 @@ Instead, choose a plugin and configure its parameters and thresholds. The follow
|
||||
* [running_kernel](10-icinga-template-library.md#plugin-contrib-command-running_kernel)
|
||||
* package management: [apt](10-icinga-template-library.md#plugin-check-command-apt), [yum](10-icinga-template-library.md#plugin-contrib-command-yum), etc.
|
||||
* [ssh](10-icinga-template-library.md#plugin-check-command-ssh)
|
||||
* performance: [iostat](10-icinga-template-library.md#plugin-contrib-command-iostat), [check_sar_perf](https://github.com/dnsmichi/icinga-plugins/blob/master/scripts/check_sar_perf.py)
|
||||
* performance: [iostat](10-icinga-template-library.md#plugin-contrib-command-iostat), [check_sar_perf](https://github.com/NETWAYS/check-sar-perf)
|
||||
|
||||
### Windows Monitoring <a id="service-monitoring-windows"></a>
|
||||
|
||||
|
@ -477,7 +477,7 @@ Configuration Attributes:
|
||||
vars | Dictionary | **Optional.** A dictionary containing custom variables that are specific to this notification object.
|
||||
users | Array of object names | **Required.** A list of user names who should be notified. **Optional.** if the `user_groups` attribute is set.
|
||||
user\_groups | Array of object names | **Required.** A list of user group names who should be notified. **Optional.** if the `users` attribute is set.
|
||||
times | Dictionary | **Optional.** A dictionary containing `begin` and `end` attributes for the notification.
|
||||
times | Dictionary | **Optional.** A dictionary containing `begin` and `end` attributes for the notification. If `end` is set to 0, `Notifications` are disabled permanently. Please read the [notification delay](03-monitoring-basics.md#notification-delay) chapter for details.
|
||||
command | Object name | **Required.** The name of the notification command which should be executed when the notification is triggered.
|
||||
interval | Duration | **Optional.** The notification interval (in seconds). This interval is used for active notifications. Defaults to 30 minutes. If set to 0, [re-notifications](03-monitoring-basics.md#disable-renotification) are disabled.
|
||||
period | Object name | **Optional.** The name of a time period which determines when this notification should be triggered. Not set by default (effectively 24x7).
|
||||
@ -1494,6 +1494,11 @@ Cleanup Items:
|
||||
servicechecks\_age | Duration | **Optional.** Max age for servicechecks table rows (start\_time). Defaults to 0 (never).
|
||||
systemcommands\_age | Duration | **Optional.** Max age for systemcommands table rows (start\_time). Defaults to 0 (never).
|
||||
|
||||
> **Supported units**
|
||||
>
|
||||
> Supported suffixes include ms (milliseconds), s (seconds), m (minutes), h (hours) and d (days).
|
||||
> Check the [language reference](17-language-reference.md#duration-literals).
|
||||
|
||||
Data Categories:
|
||||
|
||||
Name | Description | Required by
|
||||
@ -1593,6 +1598,11 @@ Cleanup Items:
|
||||
servicechecks\_age | Duration | **Optional.** Max age for servicechecks table rows (start\_time). Defaults to 0 (never).
|
||||
systemcommands\_age | Duration | **Optional.** Max age for systemcommands table rows (start\_time). Defaults to 0 (never).
|
||||
|
||||
> **Supported units**
|
||||
>
|
||||
> Supported suffixes include ms (milliseconds), s (seconds), m (minutes), h (hours) and d (days).
|
||||
> Check the [language reference](17-language-reference.md#duration-literals).
|
||||
|
||||
Data Categories:
|
||||
|
||||
Name | Description | Required by
|
||||
|
@ -3507,7 +3507,7 @@ mem_critical | **Required.** Specify the critical threshold as number interprete
|
||||
|
||||
#### sar-perf <a id="plugin-contrib-command-sar-perf"></a>
|
||||
|
||||
The [check_sar_perf.py](https://github.com/dnsmichi/check-sar-perf)
|
||||
The [check_sar_perf.py](https://github.com/NETWAYS/check-sar-perf)
|
||||
plugin collects performance metrics from Linux hosts using the `sar` binary available in the `sysstat` package.
|
||||
|
||||
Custom variables passed as [command parameters](03-monitoring-basics.md#command-passing-parameters):
|
||||
|
@ -1393,7 +1393,7 @@ Example for scheduling a downtime for all `ping4` services:
|
||||
```bash
|
||||
curl -k -s -S -i -u root:icinga -H 'Accept: application/json' \
|
||||
-X POST 'https://localhost:5665/v1/actions/schedule-downtime' \
|
||||
-d '{ "type": "Service", "filter": "service.name==\"ping4\"", "start_time": 1446388806, "end_time": 1446389806, "duration": 1000, "author": "icingaadmin", "comment": "IPv4 network maintenance", "pretty": true }'
|
||||
-d '{ "type": "Service", "filter": "service.name==\"ping4\"", "start_time": 1446388806, "end_time": 1446389806, "author": "icingaadmin", "comment": "IPv4 network maintenance", "pretty": true }'
|
||||
```
|
||||
|
||||
```json
|
||||
|
@ -176,6 +176,60 @@ C:\> cd C:\ProgramData\icinga2\var\log\icinga2
|
||||
C:\ProgramData\icinga2\var\log\icinga2> Get-Content .\debug.log -tail 10 -wait
|
||||
```
|
||||
|
||||
## Icinga starts/restarts/reloads very slowly
|
||||
|
||||
Icinga performs a lot of memory allocations, especially during startup.
|
||||
Swapping out the allocator may increase the startup performance.
|
||||
The following instructions assume you run Linux and systemd.
|
||||
|
||||
On RHEL or derivates add the EPEL repository first (if not already done).
|
||||
Let your package manager search for package names containing "jemalloc".
|
||||
Pick preferably one named "libjemalloc" followed by a number,
|
||||
just "jemalloc" otherwise, and install it.
|
||||
|
||||
Run `ldconfig -p |grep libjemalloc`. It should print something similar to:
|
||||
|
||||
```
|
||||
libjemalloc.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libjemalloc.so.2
|
||||
```
|
||||
|
||||
I.e. a relative file name followed by an absolute one. Remember the latter.
|
||||
|
||||
Measure how long Icinga needs to load its config without and with libjemalloc:
|
||||
|
||||
```bash
|
||||
time icinga2 daemon -C
|
||||
|
||||
time env LD_PRELOAD=/lib/x86_64-linux-gnu/libjemalloc.so.2 icinga2 daemon -C
|
||||
```
|
||||
|
||||
Replace `/lib/x86_64-linux-gnu/libjemalloc.so.2` with the absolute path
|
||||
you actually got from `ldconfig -p`!
|
||||
|
||||
Please do us a favor and share your results
|
||||
[with us](https://community.icinga.com/t/icinga-reloads-config-slowly-try-jemalloc/11032).
|
||||
|
||||
If it's faster with libjemalloc, do the following to persist the change.
|
||||
|
||||
Run `systemctl edit icinga2.service`. This will open an editor.
|
||||
Add the following, save the file and close the editor.
|
||||
|
||||
```
|
||||
[Service]
|
||||
Environment=LD_PRELOAD=/lib/x86_64-linux-gnu/libjemalloc.so.2
|
||||
```
|
||||
|
||||
Replace `/lib/x86_64-linux-gnu/libjemalloc.so.2` with the absolute path
|
||||
you actually got from `ldconfig -p`!
|
||||
|
||||
Restart Icinga. Verify whether your changes took effect and enjoy the speed:
|
||||
|
||||
```
|
||||
# lsof -p `cat /var/run/icinga2/icinga2.pid` |grep libjemalloc
|
||||
icinga2 7764 nagios mem REG 8,5 744776 2631636 /usr/lib/x86_64-linux-gnu/libjemalloc.so.2
|
||||
#
|
||||
```
|
||||
|
||||
## Configuration Troubleshooting <a id="troubleshooting-configuration"></a>
|
||||
|
||||
### List Configuration Objects <a id="troubleshooting-list-configuration-objects"></a>
|
||||
@ -1628,53 +1682,26 @@ In order to solve this problem, remove the mentioned files from `zones.d` and us
|
||||
of syncing plugin binaries to your satellites and agents.
|
||||
|
||||
|
||||
#### Zones in Zones doesn't work <a id="troubleshooting-cluster-config-zones-in-zones"></a>
|
||||
#### Zones in Zones <a id="troubleshooting-cluster-config-zones-in-zones"></a>
|
||||
|
||||
The cluster config sync works in the way that configuration
|
||||
put into `/etc/icinga2/zones.d` only is included when configured
|
||||
outside in `/etc/icinga2/zones.conf`.
|
||||
The cluster config sync works in a such manner that any `/etc/icinga2/zones.d/` subdirectory is included only when it is
|
||||
named after a known zone by the local `Endpoint`.
|
||||
|
||||
If you for example create a "Zone Inception" with defining the
|
||||
`satellite` zone in `zones.d/master`, the config compiler does not
|
||||
re-run and include this zone config recursively from `zones.d/satellite`.
|
||||
If you for example add some configs in to `zones.d/satellite` and forgot to define the `satellite` zone
|
||||
in `zones.d/master` or outside in `/etc/icinga2/zones.conf`, the config compiler will not include
|
||||
this config from the `zones.d/satellite` zone directory.
|
||||
|
||||
Since v2.11, the config compiler is only including directories where a
|
||||
zone has been configured. Otherwise it would include renamed old zones,
|
||||
zone has been configured. Otherwise, it would include renamed old zones,
|
||||
broken zones, etc. and those long-lasting bugs have been now fixed.
|
||||
|
||||
A more concrete example: Masters and Satellites still need to know the Zone hierarchy outside of `zones.d` synced configuration.
|
||||
Here are some working examples:
|
||||
|
||||
**Doesn't work**
|
||||
**Example: Everything in `zones.conf`**
|
||||
|
||||
```
|
||||
vim /etc/icinga2/zones.conf
|
||||
|
||||
object Zone "master" {
|
||||
endpoints = [ "icinga2-master1.localdomain", "icinga2-master2.localdomain" ]
|
||||
}
|
||||
```
|
||||
|
||||
```
|
||||
vim /etc/icinga2/zones.d/master/satellite-zones.conf
|
||||
|
||||
object Zone "satellite" {
|
||||
endpoints = [ "icinga2-satellite1.localdomain", "icinga2-satellite1.localdomain" ]
|
||||
}
|
||||
```
|
||||
|
||||
```
|
||||
vim /etc/icinga2/zones.d/satellite/satellite-hosts.conf
|
||||
|
||||
object Host "agent" { ... }
|
||||
```
|
||||
|
||||
The `agent` host object will never reach the satellite, since the master does not have
|
||||
the `satellite` zone configured outside of zones.d.
|
||||
|
||||
|
||||
**Works**
|
||||
|
||||
Each instance needs to know this, and know about the endpoints first:
|
||||
Each instance needs to know the `Zone` and `Endpoint` definitions for itself and all directly connected instances in order
|
||||
to successfully establish a connection with each other. This can be achieved by placing all `Endpoint` and `Zone` definitions
|
||||
of all Icinga 2 instances known by the local endpoint in this single file.
|
||||
|
||||
```
|
||||
vim /etc/icinga2/zones.conf
|
||||
@ -1682,24 +1709,41 @@ vim /etc/icinga2/zones.conf
|
||||
object Endpoint "icinga2-master1.localdomain" { ... }
|
||||
object Endpoint "icinga2-master2.localdomain" { ... }
|
||||
|
||||
object Endpoint "icinga2-satellite1.localdomain" { ... }
|
||||
object Endpoint "icinga2-satellite2.localdomain" { ... }
|
||||
```
|
||||
|
||||
Then the zone hierarchy as trust and also config sync inclusion is required.
|
||||
|
||||
```
|
||||
vim /etc/icinga2/zones.conf
|
||||
|
||||
object Zone "master" {
|
||||
endpoints = [ "icinga2-master1.localdomain", "icinga2-master2.localdomain" ]
|
||||
}
|
||||
|
||||
object Endpoint "icinga2-satellite1.localdomain" { ... }
|
||||
object Endpoint "icinga2-satellite2.localdomain" { ... }
|
||||
|
||||
object Zone "satellite" {
|
||||
endpoints = [ "icinga2-satellite1.localdomain", "icinga2-satellite1.localdomain" ]
|
||||
parent = "master"
|
||||
}
|
||||
```
|
||||
|
||||
**Example: Child zones in `zones.d/`**
|
||||
|
||||
An additional option that Icinga 2 offers is the possibility to outsource all *child* `Endpoint` definitions of the
|
||||
local Icinga 2 instance to the `zones.d/` directory. As an example, we can place the satellite `Zone` and `Endpoint` definition
|
||||
from the above example into `zones.d/` underneath a directory named exactly like the local endpoint `Zone` name, which
|
||||
in our case is `master`.
|
||||
|
||||
```
|
||||
mkdir /etc/icinga2/zones.d/master
|
||||
vim /etc/icinga2/zones.d/master/satellite.conf
|
||||
|
||||
object Endpoint "icinga2-satellite1.localdomain" { ... }
|
||||
object Endpoint "icinga2-satellite2.localdomain" { ... }
|
||||
|
||||
object Zone "satellite" {
|
||||
endpoints = [ "icinga2-satellite1.localdomain", "icinga2-satellite1.localdomain" ]
|
||||
parent = "master"
|
||||
}
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
Once done, you can start deploying actual monitoring objects into the satellite zone.
|
||||
|
||||
```
|
||||
@ -1708,10 +1752,12 @@ vim /etc/icinga2/zones.d/satellite/satellite-hosts.conf
|
||||
object Host "agent" { ... }
|
||||
```
|
||||
|
||||
That's also explained and described in the [documentation](06-distributed-monitoring.md#distributed-monitoring-scenarios-master-satellite-agents).
|
||||
Keep in mind that the `agent` host object will never reach the satellite, when the master does not have the
|
||||
`satellite` zone configured either in `zones.d/master` nor outside the `zones.d` directory. That's also explained and
|
||||
described in the [documentation](06-distributed-monitoring.md#distributed-monitoring-scenarios-master-satellite-agents).
|
||||
|
||||
The thing you can do: For `command_endpoint` agents like inside the Director:
|
||||
Host -> Agent -> yes, there is no config sync for this zone in place. Therefore
|
||||
Host -> Agent -> yes, there is no config sync for this zone in place. Therefore,
|
||||
it is valid to just sync their zones via the config sync.
|
||||
|
||||
#### Director Changes
|
||||
|
@ -204,8 +204,8 @@ Operator | Precedence | Examples (Result) | Descript
|
||||
`&` | 9 | 7 & 3 (3) | Binary AND
|
||||
`^` | 10 | 17 ^ 12 (29) | Bitwise XOR
|
||||
<code>|</code> | 11 | 2 | 3 (3) | Binary OR
|
||||
<code>||</code> | 12 | true || false (true), 0 || 7 (7)| Logical OR
|
||||
`&&` | 13 | true && false (false), 3 && 7 (7), 0 && 7 (0) | Logical AND
|
||||
`&&` | 12 | true && false (false), 3 && 7 (7), 0 && 7 (0) | Logical AND
|
||||
<code>||</code> | 13 | true || false (true), 0 || 7 (7)| Logical OR
|
||||
`=` | 14 | a = 3 | Assignment
|
||||
`=>` | 15 | x => x * x (function with arg x) | Lambda, for loop
|
||||
`?` | 16 | (2 * 3 > 5) ? 1 : 0 (1) | [Ternary operator](17-language-reference.md#conditional-statements-ternary)
|
||||
|
@ -1839,7 +1839,7 @@ The returned messages are synced directly to the sender's endpoint, no cluster b
|
||||
|
||||
> **Note**: EventCommand errors are just logged on the remote endpoint.
|
||||
|
||||
### event::UpdateExecutions <a id="technical-concepts-json-rpc-messages-event-updateexecutions"></a>
|
||||
#### event::UpdateExecutions <a id="technical-concepts-json-rpc-messages-event-updateexecutions"></a>
|
||||
|
||||
> Location: `clusterevents.cpp`
|
||||
|
||||
@ -1873,7 +1873,7 @@ Message updates will be dropped when:
|
||||
* Checkable does not exist.
|
||||
* Origin endpoint's zone is not allowed to access this checkable.
|
||||
|
||||
### event::ExecutedCommand <a id="technical-concepts-json-rpc-messages-event-executedcommand"></a>
|
||||
#### event::ExecutedCommand <a id="technical-concepts-json-rpc-messages-event-executedcommand"></a>
|
||||
|
||||
> Location: `clusterevents.cpp`
|
||||
|
||||
|
@ -1766,13 +1766,13 @@ cd .\build\
|
||||
-DBoost_INCLUDE_DIR=C:\local\boost_1_80_0-Win64 `
|
||||
-DBISON_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_bison.exe `
|
||||
-DFLEX_EXECUTABLE=C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_flex.exe `
|
||||
-DICINGA2_WITH_MYSQL=OFF -DICINGA2_WITH_PGSQL=OFF ..
|
||||
-DICINGA2_WITH_MYSQL=OFF -DICINGA2_WITH_PGSQL=OFF -DICINGA2_UNITY_BUILD=OFF ..
|
||||
|
||||
& "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe" .\icinga2.sln
|
||||
```
|
||||
|
||||
Building icinga2.sln via Visual Studio itself seems to require a reboot
|
||||
after installing the build tools and building once via command line.
|
||||
after installing the build tools.
|
||||
|
||||
#### Chocolatey
|
||||
|
||||
|
@ -30,7 +30,7 @@ object Host NodeName {
|
||||
vars.http_vhosts["http"] = {
|
||||
http_uri = "/"
|
||||
}
|
||||
/* Uncomment if you've sucessfully installed Icinga Web 2. */
|
||||
/* Uncomment if you've successfully installed Icinga Web 2. */
|
||||
//vars.http_vhosts["Icinga Web 2"] = {
|
||||
// http_uri = "/icingaweb2"
|
||||
//}
|
||||
|
Loading…
x
Reference in New Issue
Block a user