Close

Installation on Rocky Linux

Please configure the system with a UTF-8 locale, as example en_US.UTF-8.

Prepare installation

dnf install epel-release wget

Repository

wget https://repo.bloonix.org/bloonix.gpg -O /etc/pki/rpm-gpg/RPM-GPG-KEY-Bloonix
Rocky Linux
Almalinux
RHEL
cat <<EOT >/etc/yum.repos.d/bloonix.repo
[bloonix]
name=Bloonix repository
baseurl=https://repo.bloonix.org/rockylinux/\$releasever/\$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Bloonix
EOT
cat <<EOT >/etc/yum.repos.d/bloonix.repo
[bloonix]
name=Bloonix repository
baseurl=https://repo.bloonix.org/almalinux/\$releasever/\$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Bloonix
EOT
cat <<EOT >/etc/yum.repos.d/bloonix.repo
[bloonix]
name=Bloonix repository
baseurl=https://repo.bloonix.org/rhel/\$releasever/\$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Bloonix
EOT

Packages

dnf install nginx \
    postgresql-server \
    postfix \
    redis \
    bloonix-server \
    bloonix-webgui \
    bloonix-webgui-schema \
    bloonix-agent

Note: Postfix can be replaced by Exim or any other MTA. It is important that the MTA provides /usr/sbin/sendmail and also listens on localhost:25. An MTA is only required if emails are to be sent/forwarded via the local MTA. This applies, for example, to the Bloonix web GUI with two-factor authentication and the Bloonix server when sending alerts via email.

Redis

echo 'save ""' >>/etc/redis/redis.conf
systemctl enable redis
systemctl restart redis

Note: If you are using a Redis alternative such as Dragonfly, it is important to ensure that no data is persisted and that the database is empty after a restart.

PostgreSQL

/usr/bin/postgresql-setup --initdb

Edit /var/lib/pgsql/data/pg_hba.conf and comment out the following lines:

host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident

Add the following lines:

host all all 127.0.0.1/32 md5
host all all ::1/128 md5

Start PostgreSQL

systemctl start postgresql

Initialize the database schema

cd /usr/share/bloonix/schema/
./init-postgresql-database -i -m -o /etc/bloonix/database/main.conf
./init-postgresql-database -i -d -o /etc/bloonix/datastore/main.conf

Import the check plugins

bloonix-import-plugins-into-db

Nginx

An example configuration for testing purposes can be found in the file /etc/bloonix/webgui/nginx.conf and looks like:

server {
    listen 8080 default_server;
    listen [::]:8080 default_server;
    server_name _;
    access_log /var/log/nginx/bloonix-webgui.access.log;
    error_log /var/log/nginx/bloonix-webgui.error.log;
    location /favicon.ico {
        expires 365d;
        add_header Cache-Control public;
        root /srv/bloonix/webgui/public/assets/docs;
    }
    location /assets {
        expires 365d;
        add_header Cache-Control public;
        root /srv/bloonix/webgui/public;
    }
    location / {
        expires off;
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9000;
    }
}

Reload / restart Nginx after the change:

nginx -t && systemctl restart nginx

Bloonix-WebGUI: cookie_secure

Important Notice: If HTTPS is not used, the cookie_secure parameter must be set to False in the WebGUI configuration file, otherwise login is not possible.

app {
    cookie_secure False
    ...
}

However, for security reasons, a domain should be set up with a valid SSL certificate. There is also an example for this in the file /etc/bloonix/webgui/nginx.conf.

Systemctl

Once everything is set up, the Bloonix services can be started and enabled.

systemctl enable bloonix-webgui
systemctl enable bloonix-server
systemctl enable bloonix-agent

systemctl restart bloonix-webgui
systemctl restart bloonix-server
systemctl restart bloonix-agent

SELinux

If SELinux is running in “enforcing” mode, it will by default block outgoing network connections from Nginx to uWSGI on port 9000 and prevent access to the directory /srv/bloonix/webgui/public.

dnf -y install policycoreutils-python-utils
semanage fcontext -a -t httpd_sys_content_t "/srv/bloonix/webgui/public(/.*)?"
restorecon -Rv /srv/bloonix/webgui
setsebool -P httpd_can_network_connect on

Login

The initial login for the WebGUI is

admin / bloonix

Troubleshooting

If the WebGUI is not accessible, there are several ways to troubleshoot:

  1. Check if the WebGUI is reachable: curl localhost:8080
  2. Look in the browser debugger under the “Console” tab
  3. Check the log files in__ /var/log/bloonix__ for error messages

Templates

The last step is to import the predefined service templates from Bloonix. These are not absolutely necessary, but they make getting started easier. Please adjust the URL if necessary.

bloonix-import-default-templates \
    --url http://localhost:8080/