Reading Time: 4 minutes

Omnissa Horizon require an exteral database server to store the different events.

The event database stores information about VMware Horizon 8 events as records in a database rather than in a log file.

The different connection servers store some information, but if you want to see all the historical events from the Horizon management interface you need to configure an external event database.

Actually only few DBMS are supported:

Considering that the connection server are still Windows Server base, lot of people are using Microsoft SQL Express instance… but if you plan to have a more secure an scalable solution, PostgreSQL on Linux can be a good option.

Omnissa documentation is quite limited… it suppose that you already have the database installed and configured.

Prerequisites

Let’s see how configure a Linux based PostgreSQL server.

Step 1: installing PostgreSQL

Fist to all, choose your prefered distro… I will consider RockyLinux 9 (but all commands works also for RedHat).

List out the available streams for the postgresql module using the dnf command:

dnf module list postgresql

There are different stream and you can choose the desidered bersion.

The stream that provides Postgres version 10 is the default, as indicated by the [d] following it.

To enable the module stream for Postgres version 12, run the following command:

sudo dnf module enable postgresql:12

Then you can install the postgresql-server package to install PostgreSQL and all of its dependencies:

sudo dnf install postgresql-server

Step 2: PostgreSQL set up

The Postgres is not configured and neither enabled. There is a handy script called postgresql-setup which helps with low-level database cluster administration. To set up the database, run the command:

sudo postgresql-setup --initdb

Now you can start the PostgreSQL service using systemctl:

sudo systemctl start postgresql

You need also to use systemctl to enable the service to start up whenever the server boots:

sudo systemctl enable postgresql

Step 3: PostgreSQL network configuration

Before you can use Horizon Console to configure an event database on PostgreSQL, you must edit a configuration file so that the Connection Server can communicate with the PostgreSQL database.

Edit the file /var/lib/pgsql/data/pg_hba.conf and add some lines (one line for each connection server) like this:

It’s not enough… by default the database listen only on 127.0.0.1 address. Modify also the /var/lib/pgsql/ in this way:

The restart PostgreSQL service using systemctl (don’t use the restart option because in this case does not work):

sudo systemctl stop postgresql; sudo systemctl start postgresql


Finally, if you are using firewalld remember to enable the network connection:

sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp
sudo firewall-cmd --reload

Step 4: PostgreSQL set up

Switch over to the postgres account on your server by typing:

sudo -i -u postgres

Create a new database (in this example I call it view):

createdb view

You can now access a Postgres prompt immediately by typing:

psql

Now you can connect to the view database, a user called horizon and add the permission to the view database (you can change db name and user as you prefer):

\c view;

REATE ROLE horizon LOGIN PASSWORD ‘password-that-you-want’;

GRANT CONNECT ON DATABASE view TO horizon;

Step 5: Configure Horizon

This is the simplest part and is also well documented.

You configure an event database after installing a Connection Server instance. You need to configure only one host in a Connection Server group. The remaining hosts in the group are configured automatically.

  1. In Horizon Console, select Settings > Event Configuration.
  2. In the Event Database section, click Edit, enter the information in the fields provided, and click OK.
  3. Select Monitoring > Events to verify that the connection to the event database is successful.

Note that a new database will be created. If you need to import data from another DB you should migrate manually.

Share