### Installing Icinga Classic UI
-You can download and build Icinga 1.x Classic UI in standalone mode using the
-following commands:
+The Icinga package repository has both Debian and RPM packages. You can install
+the Classic UI using the following packages:
- $ wget http://downloads.sourceforge.net/project/icinga/icinga/1.10.0/icinga-1.10.0.tar.gz
- $ tar xzf icinga-1.10.0.tar.gz ; cd icinga-1.10.0
- $ ./configure --enable-classicui-standalone --prefix=/usr/local/icinga2-classicui
- $ make classicui-standalone
-
-Once you've built Classic UI you can install it:
-
- # make install-classicui-standalone install-classicui-standalone-conf install-webconf-auth
- # service apache2 restart
-
-> **Note**
->
-> A detailed guide on installing Icinga 1.x Classic UI Standalone can be
-> found on the Icinga Wiki here:
-> [https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Classic+UI+Standalone](https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Classic+UI+Standalone)
-
-### Configuring Icinga 2
-
-By default Icinga 2 does not write `status.dat` and `objects.cache` files which are used
-by the Classic UI. The command pipe is also not enabled by default.
-
-You can use icinga2-enable-feature to enable these features:
-
- # icinga2-enable-feature statusdata
- # icinga2-enable-feature compatlog
- # icinga2-enable-feature command
-
-After enabling these features you will need to restart Icinga 2:
-
- # /etc/init.d/icinga2 restart
-
-You should be able to find the `status.dat` and `objects.cache` files in
-`/var/cache/icinga2`. The log files can be found in `/var/log/icinga2/compat`.
-The command pipe can be found in `/var/run/icinga2/cmd/icinga2.cmd`.
-
-### Configuring the Classic UI
-
-After installing the Classic UI you will need to update the following
-settings in your `cgi.cfg` configuration file in the `STANDALONE (ICINGA 2)
-OPTIONS` section:
-
- Configuration Setting |Value
- ------------------------------------|------------------------------------
- object\_cache\_file |/var/cache/icinga2/objects.cache
- status\_file |/var/cache/icinga2/status.dat
- resource\_file |-
- command\_file |/var/run/icinga2/cmd/icinga2.cmd
- check\_external\_commands |1
- interval\_length |60
- status\_update\_interval |10
- log\_file |/var/log/icinga2/compat/icinga.log
- log\_rotation\_method |h
- log\_archive\_path |/var/log/icinga2/compat/archives
- date\_format |us
- ------------------------------------ ------------------------------------
+ Distribution | Packages
+ --------------|---------------------
+ Debian | icinga2-classicui
+ all others | icinga2-classicui-config icinga-gui
> **Note**
>
-> Depending on how you installed Icinga 2 some of those paths and options
-> might be different.
+> On all distributions other than Debian you may have to restart both your web
+> server as well as Icinga 2 after installing the Classic UI package.
-In order for commands to work you will need to add your web server user to
-the `icingacmd` group:
+Verify that your Icinga 1.x Classic UI works by browsing to your Classic
+UI installation URL:
- # usermod -a -G icingacmd www-data
+ Distribution | URL
+ ---------------------------------------
+ Debian | [http://localhost/icinga](http://localhost/icinga2-classicui)
+ all others | [http://localhost/icinga](http://localhost/icinga)
-> **Note**
->
-> Change `www-data` to the user name your web server is running as.
-
-Verify that your Icinga 1.x Classic UI works by browsing to your Classic
-UI installation URL, e.g.
-[http://localhost/icinga](http://localhost/icinga)
configuration and status information into a database. The IDO database is used
by a number of projects including Icinga Web.
-There is a separate module for each database back-end. At present only support
-for MySQL is implemented.
+There is a separate module for each database back-end. At present support for
+both MySQL and PostgreSQL is implemented. This installation guide assumed that
+you are using MySQL.
> **Note**
>
> Icinga 2 uses the Icinga 1.x IDOUtils database schema starting with version
-> `1.10.0`.
+> `1.11.0`.
### Setting up the database
-First of all you have to create a database for Icinga 2:
+First of all you have to install the `icinga2-ido-mysql` package using your
+distribution's package manager. Once you have done that you can proceed with
+setting up a MySQL database for Icinga 2:
+
+> **Note**
+>
+> The Debian packages can optionally create and maintain the database for you
+> using Debian's `dbconfig` framework. This is the recommended way of setting up
+> the database.
# mysql -u root -p
> The Icinga 2 RPM packages install the schema files into
> `/usr/share/doc/icinga2-ido-mysql-*/schema` (`*` means package version).
> The Icinga 2 dist tarball ships the schema files in `components/db_ido_mysql/schema/`.
+>
+> On SuSE-based distributions the schema files are installed in
+> `/usr/share/doc/packages/icinga2-ido-mysql/schema`.
### Upgrading the database
### Installing the IDO module
-Once you've set up your database you have to install the `icinga2-ido-mysql`
-package using your distribution's package manager.
-
The package provides a new configuration file that is installed in
`/etc/icinga2/features-available/ido-mysql.conf`. You will need to update the
database credentials in this file.
### Configure the ClusterListener Object
-The ClusterListener needs to be configured on every node in the cluster with the following settings:
+The ClusterListener needs to be configured on every node in the cluster with the
+following settings:
Configuration Setting |Value
-------------------------|------------------------------------
peers = [ "icinga-node-2" ]
}
-Peers configures the direction used to connect multiple nodes together. If have a three node cluster consisting of
+Peers configures the direction used to connect multiple nodes together. If have
+a three node cluster consisting of
* node-1
* node-2
* node-3
-and `node-3` is only reachable from `node-2`, you have to consider this in your peer configuration
+and `node-3` is only reachable from `node-2`, you have to consider this in your
+peer configuration
### Configure Cluster Endpoints
-In addition to the configured port and hostname every endpoint can have specific abilities to send configfiles to other nodes and limit the hosts allowed to send config-files.
+In addition to the configured port and hostname every endpoint can have specific
+abilities to send configuration files to other nodes and limit the hosts allowed
+to send configuration files.
Configuration Setting |Value
-------------------------|------------------------------------
host | hostname
port | port
accept_config | defines all nodes allowed to send configs
- config_files | defines all files to be send to that node - MUST BE ABSOLUTE PATH
+ config_files | defines all files to be send to that node - MUST BE AN ABSOLUTE PATH
------------------------- ------------------------------------
A sample config part can look like this:
If you update the configuration files on the configured file sender, it will
force a restart on all receiving nodes after validating the new config.
+By default these configuration files are saved in /var/lib/icinga2/cluster/config.
+In order to load configuration files which were received from a remote Icinga 2
+instance you will have to add the following include directive to your
+`icinga2.conf` configuration file:
+
+ include (IcingaLocalStateDir + "/lib/icinga2/cluster/config/*/*")
+
## Dependencies
Icinga 2 uses host and service dependencies as attribute directly on the host or