Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Note

These are instructions for flex.bi Enterprise 6.0 and later. For earlier version please contact flex.bi support.

On this page:

Table of Contents

System Requirements

Information about system requirements for flex.bi Enterprise installation can be found here: Requirements.

Our default setup

We have chosen Linux CentOS 8 as our default server platform and MySQL/MariaDB as a database engine, so these instruction apply for this specific setup.

However, flex.bi Enterprise can also be installed on older CentOS, Redhat versions as well as other distributions of Linux, by adjusting the available software, it's versions and installation methods. For example using rpm or apt-get or yum instead of dnf or PostgreSQP instead of MySQL.

Note

Versions mentioned here are current as of 2021.03.24 - they might of course change in the future.

Software Installation

The following are instructions for flex.bi Enterprise and the required software installation on Centos 8 operating system.

Java installation

Run the following command to install Java JDK 11:

Code Block
sudo dnf install java-11-openjdk-devel

Run the following command, to test if the result matches the version you installed

Code Block
java -version

Install MySQL server

The CentOS 8 AppStream repository only contain MySQL 8.0 packages, so, to install MySQL 5.7, we need to do some prep-work.

Disable MySQL default AppStream repository.

Code Block
sudo yum install mariadb-server

Create a new repository file..

Code Block
sudo vi /etc/yum.repos.d/mysql-community.repo

Create a new repository file..

Code Block
sudo vi /etc/yum.repos.d/mysql-community.repo

Paste the following dat into the new repo file.

Code Block
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0

[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=0

[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=0

Disable MySQL 8 repository.

Code Block
sudo vi /etc/yum.repos.d/mysql-community.repo

Enable repository for MySQL 5.7.

Code Block
sudo dnf config-manager --enable mysql57-community

Install MySQL 5.7.

Code Block
sudo dnf install mysql-community-server

Flex.bi

For security reasons we recommend creating dedicated flexbi user. Run the following command to achieve that:

Code Block
sudo useradd flexbi

...

Run the following command to unzip the .zip archive file (file name in the example can differ from the actual file depending on the software version):

Code Block
unzip flexbi_private_ezbi-4.7.2_4.3.0_33cdc226e7d.zip

Now you should have /home/flexbi/flexbi_private directory containing the following folders:

...

Note

Make sure that the newly created user flexbi has the necessary permissions on the flex.bi server folder flexbi_private and all of it's contents. To .

MySQL connector

Move the downloaded MySQL connector file to /home/flexbi directory on your server and then run the following command to unzip the .zip archive file (file name in the example can differ from the actual file depending on the software version):

Code Block
unzip mysql-connector-java-5.1.47.zip

Copy the jar file from the newly created folder to /home/flexbi/flexbi_private/lib directory (if it doesn't exist, create it). Run the following command to achieve that (java version in the example can differ from the actual version depending on the software version):

Code Block
cp mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar flexbi_private/lib/

Setup and configuration

MariaDB

If you have large amount of records, we suggest to adjust the database engine performance by editing /etc/my.cnf file using appropriate values.

This is an example of a good performance configuration that you can insert under the [\mysqld]\ part of the configuration file:

Code Block
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
query_cache_size= 16M
query_cache_type = 1
max_connections = 200
Note

If you change the log file size after starting the MariaDB, you have to delete ib_logfile0 and ib_logfile1 file from /var/lib/mysql/ directory.

Note

Adjust the memory size to a level that you can actually afford on your server, taking into account Java and other application memory needs.

Run the following command to make sure MariaDB starts automatically on server startup:

Code Block
systemctl enable mariadb

Run the following command to start MariaDB:

Code Block
sudo systemctl start mariadb
Note

It is recommended to use a dedicated MySQL user instead of the root user. The following is is a quick startup guide that will help you to implement the security measures according to you company guidelines.

...

Run the following command to connect to mysql:

Code Block
mysql -u root

Run the following command to change the password of the root user (in the example the new password is 'secret'):

Code Block
UPDATE mysql.user SET Password=PASSWORD('secret') WHERE User='root';
FLUSH PRIVILEGES;

...

Run the following command to connect to mysql:

Code Block
mysql -u root -p

Adjust and run the following command (in the example user's password is 'secret'):

Code Block
CREATE USER 'flexbi_private'@'localhost' IDENTIFIED BY 'secret';
GRANT ALL PRIVILEGES ON `flexbi_private%`.* TO 'flexbi_private'@'%' IDENTIFIED BY 'secret';
FLUSH PRIVILEGES;

...

Run the following command to connect to mysql:

Code Block
mysql -u root -p

Adjust and run the following command:

Code Block
GRANT ALL ON flexbi_private.* TO 'root'@'<remote-ip-address>' IDENTIFIED BY 'PASSWORD';
GRANT ALL ON flexbi_private_dwh.* TO 'root'@'<remote-ip-address>' IDENTIFIED BY 'PASSWORD';
FLUSH PRIVILEGES;
Note

In the code example above, you should use the actual username on the remote machine instead of root (you can also use the root uset), the actual IP address of the remote machine instead of <remote-ip-address> and the actual password on the remote machine instead of PASSWORD.

...


Note

These are instructions for flex.bi Enterprise 6.0 and later. For earlier version please contact flex.bi support.

On this page:

Table of Contents

System Requirements

Information about system requirements for flex.bi Enterprise installation can be found here: Requirements.

Our default setup

We have chosen Linux CentOS 8 as our default server platform and MySQL/MariaDB as a database engine, so these instruction apply for this specific setup.

However, flex.bi Enterprise can also be installed on older CentOS, Redhat versions as well as other distributions of Linux, by adjusting the available software, it's versions and installation methods. For example using rpm or apt-get or yum instead of dnf or PostgreSQP instead of MySQL.

Note

Versions mentioned here are current as of 2021.03.24 - they might of course change in the future.

Software Installation

The following are instructions for flex.bi Enterprise and the required software installation on Centos 8 operating system.

Java installation

  1. Run the following command to install Java JDK 11:

    Code Block
    sudo dnf install java-11-openjdk-devel


  2. Run the following command, to test if the result matches the version you installed

    Code Block
    java -version


Install MySQL server

The CentOS 8 AppStream repository only contain MySQL 8.0 packages, so, to install MySQL 5.7, we need to do some prep-work.

  1. Disable MySQL default AppStream repository.

    Code Block
    sudo yum install mariadb-server


  2. Create a new repository file..

    Code Block
    sudo vi /etc/yum.repos.d/mysql-community.repo


  3. Create a new repository file..

    Code Block
    sudo vi /etc/yum.repos.d/mysql-community.repo


  4. Paste the following dat into the new repo file.

    Code Block
    [mysql57-community]
    name=MySQL 5.7 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
    enabled=1
    gpgcheck=0
    
    [mysql-connectors-community]
    name=MySQL Connectors Community
    baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
    enabled=1
    gpgcheck=0
    
    [mysql-tools-community]
    name=MySQL Tools Community
    baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
    enabled=1
    gpgcheck=0


  5. Disable MySQL 8 repository.

    Code Block
    sudo vi /etc/yum.repos.d/mysql-community.repo


  6. Enable repository for MySQL 5.7.

    Code Block
    sudo dnf config-manager --enable mysql57-community


  7. Install MySQL 5.7.

    Code Block
    sudo dnf install mysql-community-server



flex.bi Enterprise installation

  1. For security reasons we recommend creating dedicated flexbi user. Run the following command to achieve that:

    Code Block
    sudo useradd flexbi


  2. Move the flex.bi Enterprise installation .zip archive file to /home/flexbi directory on your server.

  3. Run the following command to unzip the .zip archive file (file name in the example can differ from the actual file depending on the software version):

    Code Block
    unzip flexbi_private_6.0.zip


  4. After the unzip process finishes, you should have a new /home/flexbi/flexbi_private directory containing the following folders:

    Code Block
    app
    bin
    config
    examples
    lib
    log
    public
    spec
    tmp


  5. Run the following commands, to ensure that the flex.bi folder and its contents are owned by the user flexbi:

    Code Block
    chown -R flexbi:flexbi flexbi_private



MySQL connector installation

  1. Download the MySQL JDBC driver version 5.1.
  2. Move the downloaded .zip archive to /home/flexbi directory on your server and then run the following command to unzip the archive (file name in the example can differ from the actual file depending on the software version):

    Code Block
    unzip mysql-connector-java-5.1.49.zip


  3. Copy the .jar file from the newly created folder to the /home/flexbi/flexbi_private/lib directory (if it doesn't exist, create it). Run the following command to achieve that (file name in the example can differ from the actual name depending on the software version):

    Code Block
    cp mysql-connector-java-5.1.49/mysql-connector-java-5.1.49-bin.jar flexbi_private/lib/


Setup and configuration

MySQL Server configuration

  1. If you have large amount of records, we suggest to adjust the database engine performance by editing /etc/my.conf file using appropriate values.
    The following is an example of a good performance configuration that you can insert under the [mysqld] part of the configuration file:

    Code Block
    innodb_buffer_pool_size = 1024M
    innodb_log_file_size = 256M
    query_cache_size= 16M
    query_cache_type = 1
    max_connections = 200


    Note

    If you change the log file size after starting the MySQL server, you have to delete id_logfile0 and id_logfile1 file from /var/lib/mysql directory.


    Note

    Adjust the innodb_buffer_pool_size to a level that you can actually afford on your server, taking into account Java and other application memory need


  2. Run the following command to start MySQL Server and ensure that it will be automatically started during server startup:

    Code Block
    systemctl enable --now mysqld


  3. Run the following command, to get the automatically generated MySQL Server root user password:

    Code Block
    sudo grep 'A temporary password' /var/log/mysqld.log |tail -1


  4. Make note of the password shown on screen.
  5. Start MySQL Secure Installation to change the root password, Disallow root login remotely, remove anonymous users and remove test database.

    Code Block
    sudo mysql_secure_installation


  6. Connect to MySQL Database as root user, using the new password.

    Code Block
    mysql -u root -p


  7. Run the following commands, to create a flex.bi user named flexbi_private: (Exchange secret with the actual password you want to use.)

    Code Block
    CREATE USER 'flexbi_private'@'localhost' IDENTIFIED BY 'secret';
    GRANT ALL PRIVILEGES ON `flexbi_private%`.* TO 'flexbi_private'@'%' IDENTIFIED BY 'secret';
    FLUSH PRIVILEGES;



flex.bi Enterprise configuration

  • Configure the eazybi.toml file:
    • Run the following command, to copy the eazybi.toml.sample file in the /config folder to a new file named eazybi.toml:

      Code Block
      cp eazybi.toml.sample eazybi.toml


    • In a text editor of your choice, open the newly created eazybi.toml file and make the necessary configurations:

      • Licence parameters
        • Change the name to the organisation name (it must be exactly the same as the name that you sent it to flex.bi, because the enabler is tied to this name)

      • General parameters, for example, specify:
        • If you wish to allow users to register themselves or only invite them
        • If you would like to allow public accounts or not etc.

      • Default URL parameters
        • Specify host and port that you will use to access flex.bi, for example, bi.company.com:8080

      • Mailer parameters

        • You can set up the name and address used for outgoing e-mails from this private instance, for example, like this:

          Code Block
          [mailer]
          from = "My private flex.bi <flexbi@mydomain.com>"


          Note

          In the code example above, you should use your dedicated e-mail address instead of flexbi@mydomain.com.


      • SMTP parameters

        • Specify your SMTP server parameters, in order to be able to send invitations, dashboards and error messages

  • Add a systemd initialization script for flex.bi server:


...

  • Open the port 8080 in your firewall to allow remote access to the flex.bi server:
    • Run the following command to open the port 8080:

      Code Block
      firewall-cmd --permanent --add-port=8080/tcp


    • Run the following command to reload the firewall:

      Code Block
      firewall-cmd --reload


    • Run the following command to check if the port is open:

      Code Block
      firewall-cmd --list-ports


Google Chrome

  • If you have installed and configured PhantomJS for previous flex.bi enterprise versions then remove PhantomJS settings from the eazybi.toml file by deleting the following lines:

    Code Block
    [phantomjs]location = "..."


  • Run the following command to enable Google YUM repository:

    Code Block
    cat << EOF > /etc/yum.repos.d/google-chrome.repo
    [google-chrome]
    name=google-chrome - \$basearch
    baseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch
    enabled=1
    gpgcheck=1
    gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
    EOF


  • Run the following command to install the package:

    Code Block
    yum install google-chrome-stable


  • After you have installed Google Chrome, please restart flex.bi enterprise. During the startup, flex.bi will detect installed Google Chrome and will start to use it for PDF exports. 

    Note

    For additional information regarding Google Chrome installation please see Google Chrome installation instructions.



...

Note

Make sure there is enough (and any for that matter) swap space available and set the swappiness setting to 1. See this manual for CentOS.

Run the flex.bi server

Finally, now you can start the flex.bi service using this code:

...

Configure the database connection in the wizard that should open once you connect for the first time using the database parameters from above.


Note

There are many tutorials on how to use systemd out there, such as this one from Digital Ocean.

...