Installing Icinga DB on Raspberry Pi OS (64-bit only)¶
The recommended way to install Icinga DB is to use prebuilt packages from our official release repository. If the repository is not configured yet, please add it first before installing the package.
All packages we provide are signed with the following key.
Adding Icinga Package Repository¶
Here’s how to add the official release repository:
apt update
apt -y install apt-transport-https wget
wget -O icinga-archive-keyring.deb "https://packages.icinga.com/icinga-archive-keyring_latest+debian$(
. /etc/os-release; echo "$VERSION_ID"
).deb"
apt install ./icinga-archive-keyring.deb
DIST=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release); \
echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/debian icinga-${DIST} main" > \
/etc/apt/sources.list.d/${DIST}-icinga.list
echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/debian icinga-${DIST} main" >> \
/etc/apt/sources.list.d/${DIST}-icinga.list
apt update
Installing the Package¶
Use your distribution’s package manager to install the icingadb
package as follows:
apt install icingadb
Setting up the Database¶
A MySQL (≥8.0), MariaDB (≥10.2.2), or PostgreSQL (≥9.6) database is required to run Icinga DB. Please follow the steps listed for your target database, which guide you through setting up the database and user and importing the schema.
Info
In high availability setups, all Icinga DB instances must write to the same database.
Setting up a MySQL or MariaDB Database¶
Set up a MySQL database for Icinga DB:
# mysql -u root -p
CREATE DATABASE icingadb;
CREATE USER 'icingadb'@'localhost' IDENTIFIED BY 'CHANGEME';
GRANT ALL ON icingadb.* TO 'icingadb'@'localhost';
After creating the database, import the Icinga DB schema using the following command:
mysql -u root -p icingadb </usr/share/icingadb/schema/mysql/schema.sql
Setting up a PostgreSQL Database¶
This section walks you through configuring PostgreSQL to work with Icinga DB.
Icinga DB requires the citext
extension which is provided by the postgresql-contrib
package on certain operating systems.
Please check if it is available for your OS and if so, install it.
Allow authenticated sessions for the icingadb
database user from anywhere by modifying the pg_hba.conf
file.
The location of this file is operating system specific, but can be queried.
su postgres -c "psql -c 'show hba_file;'"
Edit pg_hba.conf
, insert the following before everything else:
local all icingadb md5
host all icingadb 0.0.0.0/0 md5
host all icingadb ::/0 md5
If using PostgreSQL version 10 or later, you may want to use scram-sha-256
as the auth-method
instead of md5
.
Also, if requests are only to be expected from certain subnets, please tighten the network masks given above.
The database uses the en_US.UTF-8
locale, which requires an appropriate locale on your system.
Please verify with locale -a
that something like en_US.UTF-8
or en_US.utf8
exists.
If not, please add it using your operating system specific method.
To apply all these changes, restart PostgreSQL.
systemctl restart postgresql
Now proceed with actually creating both user and database.
# su -l postgres
createuser -P icingadb
createdb -E UTF8 --locale en_US.UTF-8 -T template0 -O icingadb icingadb
psql -c 'CREATE EXTENSION IF NOT EXISTS citext;' icingadb
After creating the database, import the Icinga DB schema using the following command:
psql -U icingadb icingadb < /usr/share/icingadb/schema/pgsql/schema.sql
Configuring Icinga DB¶
The Icinga DB package installs its configuration file to /etc/icingadb/config.yml
.
Most of the settings are pre-populated for a local setup.
Before running Icinga DB, adjust the Redis® and database credentials and, if necessary, the connection configuration.
The configuration file explains general settings.
All available settings can be found under Configuration.
Running Icinga DB¶
The icingadb
package automatically installs the necessary systemd unit files to run Icinga DB.
Please run the following command to enable and start its service:
systemctl enable --now icingadb
Installing Icinga DB Web¶
With Icinga 2, Redis®, Icinga DB and the database fully set up, it is now time to install Icinga DB Web, which connects to both Redis® and the database to display and work with the monitoring data.
You have completed the instructions here and can proceed to installing Icinga DB Web on Raspberry Pi Os, which will also guide you through the setup of the Icinga Web PHP framework, which is required to run the Icinga DB web module. Below is a preview of how the interface visualizes monitoring data and also supports dark and light mode: