I wish to reconfigure my icinga installation to use a MySQL/Maria DB is this possible or is a complete reinstall required?
which components of Icinga are installed, and do you intend to migrate historial data from PostgreSQL?
I dont need to migrate any historical data, when you say components I assume you mean something like director etc?
Yep, Icinga 2, Icinga Web 2, specific modules like Director or anything else which currently has a database involved.
That being said, you need to partially install the required packages for them, and reconfigure some portions.
ido-mysql package as described in the docs, it will pull the libmysql client packages as well. Ensure that the MariaDB/MySQL server is running (or install it like described in the docs).
Next up, configure the
ido-mysql feature and enable it. Ensure that Icinga 2 really writes to this backend, by querying the database like shown in this example.
Icinga Web 2
Install the PHP extension for MySQL first. If you have chosen to store your users in the icingaweb2 database, you’ll need to create it manually and import the MySQL schema. The docs also have the query required for creating the initial user.
Then navigate into the configuration frontend for Icinga Web 2, and add 2 new resources:
There you’ll define the credentials and more database specific access.
Now comes the big part, re-configure Icinga Web 2 to use these resources instead of the old ones.
- Set the config_resource to icingaweb_mysql
- Navigate into the
monitoringmodule configuration, and set
icinga_ido_mysqlas default backend resource.
Log-in with a different browser and ensure everything is working. If not, look into the configuration files on disk for resources, backends, etc and edit them by hand.
If you prefer to re-run the setup wizard, and skip everything else, you can do so by 1) enabling the setup module again 2) generating a new setup token 3) Navigate to /icingaweb2/setup
- Create a MySQL database
- Define it as resource, e.g.
- Modify the backend resource inside the
Directormodules configuration, and point it to
director_mysqlas default backend.
That’s how I would do it, always with a backup of the entire configs and databases. I haven’t tested them all (just extracted the docs), so maybe it is worth a shot with doing it the other way - start on a fresh server with a fresh install.