How to install Icinga on Ubuntu 19.10

Icinga (link is external) is an open source monitoring and alerting system I just discovered. I learned to install it on a Centos 7, but wanted to install on an Ubuntu 19.10 and couldn't find any instructions. There a few differences and caveats to consider:
Install Apache and PHP
sudo apt install apache2 libapache2-mod-php
Icinga2 is not yet compatible with php 7.4 (link is external), the default on Ubuntu 19.10 as of today, so you need to install php 7.3 and the required modules:
sudo apt install php7.3 php7.3-{xml,cli,gd,intl,readline,mysql,curl,mbstring,ldap,json,opcache}
Edit php.ini file to set the proper time zone:
sudo vim /etc/php/7.3/apache2/php.ini
Set your time zone:
date.timezone = Europe/Andorra
Install imagemagick
sudo apt install imagemagick
You can now restart Apache:
sudo systemctl restart apache2
Install MySQL
sudo apt install mysql-server
Secure MySQL installation
sudo mysql_secure_installation
Icinga uses two databases, one for the core of the system (icinga), and another one for the web interface (icingaweb). We create them by running this:
sudo mysqladmin create icinga
sudo mysqladmin create icingaweb
Now we need to access MySQL to create the users, and give them permissions, which will deal with those databases:
mysql -u root -p
Alternatively, you might need to access MySQL with:
sudo mysql
With MySQL 8, shipped by default with Ubuntu 19.10, we cannot create and grant permissions on the same command as before, so we have to use a CREATE command and then a GRANT one. Also, when creating the user we need to specify the mysql_native_password authentication plugin because by default MySQL 8 uses auth_socket and most applications expect to log in with a password. Thus, these are the commands we need to run:
CREATE USER icinga@localhost IDENTIFIED WITH mysql_native_password BY '<password>';
CREATE USER icingaweb@locahost IDENTIFIED WITH mysql_native_password BY '<password>';
GRANT ALL PRIVILEGES ON icinga.* TO icinga@localhost;
GRANT ALL PRIVILEGES ON icingaweb.* TO icingaweb@localhost;
FLUSH PRIVILEGES;
exit;
Install Icinga
sudo apt install icinga2 icingaweb2 icinga2-ido-mysql
Answer "no" to "Enable Icinga 2's ido-mysql feature?" and to "Configure database for icinga2-ido-mysql with dbconfig-common?". We'll do it later:
sudo icinga2 feature enable command
sudo icinga2 feature enable ido-mysql
Here we import the MySQL schema:
sudo mysql icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Now we need to configure the MySQL access by editing this file:
sudo nano /etc/icinga2/features-available/ido-mysql.conf
and fill in the ddbb credentials for icinga:
/**
* The db_ido_mysql library implements IDO functionality * for MySQL.
*/
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icinga"
password = "<password>"
host = "localhost"
database = "icinga"
}
Finally, we restart icinga2:
sudo systemctl restart icinga2
We are almost done, but before accessing the web interface for icinga2, we need to create a token which will allow us to finish the web setup:
sudo icingacli setup token create
copy the token this last command provides you, go to http://
Now it's time to configure the web interface of icinga2. You only have to accept all the defaults and click next at every step, except on:
- Database Resource: where you have to fill in with the icignaweb database credentials.
- Administration: here you enter your desired username and password as admin of the web interface.
- Monitoring IDO Resource: here you have to fill in the icinga database credentials.
- Command Transport: need to select "Local command file" for the "Transport type".
After a few steps more, just click on "finish" and icinga2 and icingaweb2 will be fully functional on your Ubuntu 19.10.
Please, add any comment down here ? with any doubts or suggestions you might have.
Afegeix un comentari