2014-11-18 16:56:39 +01:00
# <a id="installation"></a> Installation
2013-07-03 14:00:55 +02:00
2014-11-18 16:56:39 +01:00
The preferred way of installing Icinga Web 2 is to use the official package repositories depending on which operating
2014-11-18 16:58:08 +01:00
system and distribution you are running. But it is also possible to install Icinga Web 2 directly from source.
2013-07-03 14:00:55 +02:00
2015-09-27 17:32:24 +02:00
In case you are upgrading from an older version of Icinga Web 2
2015-09-27 17:37:21 +02:00
please make sure to read the [upgrading ](installation.md#upgrading ) section
2015-09-27 17:32:24 +02:00
throroughly.
2015-04-16 13:59:17 +02:00
## <a id="installing-requirements"></a> Installing Requirements
2013-10-20 14:51:03 +02:00
2014-11-18 16:56:39 +01:00
* A web server, e.g. Apache or nginx
2015-04-16 13:59:17 +02:00
* PHP >= 5.3.0 w/ gettext, intl and OpenSSL support
* MySQL or PostgreSQL PHP libraries when using a database for authentication or for storing preferences into a database
2014-11-18 16:56:39 +01:00
* LDAP PHP library when using Active Directory or LDAP for authentication
2015-04-16 13:59:17 +02:00
* Icinga 1.x w/ Livestatus or IDO; Icinga 2.x w/ Livestatus or IDO feature enabled
* MySQL or PostgreSQL PHP libraries when using IDO
2013-10-20 14:51:03 +02:00
2015-04-16 13:59:17 +02:00
## <a id="installing-from-package"></a> Installing Icinga Web 2 from Package
2013-10-20 14:51:03 +02:00
2015-04-16 13:59:17 +02:00
Below is a list of official package repositories for installing Icinga Web 2 for various operating systems.
2013-07-03 14:00:55 +02:00
2015-04-16 13:59:17 +02:00
Distribution | Repository
------------------------|---------------------------
Debian | [debmon ](http://debmon.org/packages/debmon-wheezy/icingaweb2 ), [Icinga Repository ](http://packages.icinga.org/debian/ )
Ubuntu | [Icinga Repository ](http://packages.icinga.org/ubuntu/ )
RHEL/CentOS | [Icinga Repository ](http://packages.icinga.org/epel/ )
openSUSE | [Icinga Repository ](http://packages.icinga.org/openSUSE/ )
SLES | [Icinga Repository ](http://packages.icinga.org/SUSE/ )
Gentoo | -
FreeBSD | -
ArchLinux | [Upstream ](https://aur.archlinux.org/packages/icingaweb2 )
2013-07-03 14:00:55 +02:00
2015-04-16 13:59:17 +02:00
Packages for distributions other than the ones listed above may also be available.
Please contact your distribution packagers.
### <a id="package-repositories"></a> Setting up Package Repositories
You need to add the Icinga repository to your package management configuration for installing Icinga Web 2.
Below is a list with examples for various distributions.
2015-07-01 12:56:04 +02:00
**Debian (debmon)**:
2015-04-16 13:59:17 +02:00
````
wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add -
echo 'deb http://debmon.org/debmon debmon-wheezy main' >/etc/apt/sources.list.d/debmon.list
apt-get update
````
2015-07-01 12:56:04 +02:00
**Ubuntu Trusty**:
2015-04-16 13:59:17 +02:00
````
wget -O - http://packages.icinga.org/icinga.key | apt-key add -
add-apt-repository 'deb http://packages.icinga.org/ubuntu icinga-trusty main'
apt-get update
````
For other Ubuntu versions just replace trusty with your distribution's code name.
2015-07-01 12:56:04 +02:00
**RHEL and CentOS**:
2015-04-16 13:59:17 +02:00
````
rpm --import http://packages.icinga.org/icinga.key
curl -o /etc/yum.repos.d/ICINGA-release.repo http://packages.icinga.org/epel/ICINGA-release.repo
yum makecache
````
2015-07-01 12:56:04 +02:00
**Fedora**:
2015-04-16 13:59:17 +02:00
````
rpm --import http://packages.icinga.org/icinga.key
curl -o /etc/yum.repos.d/ICINGA-release.repo http://packages.icinga.org/fedora/ICINGA-release.repo
yum makecache
````
2015-07-01 12:56:04 +02:00
**SLES 11**:
2015-04-16 13:59:17 +02:00
````
zypper ar http://packages.icinga.org/SUSE/ICINGA-release-11.repo
zypper ref
````
2015-07-01 12:56:04 +02:00
**SLES 12**:
2015-04-16 13:59:17 +02:00
````
zypper ar http://packages.icinga.org/SUSE/ICINGA-release.repo
zypper ref
````
2015-07-01 12:56:04 +02:00
**openSUSE**:
2015-04-16 13:59:17 +02:00
````
zypper ar http://packages.icinga.org/openSUSE/ICINGA-release.repo
zypper ref
````
2015-07-01 12:56:04 +02:00
#### <a id="package-repositories-rhel-notes"></a> RHEL/CentOS Notes
2015-04-16 13:59:17 +02:00
The packages for RHEL/CentOS depend on other packages which are distributed as part of the
[EPEL repository ](http://fedoraproject.org/wiki/EPEL ). Please make sure to enable this repository by following
[these instructions ](http://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F ).
2015-07-02 11:42:58 +02:00
> Please note that installing Icinga Web 2 on **RHEL/CentOS 5** is not supported due to EOL versions of PHP and
> PostgreSQL.
2015-07-01 12:56:04 +02:00
#### <a id="package-repositories-wheezy-notes"></a> Debian wheezy Notes
The packages for Debian wheezy depend on other packages which are distributed as part of the
[wheezy-packports ](http://backports.debian.org/ ) repository. Please make sure to enable this repository by following
[these instructions ](http://backports.debian.org/Instructions/ ).
2015-04-16 13:59:17 +02:00
### <a id="installing-from-package-example"></a> Installing Icinga Web 2
You can install Icinga Web 2 by using your distribution's package manager to install the `icingaweb2` package.
2015-07-24 09:44:53 +02:00
Below is a list with examples for various distributions. The additional package `icingacli` is necessary on RPM based systems for being able to follow further steps in this guide. In DEB based systems, the icingacli binary is included in the icingaweb2 package.
2015-04-16 13:59:17 +02:00
2015-07-01 12:56:04 +02:00
**Debian and Ubuntu**:
2015-04-16 13:59:17 +02:00
````
2015-07-24 09:44:53 +02:00
apt-get install icingaweb2
2015-04-16 13:59:17 +02:00
````
2015-07-01 12:56:04 +02:00
For Debian wheezy please read the [package repositories notes ](#package-repositories-wheezy-notes ).
2015-04-16 13:59:17 +02:00
2015-07-01 12:56:04 +02:00
**RHEL, CentOS and Fedora**:
2015-04-16 13:59:17 +02:00
````
2015-06-22 12:03:56 +02:00
yum install icingaweb2 icingacli
2015-04-16 13:59:17 +02:00
````
2015-07-01 12:56:04 +02:00
For RHEL/CentOS please read the [package repositories notes ](#package-repositories-rhel-notes ).
2015-04-16 13:59:17 +02:00
2015-07-01 12:56:04 +02:00
**SLES and openSUSE**:
2015-04-16 13:59:17 +02:00
````
2015-06-22 12:03:56 +02:00
zypper install icingaweb2 icingacli
2015-04-16 13:59:17 +02:00
````
### <a id="preparing-web-setup-from-package"></a> Preparing Web Setup
You can set up Icinga Web 2 quickly and easily with the Icinga Web 2 setup wizard which is available the first time
you visit Icinga Web 2 in your browser. When using the web setup you are required to authenticate using a token.
In order to generate a token use the `icingacli` :
````
icingacli setup token create
````
In case you do not remember the token you can show it using the `icingacli` :
````
icingacli setup token show
````
Finally visit Icinga Web 2 in your browser to access the setup wizard and complete the installation:
`/icingaweb2/setup` .
## <a id="installing-from-source"></a> Installing Icinga Web 2 from Source
Although the preferred way of installing Icinga Web 2 is to use packages, it is also possible to install Icinga Web 2
directly from source.
### <a id="getting-the-source"></a> Getting the Source
2013-07-03 14:00:55 +02:00
2014-11-18 16:56:39 +01:00
First of all, you need to download the sources. Icinga Web 2 is available through a Git repository. You can clone this
repository either via git or http protocol using the following URLs:
2013-07-03 14:00:55 +02:00
2014-11-18 16:56:39 +01:00
* git://git.icinga.org/icingaweb2.git
* http://git.icinga.org/icingaweb2.git
2013-07-03 14:00:55 +02:00
2014-11-18 16:56:39 +01:00
There is also a browsable version available at
2014-12-24 17:30:30 +01:00
[git.icinga.org ](https://git.icinga.org/?p=icingaweb2.git;a=summary "Icinga Web 2 Git Repository" ).
2014-11-18 16:56:39 +01:00
This version also offers snapshots for easy download which you can use if you do not have git present on your system.
2013-07-03 14:00:55 +02:00
2014-11-18 16:56:39 +01:00
````
git clone git://git.icinga.org/icingaweb2.git
````
2013-08-29 10:55:12 +02:00
2015-04-16 13:59:17 +02:00
### <a id="installing-from-source-example"></a> Installing Icinga Web 2
2013-08-29 10:55:12 +02:00
2014-11-18 16:56:39 +01:00
Choose a target directory and move Icinga Web 2 there.
2013-07-03 14:00:55 +02:00
2014-11-18 16:56:39 +01:00
````
2015-01-13 13:08:09 +01:00
mv icingaweb2 /usr/share/icingaweb2
2014-11-18 16:56:39 +01:00
````
2013-07-03 14:00:55 +02:00
2015-04-16 13:59:17 +02:00
### <a id="configuring-web-server"></a> Configuring the Web Server
2013-07-03 14:00:55 +02:00
2014-11-18 16:56:39 +01:00
Use `icingacli` to generate web server configuration for either Apache or nginx.
2013-07-03 14:00:55 +02:00
2015-07-01 12:56:04 +02:00
**Apache**:
2014-11-18 16:56:39 +01:00
````
2015-01-13 13:08:09 +01:00
./bin/icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public
2014-11-18 16:56:39 +01:00
````
2013-07-26 12:58:21 +02:00
2015-07-01 12:56:04 +02:00
**nginx**:
2014-11-18 16:56:39 +01:00
````
2015-01-13 13:08:09 +01:00
./bin/icingacli setup config webserver nginx --document-root /usr/share/icingaweb2/public
2014-11-18 16:56:39 +01:00
````
2013-07-26 12:58:21 +02:00
2015-02-07 21:15:26 +01:00
Save the output as new file in your webserver's configuration directory.
2015-04-16 13:59:17 +02:00
Example for Apache on RHEL or CentOS:
2015-02-07 21:15:26 +01:00
````
./bin/icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public > /etc/httpd/conf.d/icingaweb2.conf
````
2015-04-16 13:59:17 +02:00
### <a id="preparing-web-setup-from-source"></a> Preparing Web Setup
2015-02-07 21:15:26 +01:00
2015-04-16 13:59:17 +02:00
You can set up Icinga Web 2 quickly and easily with the Icinga Web 2 setup wizard which is available the first time
you visit Icinga Web 2 in your browser. Please follow the steps listed below for preparing the web setup.
2015-01-14 13:24:04 +01:00
Because both web and CLI must have access to configuration and logs, permissions will be managed using a special
system group. The web server user and CLI user have to be added to this system group.
Add the system group `icingaweb2` in the first place.
2015-07-01 12:56:04 +02:00
**Fedora, RHEL, CentOS, SLES and OpenSUSE**:
2015-01-14 13:24:04 +01:00
````
groupadd -r icingaweb2
````
2015-07-01 12:56:04 +02:00
**Debian and Ubuntu**:
2015-01-14 13:24:04 +01:00
````
addgroup --system icingaweb2
````
2015-09-27 17:12:24 +02:00
Add your web server's user to the system group `icingaweb2`
and restart the web server:
2015-01-14 13:24:04 +01:00
2015-07-01 12:56:04 +02:00
**Fedora, RHEL and CentOS**:
2015-01-14 13:24:04 +01:00
````
usermod -a -G icingaweb2 apache
2015-09-27 17:12:24 +02:00
service httpd restart
2015-01-14 13:24:04 +01:00
````
2015-07-01 12:56:04 +02:00
**SLES and OpenSUSE**:
2015-01-14 13:24:04 +01:00
````
2015-02-04 17:23:07 +01:00
usermod -A icingaweb2 wwwrun
2015-09-27 17:12:24 +02:00
service apache2 restart
2015-01-14 13:24:04 +01:00
````
2015-07-01 12:56:04 +02:00
**Debian and Ubuntu**:
2015-01-14 13:24:04 +01:00
````
2015-02-04 23:50:58 +01:00
usermod -a -G icingaweb2 www-data
2015-09-27 17:12:24 +02:00
service apache2 restart
2015-01-14 13:24:04 +01:00
````
2015-09-27 17:12:24 +02:00
2015-01-14 13:24:04 +01:00
Use `icingacli` to create the configuration directory which defaults to ** /etc/icingaweb2**:
````
./bin/icingacli setup config directory
````
2015-04-16 13:59:17 +02:00
2015-01-14 13:24:04 +01:00
When using the web setup you are required to authenticate using a token. In order to generate a token use the
`icingacli` :
````
./bin/icingacli setup token create
````
In case you do not remember the token you can show it using the `icingacli` :
````
./bin/icingacli setup token show
````
2015-04-16 13:59:17 +02:00
Finally visit Icinga Web 2 in your browser to access the setup wizard and complete the installation:
`/icingaweb2/setup` .
2015-02-03 16:52:36 +01:00
2015-09-27 17:32:24 +02:00
# <a id="upgrading"></a> Upgrading Icinga Web 2
2015-04-16 13:59:17 +02:00
## <a id="upgrading-to-beta2"></a> Upgrading to Icinga Web 2 Beta 2
2015-02-03 16:52:36 +01:00
Icinga Web 2 Beta 2 introduces access control based on roles for secured actions. If you've already set up Icinga Web 2,
you are required to create the file **roles.ini** beneath Icinga Web 2's configuration directory with the following
content:
````
[administrators]
users = "your_user_name, another_user_name"
permissions = "*"
````
After please log out from Icinga Web 2 and log in again for having all permissions granted.
2015-02-04 09:22:27 +01:00
If you delegated authentication to your web server using the `autologin` backend, you have to switch to the `external`
authentication backend to be able to log in again. The new name better reflects what’ s going on. A similar change
affects environments that opted for not storing preferences, your new backend is `none` .
2015-03-13 17:22:49 +01:00
2015-04-16 13:59:17 +02:00
## <a id="upgrading-to-beta3"></a> Upgrading to Icinga Web 2 Beta 3
2015-03-13 17:22:49 +01:00
Because Icinga Web 2 Beta 3 does not introduce any backward incompatible change you don't have to change your
configuration files after upgrading to Icinga Web 2 Beta 3.
2015-06-18 15:48:23 +02:00
## <a id="upgrading-to-rc1"></a> Upgrading to Icinga Web 2 Release Candidate 1
The first release candidate of Icinga Web 2 introduces the following non-backward compatible changes:
* The database schema has been adjusted and the tables `icingaweb_group` and
`icingaweb_group_membership` were altered to ensure referential integrity.
2015-06-18 16:54:46 +02:00
Please use the upgrade script located in **etc/schema/** to update your
2015-06-18 15:48:23 +02:00
database schema
2015-08-27 15:34:09 +02:00
2015-06-18 15:48:23 +02:00
* Users who are using PostgreSQL < v9.1 are required to upgrade their
environment to v9.1+ as this is the new minimum required version
for utilizing PostgreSQL as database backend
2015-08-27 15:34:09 +02:00
2015-06-18 15:48:23 +02:00
* The restrictions `monitoring/hosts/filter` and `monitoring/services/filter`
provided by the monitoring module were merged together. The new
restriction is called `monitoring/filter/objects` and supports only a
predefined subset of filter columns. Please see the module's security
related documentation for more details.
2015-07-02 09:51:43 +02:00
## <a id="upgrading-to-2.0.0"></a> Upgrading to Icinga Web 2 2.0.0
* Icinga Web 2 installations from package on RHEL/CentOS 7 now depend on `php-ZendFramework` which is available through
2015-08-27 15:34:09 +02:00
the [EPEL repository ](http://fedoraproject.org/wiki/EPEL ). Before, Zend was installed as Icinga Web 2 vendor library
through the package `icingaweb2-vendor-zend` . After upgrading, please make sure to remove the package
`icingaweb2-vendor-zend` .
2015-07-27 11:30:44 +02:00
* Icinga Web 2 version 2.0.0 requires permissions for accessing modules. Those permissions are automatically generated
2015-08-27 15:34:09 +02:00
for each installed module in the format `module/<moduleName>` . Administrators have to grant the module permissions to
users and/or user groups in the roles configuration for permitting access to specific modules.
In addition, restrictions provided by modules are now configurable for each installed module too. Before,
a module had to be enabled before having the possibility to configure restrictions.
* The **instances.ini** configuration file provided by the monitoring module
has been renamed to **commandtransports.ini** . The content and location of
the file remains unchanged.
2015-09-07 11:20:36 +02:00
* The location of a user's preferences has been changed from
** < config-dir > /preferences/< username > .ini** to
** < config-dir > /preferences/< username > /config.ini**.
2015-09-15 13:31:30 +02:00
The content of the file remains unchanged.