Skip to main content

Moogsoft Onprem Offline Tarball Pre-installation

This topic covers the pre-installation process for an offline tarball installation of Moogsoft Onprem. Follow these steps if:

  • You want to perform the installation as a non-root user. The steps also work for the root user. You must perform all steps as the same user.

  • You want to install Moogsoft Onprem to a directory of your choice.

  • The Moogsoft Onprem servers on which you will install Moogsoft Onprem do not have internet access.

You should consider doing an RPM install if you:

  • Have root access to the Moogsoft Onprem servers.

  • Do not need to install Moogsoft Onprem to a specific directory.

If you initialize Moogsoft Onprem using the root user account, the initialization process creates the following system users to support the deployment:

  • moogsoft

  • moogadmin

  • opensearch

  • nginx

  • rabbitmq

  • moogtoolrunner

  • mysql

Before you begin

Before you begin the pre-installation steps, verify the following:

  • You have a RHEL 8 system on which to install Moogsoft Onprem.

  • You have removed any existing environment variables such as $MOOGSOFT_HOME from previous installations.

  • You have identified the Linux user you will use to perform the installation and manage Moogsoft Onprem.

  • If this is a distributed or HA install, we recommend that the Linux user has the same username and group for all servers where you will install Moogsoft Onprem components.

  • If you are planning to run a process on a port below 1024 (for example, nginx), add the Linux user to the sudo list.

  • You have credentials to connect to the Moogsoft "speedy" Yum repository.

  • You are familiar with the supported versions of third-party software, as outlined in Moogsoft Onprem 9.x Supported Environments.

  • You are running OpenSSL v1.1.1 or later. Run openssl version to check.

  • If you are initializing Moogsoft Onprem as a non-root user, make sure that ports 8443 and 8080 are open.

  • If you are initializing Moogsoft Onprem as a root user, make sure that ports 443 and 80 are open.

  • The hostnames and IP addresses of the primary, secondary and redundancy servers.

  • That the network ports between Moogsoft Onprem are open. See Distributed HA system Firewall for more information.

  • What your RabbitMQ vhost/zone name is.

  • That the redundancy server will run the Percona database, OpenSearch, and RabbitMQ.

  • The location of a working directory of at least 5 GB in size to copy the Moogsoft Onprem installation files to.

  • The location of an installation directory ($MOOGSOFT_HOME) of at least 150 GB in size to contain the following directories:

    • A database data directory. This defaults to $HOME/moog_datastore. See the Sizing Recommendations for guidelines on how large this directory should be.

    • An OpenSearch index directory of at least 20 GB in size. This defaults to $MOOGSOFT_HOME/var/lib/opensearch.

    • A RabbitMQ mnesia directory of at least 20 GB in size. This defaults to $MOOGSOFT_HOME/var/lib/rabbitmq/mnesia.

    • A Percona directory of at least 2 GB in size to store the program files and libraries. This defaults to $HOME/install.

    • A log file directory of at least 50 GB in size. This defaults to $MOOGSOFT_HOME/log. Directory size requirements depend on the number of components running, the log level and, for LAMs, whether data capture is turned on.

    Make sure you have enough disk space for the installation and planned growth of the database and OpenSearch indexes. The default installation installs files into three different directories which are configurable.

Installation process pre-requisite

An experienced Linux RHEL System Administrator is required to perform the installation/upgrade. If help is needed, please contact Moogsoft Support in order to engage Moogsoft Professional Services

Pre-installation steps

Before you perform an offline tarball installation of Moogsoft Onprem, you must download all required files on a system that has internet access. These commands will require root/sudo access as they involve installing new system packages.

  1. Create a directory for the downloaded files. You will collect the downloaded files in this directory and then move these files to the working directory.

    mkdir preinstall_files
    cd preinstall_files
  2. Download Percona dependencies (including haproxy):

    Note

    This step requires the following RHEL yum repositories to be present and enabled:

    • rhel-8-for-x86_64-baseos-rpms

    • rhel-8-for-x86_64-appstream-rpms

    It is important that the server the dependencies are downloaded on, is the same RHEL8 OS version the packages will be installed on.

    dnf download haproxy perl-Carp perl-constant perl-Data-Dumper perl-DBD-SQLite perl-DBI perl-Encode perl-Errno perl-Exporter perl-File-Path perl-File-Temp perl-Getopt-Long perl-HTTP-Tiny perl-interpreter perl-IO perl-libs perl-macros perl-Math-BigInt perl-Math-Complex perl-MIME-Base64 perl-parent perl-PathTools perl-Pod-Escapes perl-podlators perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-Scalar-List-Utils perl-Socket perl-Storable perl-Term-ANSIColor perl-Term-Cap perl-Text-ParseWords perl-threads perl-threads-shared perl-Time-Local perl-Unicode-Normalize rsync lsof make ncurses-compat-libs perl-URI perl-libnet perl-IO-Socket-IP perl-Digest-MD5 perl-Digest perl-Error perl-Git perl-TermReadKey git git-core git-core-doc xinetd libev mariadb-connector-c mariadb-connector-c-config python2 python2-libs python2-pip-wheel python2-setuptools-wheel python2-pip python2-setuptools perl-IO-Socket-SSL perl-Net-SSLeay perl-DBD-MySQL perl-Mozilla-CA perl-Text-Tabs+Wrap socat emacs-filesystem less openssh-clients iproute iproute-tc numactl-libs logrotate pkg-config mkfontdir --downloadonly --downloaddir=. --forcearch=x86_64 --exclude=*.i686
    
    REPO_URL=https://repo.percona.com/yum/release/8/RPMS/x86_64;
    RPM_FILE=$(curl -s -L ${REPO_URL} 2>/dev/null | egrep ">qpress-[0-9]+" | sed "s/.*\(qpress.*.rpm\).*/\1/" | tail -n 1)
    curl -s -L -O ${REPO_URL}/${RPM_FILE}
    
  3. Download Percona files:

    curl -L -O https://downloads.percona.com/downloads/Percona-XtraDB-Cluster-80/Percona-XtraDB-Cluster-8.0.35/binary/tarball/Percona-XtraDB-Cluster_8.0.35-27.1_Linux.x86_64.glibc2.17.tar.gz;
    
    curl -L -O https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-30/binary/tarball/percona-xtrabackup-8.0.35-30-Linux-x86_64.glibc2.17.tar.gz;
    
  4. Download the Percona installer script and Moogsoft Onprem installer files. Substitute your "speedy" Yum repo user credentials in the following commands, or download the files in a web browser then copy them to the applicable server):

    curl -L -O "https://<username>:<password>@speedy.moogsoft.com/v9/install_percona_nodes_tarball.sh"
    curl -L -O "https://<username>:<password>@speedy.moogsoft.com/v9/installer/moogsoft-enterprise-9.1.0.tgz.sig"
    curl -L -O "https://<username>:<password>@speedy.moogsoft.com/v9/installer/moogsoft-enterprise-9.1.0.tgz"
    
  5. Compress the downloaded files in the preinstall_files directory:

    cd ..
    tar -czvf preinstall_files9.1.0.tgz preinstall_files
    
  6. Copy preinstall_files9.1.0.tgz to each Moogsoft Onprem server's working directory.

  7. Download some non-Percona dependency RPMs:

    LIBAIO_RPM=$(curl http://vault.centos.org/8-stream/BaseOS/x86_64/os/Packages/ 2>/dev/null | egrep '>libaio-[0-9].*x86_64' | sed -E 's/.*(libaio-.*.rpm).*/\1/' | tail -n 1)
    curl -s -L -O --connect-timeout 10 --retry 5 --retry-delay 1 --retry-max-time 45 http://vault.centos.org/8-stream/BaseOS/x86_64/os/Packages/${LIBAIO_RPM}
    
    LIBQUADMATH_RPM=$(curl -L http://vault.centos.org/8-stream/BaseOS/x86_64/os/Packages/ 2>/dev/null | egrep '>libquadmath-[0-9].*x86_64' | sed -E 's/.*(libquadmath-.*.rpm).*/\1/' | tail -n 1)
    LIBGFORTRAN_RPM=$(curl -L http://vault.centos.org/8-stream/BaseOS/x86_64/os/Packages/ 2>/dev/null | egrep '>libgfortran-[0-9].*x86_64' | sed -E 's/.*(libgfortran-.*.rpm).*/\1/' | tail -n 1)
    for PACKAGE in "${LIBQUADMATH_RPM}" "${LIBGFORTRAN_RPM}";
    do
    	curl -s -L -O --connect-timeout 10 --retry 5 --retry-delay 1 --retry-max-time 45 http://vault.centos.org/8-stream/BaseOS/x86_64/os/Packages/$PACKAGE
    done
    
    COMPAT_LIBGFORTRAN_RPM=$(curl -L http://vault.centos.org/8-stream/AppStream/x86_64/os/Packages/ 2>/dev/null | egrep "compat-libgfortran-48-.*x86_64.rpm" | grep -v devel | sed -e 's/.*href="//' -e 's/.rpm.*/.rpm/' | tail -n 1)
    for PACKAGE in "${COMPAT_LIBGFORTRAN_RPM}";
    do
    	curl -s -L -O --connect-timeout 10 --retry 5 --retry-delay 1 --retry-max-time 45 http://vault.centos.org/8-stream/AppStream/x86_64/os/Packages/${PACKAGE}
    done
  8. Copy the libaio, libquadmath, libgfortran, and compat-libgfortran RPMs to the install server's working directory

  9. On the install server, extract the preinstall_files.tgz file and install all the dependency RPMs:

    tar -xf preinstall_files9.1.0.tgz
    yum install preinstall_files/*.rpm
    
  10. Run the following command to set the vm.swappiness system property to the needed value:

    echo 'vm.swappiness=1' >> /etc/sysctl.conf;

    Then apply the new property value using this command (requires root/sudo permissions):

    sudo sysctl -p

Configure OpenSearch vm.max_map_count

To allow users to run an OpenSearch cluster, the vm.max_map_count property must be at least 262144. Check this property by running:

sysctl -n vm.max_map_count

If the value is less than 262144, add the following line to the end of the /etc/sysctl.conf file (requires root permissions):

vm.max_map_count = 262144

Then apply the new property value using this command (requires root/sudo permissions):

sudo sysctl -p

Configure user ulimits for RHEL8

Run the following commands as root to set appropriate RHEL8 ulimits for the 'moogsoft' user which will run the application. Replace the 'moogsoft' user below as the user who will be installing and running the application⏤by default, it is 'moogsoft' for RPM deployments:

LIMITS_NPROC_CONF=/etc/security/limits.d/00_moogsoft.conf
sudo bash -c "echo \"moogsoft   hard   nproc   65536\" >> ${LIMITS_NPROC_CONF}";
sudo bash -c "echo \"moogsoft   hard   nofile   65536\" >> ${LIMITS_NPROC_CONF}";
sudo bash -c "echo \"moogsoft   soft   nproc   65536\" >> ${LIMITS_NPROC_CONF}";
sudo bash -c "echo \"moogsoft   soft   nofile   65536\" >> ${LIMITS_NPROC_CONF}";

Log out of the command terminal and back in to implement the changes.

The pre-installation steps are now complete.

To continue with a non-high availability (HA) Moogsoft Onprem installation, see Tarball Installation.

To continue with an HA installation, see Basic HA Installation - Tarball or High Availability Installation.