From 35caef4e6cb4a3ea0718c86cca6ad938568d1765 Mon Sep 17 00:00:00 2001 From: Michael Friedrich Date: Wed, 20 Nov 2019 15:59:36 +0100 Subject: [PATCH] Docs: Update installation for RHEL/CentOS 8 and SLES 15 --- doc/02-installation.md | 330 ++++++++++++++++++++++++----------------- doc/14-features.md | 2 +- 2 files changed, 199 insertions(+), 133 deletions(-) diff --git a/doc/02-installation.md b/doc/02-installation.md index eab58f7f5..f0128a1e4 100644 --- a/doc/02-installation.md +++ b/doc/02-installation.md @@ -118,6 +118,12 @@ apt-get update #### RHEL/CentOS/Fedora Repositories +RHEL/CentOS 8: + +``` +dnf install https://packages.icinga.com/epel/icinga-rpm-release-8-latest.noarch.rpm +``` + RHEL/CentOS 7: ``` @@ -130,10 +136,10 @@ RHEL/CentOS 6 x64: yum install https://packages.icinga.com/epel/icinga-rpm-release-6-latest.noarch.rpm ``` -Fedora 29: +Fedora 31: ``` -dnf install https://packages.icinga.com/fedora/icinga-rpm-release-29-latest.noarch.rpm +dnf install https://packages.icinga.com/fedora/icinga-rpm-release-31-latest.noarch.rpm ``` ##### RHEL/CentOS EPEL Repository @@ -141,14 +147,34 @@ dnf install https://packages.icinga.com/fedora/icinga-rpm-release-29-latest.noar The packages for RHEL/CentOS depend on other packages which are distributed as part of the [EPEL repository](https://fedoraproject.org/wiki/EPEL). +CentOS 8 additionally needs the PowerTools repository for EPEL: + +``` +dnf install 'dnf-command(config-manager)' +dnf config-manager --set-enabled PowerTools + +dnf install epel-release +``` + CentOS 7/6: ``` yum install epel-release ``` -If you are using RHEL 6 or 7 you need to additionally enable the `optional` repository before installing -the [EPEL rpm package](https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F). +If you are using RHEL you need to additionally enable the `optional` and `codeready-builder` +repository before installing the [EPEL rpm package](https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F). + +RHEL 8: + +``` +ARCH=$( /bin/arch ) + +subscription-manager repos --enable rhel-8-server-optional-rpms +subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms" + +dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm +``` RHEL 7: @@ -189,8 +215,6 @@ zypper ref #### Alpine Linux Repositories -Alpine Linux: - ``` echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories @@ -214,7 +238,15 @@ Debian/Ubuntu: apt-get install icinga2 ``` -RHEL/CentOS 7 and Fedora: +RHEL/CentOS 8 and Fedora: + +``` +dnf install icinga2 +systemctl enable icinga2 +systemctl start icinga2 +``` + +RHEL/CentOS 7: ``` yum install icinga2 @@ -248,65 +280,6 @@ Alpine Linux: apk add icinga2 ``` -### Enabled Features during Installation - -The default installation will enable three features required for a basic -Icinga 2 installation: - -* `checker` for executing checks -* `notification` for sending notifications -* `mainlog` for writing the `icinga2.log` file - -You can verify that by calling `icinga2 feature list` -[CLI command](11-cli-commands.md#cli-command-feature) to see which features are -enabled and disabled. - -``` -# icinga2 feature list -Disabled features: api command compatlog debuglog gelf graphite icingastatus ido-mysql ido-pgsql influxdb livestatus opentsdb perfdata statusdata syslog -Enabled features: checker mainlog notification -``` - -### Installation Paths - -By default Icinga 2 uses the following files and directories: - - Path | Description - ----------------------------------------------|------------------------------------ - /etc/icinga2 | Contains Icinga 2 configuration files. - /usr/lib/systemd/system/icinga2.service | The Icinga 2 systemd service file on systems using systemd. - /etc/systemd/system/icinga2.service.d/limits.conf | On distributions with systemd >227, additional service limits are required. - /etc/init.d/icinga2 | The Icinga 2 init script on systems using SysVinit or OpenRC. - /usr/sbin/icinga2 | Shell wrapper for the Icinga 2 binary. - /usr/lib\*/icinga2 | Libraries and the Icinga 2 binary (use `find /usr -type f -name icinga2` to locate the binary path). - /usr/share/doc/icinga2 | Documentation files that come with Icinga 2. - /usr/share/icinga2/include | The Icinga Template Library and plugin command configuration. - /var/lib/icinga2 | Icinga 2 state file, cluster log, master CA, node certificates and configuration files (cluster, api). - /var/run/icinga2 | PID file. - /var/run/icinga2/cmd | Command pipe and Livestatus socket. - /var/cache/icinga2 | status.dat/objects.cache, icinga2.debug files. - /var/spool/icinga2 | Used for performance data spool files. - /var/log/icinga2 | Log file location and compat/ directory for the CompatLogger feature. - -FreeBSD uses slightly different paths: - -By default Icinga 2 uses the following files and directories: - - Path | Description - ------------------------------------|------------------------------------ - /usr/local/etc/icinga2 | Contains Icinga 2 configuration files. - /usr/local/etc/rc.d/icinga2 | The Icinga 2 init script. - /usr/local/sbin/icinga2 | Shell wrapper for the Icinga 2 binary. - /usr/local/lib/icinga2 | Libraries and the Icinga 2 binary. - /usr/local/share/doc/icinga2 | Documentation files that come with Icinga 2. - /usr/local/share/icinga2/include | The Icinga Template Library and plugin command configuration. - /var/lib/icinga2 | Icinga 2 state file, cluster log, master CA, node certificates and configuration files (cluster, api). - /var/run/icinga2 | PID file. - /var/run/icinga2/cmd | Command pipe and Livestatus socket. - /var/cache/icinga2 | status.dat/objects.cache, icinga2.debug files. - /var/spool/icinga2 | Used for performance data spool files. - /var/log/icinga2 | Log file location and compat/ directory for the CompatLogger feature. - ## Setting up Check Plugins Without plugins Icinga 2 does not know how to check external services. The @@ -322,62 +295,15 @@ popular operating systems/distributions: OS/Distribution | Package Name | Repository | Installation Path -----------------------|--------------------|---------------------------|---------------------------- -RHEL/CentOS | nagios-plugins-all | [EPEL](https://fedoraproject.org/wiki/EPEL) | /usr/lib/nagios/plugins or /usr/lib64/nagios/plugins +RHEL/CentOS | nagios-plugins-all | [EPEL](02-installation.md#package-repositories-rhel-epel) | /usr/lib64/nagios/plugins SLES/OpenSUSE | monitoring-plugins | [server:monitoring](https://build.opensuse.org/project/repositories/server:monitoring) | /usr/lib/nagios/plugins Debian/Ubuntu | monitoring-plugins | - | /usr/lib/nagios/plugins FreeBSD | monitoring-plugins | - | /usr/local/libexec/nagios Alpine Linux | monitoring-plugins | - | /usr/lib/monitoring-plugins -macOS | monitoring-plugins | [MacPorts](https://www.macports.org), [Homebrew](https://brew.sh) | /opt/local/libexec or /usr/local/sbin The recommended way of installing these standard plugins is to use your distribution's package manager. -Debian/Ubuntu: - -``` -apt-get install monitoring-plugins -``` - -RHEL/CentOS: - -``` -yum install nagios-plugins-all -``` - -The packages for RHEL/CentOS depend on other packages which are distributed -as part of the [EPEL repository](02-installation.md#package-repositories-rhel-epel). - -Fedora: - -``` -dnf install nagios-plugins-all -``` - -SLES/openSUSE: - -``` -zypper install monitoring-plugins -``` - -The packages for SLES/OpenSUSE depend on other packages which are distributed -as part of the [server:monitoring repository](https://build.opensuse.org/project/repositories/server:monitoring). -Please make sure to enable this repository beforehand. - -FreeBSD: - -``` -pkg install monitoring-plugins -``` - -Alpine Linux: - -``` -apk add monitoring-plugins -``` - -Note: For Alpine you don't need to explicitly add the `monitoring-plugins` package since it is a dependency of -`icinga2` and is pulled automatically. - Depending on which directory your plugins are installed into you may need to update the global `PluginDir` constant in your [Icinga 2 configuration](04-configuration.md#constants-conf). This constant is used by the check command definitions contained in the Icinga Template Library @@ -388,18 +314,73 @@ to determine where to find the plugin binaries. > Please refer to the [service monitoring](05-service-monitoring.md#service-monitoring-plugins) chapter for details about how to integrate > additional check plugins into your Icinga 2 setup. +### Debian/Ubuntu + +``` +apt-get install monitoring-plugins +``` + +### RHEL/CentOS/Fedora + +The packages for RHEL/CentOS depend on other packages which are distributed +as part of the [EPEL repository](02-installation.md#package-repositories-rhel-epel). + +RHEL/CentOS 8: + +``` +dnf install nagios-plugins-all +``` + +RHEL/CentOS 7/6: + +``` +yum install nagios-plugins-all +``` + +Fedora: + +``` +dnf install nagios-plugins-all +``` + +### SLES/openSUSE + +The packages for SLES/OpenSUSE depend on other packages which are distributed +as part of the [server:monitoring repository](https://build.opensuse.org/project/repositories/server:monitoring). +Please make sure to enable this repository beforehand. + +``` +zypper install monitoring-plugins +``` + +### FreeBSD + +``` +pkg install monitoring-plugins +``` + +### Alpine Linux + +``` +apk add monitoring-plugins +``` + +Note: For Alpine you don't need to explicitly add the `monitoring-plugins` package since it is a dependency of +`icinga2` and is pulled automatically. + ## Running Icinga 2 ### Systemd Service -Some distributions (e.g. Fedora, openSUSE and RHEL/CentOS 7) use systemd. The +The majority of supported distributions use systemd. The Icinga 2 packages automatically install the necessary systemd unit files. The Icinga 2 systemd service can be (re-)started, reloaded, stopped and also queried for its current status. ``` -# systemctl status icinga2 +systemctl status icinga2 + icinga2.service - Icinga host/service/network monitoring system Loaded: loaded (/usr/lib/systemd/system/icinga2.service; disabled) Active: active (running) since Mi 2014-07-23 13:39:38 CEST; 15s ago @@ -433,15 +414,19 @@ The `systemctl` command supports the following actions: Examples: ``` -# systemctl enable icinga2 +systemctl enable icinga2 -# systemctl restart icinga2 +systemctl restart icinga2 Job for icinga2.service failed. See 'systemctl status icinga2.service' and 'journalctl -xn' for details. ``` If you're stuck with configuration errors, you can manually invoke the [configuration validation](11-cli-commands.md#config-validation). +``` +icinga2 daemon -C +``` + > **Tip** > > If you are running into fork errors with systemd enabled distributions, @@ -452,7 +437,8 @@ If you're stuck with configuration errors, you can manually invoke the Icinga 2's init script is installed in `/etc/init.d/icinga2` (`/usr/local/etc/rc.d/icinga2` on FreeBSD) by default: ``` -# /etc/init.d/icinga2 +/etc/init.d/icinga2 + Usage: /etc/init.d/icinga2 {start|stop|restart|reload|checkconfig|status} ``` @@ -477,9 +463,9 @@ using the init script. Using Debian packages the user and group are set to On FreeBSD you need to enable icinga2 in your rc.conf ``` -# sysrc icinga2_enable=yes +sysrc icinga2_enable=yes -# service icinga2 restart +service icinga2 restart ``` ### SELinux @@ -492,18 +478,18 @@ Icinga 2 provides its own SELinux policy. `icinga2-selinux` is a policy package for Red Hat Enterprise Linux 7 and derivatives. The package runs the targeted policy which confines Icinga 2 including enabled features and running commands. +RHEL/CentOS 8 and Fedora: + +``` +dnf install icinga2-selinux +``` + RHEL/CentOS 7: ``` yum install icinga2-selinux ``` -Fedora: - -``` -dnf install icinga2-selinux -``` - Read more about SELinux in [this chapter](22-selinux.md#selinux). ## Configuration Syntax Highlighting @@ -526,7 +512,13 @@ vim-addon-manager -w install icinga2 Info: installing removed addon 'icinga2' to /var/lib/vim/addons ``` -RHEL/CentOS/Fedora: +RHEL/CentOS 8 and Fedora: + +``` +dnf install vim-icinga2 +``` + +RHEL/CentOS 7/6: ``` yum install vim-icinga2 @@ -543,6 +535,7 @@ Alpine Linux: ``` apk add icinga2-vim ``` + Ensure that syntax highlighting is enabled e.g. by editing the user's `vimrc` configuration file: @@ -568,7 +561,13 @@ Debian/Ubuntu: **Note:** The syntax files are installed with the `icinga2-common` package already. -RHEL/CentOS/Fedora: +RHEL/CentOS 8 and Fedora: + +``` +dnf install nano-icinga2 +``` + +RHEL/CentOS 7/6: ``` yum install nano-icinga2 @@ -626,7 +625,7 @@ apt-get install mysql-server mysql-client mysql_secure_installation ``` -RHEL/CentOS 7 and Fedora: +RHEL/CentOS and Fedora: ``` yum install mariadb-server mariadb @@ -764,7 +763,7 @@ Debian/Ubuntu: apt-get install postgresql ``` -RHEL/CentOS 7: +RHEL/CentOS: ``` yum install postgresql-server postgresql @@ -926,13 +925,18 @@ The preferred way of installing Icinga Web 2 is to use Apache as webserver in combination with PHP-FPM. If you prefer Nginx, please refer to the Icinga Web 2 documentation. +> **Note** +> +> These instructions follow HTTP. In order to secure your webserver, please +> use HTTPS and TLS certificates e.g. from [Let's Encrypt](https://letsencrypt.org/). + Debian/Ubuntu: ``` apt-get install apache2 ``` -RHEL/CentOS 7, Fedora: +RHEL/CentOS/Fedora: ``` yum install httpd @@ -1045,6 +1049,68 @@ A number of additional features are available in the form of addons. A list of popular addons is available in the [Addons and Plugins](13-addons.md#addons) chapter. +## Installation Overview + +### Enabled Features during Installation + +The default installation will enable three features required for a basic +Icinga 2 installation: + +* `checker` for executing checks +* `notification` for sending notifications +* `mainlog` for writing the `icinga2.log` file + +You can verify that by calling `icinga2 feature list` +[CLI command](11-cli-commands.md#cli-command-feature) to see which features are +enabled and disabled. + +``` +# icinga2 feature list +Disabled features: api command compatlog debuglog gelf graphite icingastatus ido-mysql ido-pgsql influxdb livestatus opentsdb perfdata statusdata syslog +Enabled features: checker mainlog notification +``` + +### Installation Paths + +By default Icinga 2 uses the following files and directories: + + Path | Description + ----------------------------------------------|------------------------------------ + /etc/icinga2 | Contains Icinga 2 configuration files. + /usr/lib/systemd/system/icinga2.service | The Icinga 2 systemd service file on systems using systemd. + /etc/systemd/system/icinga2.service.d/limits.conf | On distributions with systemd >227, additional service limits are required. + /etc/init.d/icinga2 | The Icinga 2 init script on systems using SysVinit or OpenRC. + /usr/sbin/icinga2 | Shell wrapper for the Icinga 2 binary. + /usr/lib\*/icinga2 | Libraries and the Icinga 2 binary (use `find /usr -type f -name icinga2` to locate the binary path). + /usr/share/doc/icinga2 | Documentation files that come with Icinga 2. + /usr/share/icinga2/include | The Icinga Template Library and plugin command configuration. + /var/lib/icinga2 | Icinga 2 state file, cluster log, master CA, node certificates and configuration files (cluster, api). + /var/run/icinga2 | PID file. + /var/run/icinga2/cmd | Command pipe and Livestatus socket. + /var/cache/icinga2 | status.dat/objects.cache, icinga2.debug files. + /var/spool/icinga2 | Used for performance data spool files. + /var/log/icinga2 | Log file location and compat/ directory for the CompatLogger feature. + +FreeBSD uses slightly different paths: + +By default Icinga 2 uses the following files and directories: + + Path | Description + ------------------------------------|------------------------------------ + /usr/local/etc/icinga2 | Contains Icinga 2 configuration files. + /usr/local/etc/rc.d/icinga2 | The Icinga 2 init script. + /usr/local/sbin/icinga2 | Shell wrapper for the Icinga 2 binary. + /usr/local/lib/icinga2 | Libraries and the Icinga 2 binary. + /usr/local/share/doc/icinga2 | Documentation files that come with Icinga 2. + /usr/local/share/icinga2/include | The Icinga Template Library and plugin command configuration. + /var/lib/icinga2 | Icinga 2 state file, cluster log, master CA, node certificates and configuration files (cluster, api). + /var/run/icinga2 | PID file. + /var/run/icinga2/cmd | Command pipe and Livestatus socket. + /var/cache/icinga2 | status.dat/objects.cache, icinga2.debug files. + /var/spool/icinga2 | Used for performance data spool files. + /var/log/icinga2 | Log file location and compat/ directory for the CompatLogger feature. + + ## Backup Ensure to include the following in your backups: diff --git a/doc/14-features.md b/doc/14-features.md index 47402a340..c91a43ccd 100644 --- a/doc/14-features.md +++ b/doc/14-features.md @@ -829,7 +829,7 @@ what attributes are available with links to each object type. ---------------|------------------------------------------ \$host...$ | Attributes available on a [Host object](09-object-types.md#objecttype-host) \$service...$ | Attributes available on a [Service object](09-object-types.md#objecttype-service) - \$icinga...$ | Attributes available on the [IcingaApplication object](09-object-types.md#icingaapplication) + \$icinga...$ | Attributes available on the [IcingaApplication object](09-object-types.md#objecttype-icingaapplication) > **Note** >