2013-10-02 09:50:26 +02:00
|
|
|
## Configuring IDO
|
2013-09-27 13:56:11 +02:00
|
|
|
|
|
|
|
The IDO (Icinga Data Output) modules for Icinga 2 takes care of exporting all
|
2013-10-01 12:59:02 +02:00
|
|
|
configuration and status information into a database. The IDO database is used
|
|
|
|
by a number of projects including Icinga Web.
|
2013-09-27 13:56:11 +02:00
|
|
|
|
2013-11-20 10:29:37 +01:00
|
|
|
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.
|
2013-09-27 13:56:11 +02:00
|
|
|
|
2013-10-11 15:34:30 +02:00
|
|
|
> **Note**
|
|
|
|
>
|
|
|
|
> Icinga 2 uses the Icinga 1.x IDOUtils database schema starting with version
|
2013-11-20 10:29:37 +01:00
|
|
|
> `1.11.0`.
|
2013-10-11 15:34:30 +02:00
|
|
|
|
2013-10-02 09:50:26 +02:00
|
|
|
### Setting up the database
|
2013-09-27 13:56:11 +02:00
|
|
|
|
2013-11-20 10:29:37 +01:00
|
|
|
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.
|
2013-09-30 09:04:49 +02:00
|
|
|
|
2013-09-27 13:56:11 +02:00
|
|
|
# mysql -u root -p
|
|
|
|
|
|
|
|
mysql> CREATE DATABASE icinga;
|
|
|
|
Query OK, 1 row affected (0.01 sec)
|
|
|
|
|
|
|
|
mysql> GRANT USAGE ON icinga.* TO 'icinga'@'localhost'
|
|
|
|
IDENTIFIED BY 'icinga'
|
|
|
|
WITH MAX_QUERIES_PER_HOUR 0
|
|
|
|
MAX_CONNECTIONS_PER_HOUR 0
|
|
|
|
MAX_UPDATES_PER_HOUR 0;
|
|
|
|
|
|
|
|
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE
|
|
|
|
ON icinga.* TO 'icinga'@'localhost';
|
|
|
|
|
|
|
|
mysql> FLUSH PRIVILEGES;
|
|
|
|
|
|
|
|
mysql> quit
|
|
|
|
|
2013-09-30 09:04:49 +02:00
|
|
|
After creating the database you can import the Icinga 2 IDO schema using the
|
2013-10-01 12:59:02 +02:00
|
|
|
following command:
|
2013-09-30 09:04:49 +02:00
|
|
|
|
2013-10-11 15:34:30 +02:00
|
|
|
# mysql -u root -p icinga < /usr/share/doc/icinga2-ido-mysql-*/schema/mysql.sql
|
|
|
|
|
|
|
|
> **Note**
|
|
|
|
>
|
2013-10-11 15:51:53 +02:00
|
|
|
> The Icinga 2 RPM packages install the schema files into
|
2013-10-18 20:05:08 +02:00
|
|
|
> `/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/`.
|
2013-11-20 10:29:37 +01:00
|
|
|
>
|
|
|
|
> On SuSE-based distributions the schema files are installed in
|
|
|
|
> `/usr/share/doc/packages/icinga2-ido-mysql/schema`.
|
2013-10-11 15:34:30 +02:00
|
|
|
|
|
|
|
### Upgrading the database
|
|
|
|
|
|
|
|
If the database has been installed and requires an upgrade, verify the current
|
|
|
|
schema version first:
|
|
|
|
|
|
|
|
# mysql -u root -p icinga -e 'SELECT version FROM icinga_dbversion;'
|
|
|
|
+---------+
|
|
|
|
| version |
|
|
|
|
+---------+
|
|
|
|
| 1.10.0 |
|
|
|
|
+---------+
|
|
|
|
|
|
|
|
Check the `schema/upgrade` directory for an incremental schema upgrade file, e.g.
|
|
|
|
if your database schema version is `1.10.0` look for `mysql-upgrade-1.11.0.sql`
|
|
|
|
and newer.
|
|
|
|
Apply all database schema upgrade files incrementially.
|
|
|
|
|
|
|
|
# mysql -u root -p icinga < /usr/share/doc/icinga2-ido-mysql-*/schema/upgrade/mysql-upgrade-1.11.0.sql
|
|
|
|
|
|
|
|
> **Note**
|
|
|
|
>
|
|
|
|
> The Icinga 2 IDO module will check for the required database schema version
|
|
|
|
> on startup and generate an error message if not satisfied.
|
2013-09-27 13:56:11 +02:00
|
|
|
|
2013-10-02 09:50:26 +02:00
|
|
|
### Installing the IDO module
|
2013-09-27 13:56:11 +02:00
|
|
|
|
|
|
|
The package provides a new configuration file that is installed in
|
2013-10-07 09:35:44 +02:00
|
|
|
`/etc/icinga2/features-available/ido-mysql.conf`. You will need to update the
|
2013-09-27 13:56:11 +02:00
|
|
|
database credentials in this file.
|
|
|
|
|
2013-10-18 22:11:40 +02:00
|
|
|
You can enable the `ido-mysql` feature configuration file using `icinga2-enable-feature`:
|
2013-09-27 13:56:11 +02:00
|
|
|
|
2013-10-18 22:11:40 +02:00
|
|
|
# icinga2-enable-feature ido-mysql
|
2013-09-27 13:56:11 +02:00
|
|
|
Module 'ido-mysql' was enabled.
|
|
|
|
Make sure to restart Icinga 2 for these changes to take effect.
|
|
|
|
|
2013-10-01 12:59:02 +02:00
|
|
|
After enabling the ido-mysql feature you have to restart Icinga 2:
|
2013-09-27 13:56:11 +02:00
|
|
|
|
2013-10-01 12:59:02 +02:00
|
|
|
# /etc/init.d/icinga2 restart
|