Skip to main content

Moogsoft Onprem Online Tarball Pre-installation

This topic covers the pre-installation process for an online 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.

  • Your servers can connect to the internet and to Yum repositories outside your network.

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

  • 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.

  • 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.Moogsoft Onprem 7.3.x Supported Environments

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

  • Ports 8443 and 8080 are open on your server.

  • 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 $MOOGSOFT_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 $MOOGSOFT_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.

    Ensure that 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 actually 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 online tarball installation of Moogsoft Onprem, complete the following tasks on the server on which you will install Moogsoft Onprem:

  1. Install all the Percona MySQL dependency RPMs by running the following command (This step requires root privileges):

    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.

    yum -y install 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 pkg-config mkfontdir logrotate
    
    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)
    yum -y install ${REPO_URL}/${RPM_FILE}
  2. Install Kernel Asynchronous I/O (AIO) Support for Linux. For example (run the whole codeblock as one command):

    LIBAIO_RPM=$(curl http://mirror.centos.org/centos/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)
    
    mkdir -p ~/install/libraries/ && cd ~/install/libraries/;
    curl -s -L -O --connect-timeout 10 --retry 5 --retry-delay 1 --retry-max-time 45 http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/${LIBAIO_RPM}
    rpm2cpio ./${LIBAIO_RPM} | cpio -idmv && \
    rm -f ./${LIBAIO_RPM} && \
    rm -f ~/install/libraries/usr/lib64/libaio.so.1 && \
    ln -s ~/install/libraries/usr/lib64/libaio.so.1.0.1 ~/install/libraries/usr/lib64/libaio.so.1
    
    source ~/.bashrc
    
    cd -
  3. Install libquadmath and libgfortran. For example:

    cd ~/install/libraries/
    
    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://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/$PACKAGE
    	rpm2cpio $PACKAGE | cpio -idmv && \
    	rm -f $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-[0-9].*x86_64' | sed -E 's/.*(compat-libgfortran-48-.*.rpm).*/\1/' | 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}
    	rpm2cpio ${PACKAGE} | cpio -idmv && \
    	rm -f ${PACKAGE}
    done
    
    echo "export LD_LIBRARY_PATH=$(pwd)/usr/lib64:\$LD_LIBRARY_PATH" >> ~/.bashrc
    source ~/.bashrc
    
    cd -
  4. Download the Percona database installer on all servers that will house a database node. The script configures multiple nodes to run as a cluster. A single node is also supported. Substitute your "speedy" Yum repo user credentials:

    cat > aiops_repo.sh << _EOF_
    #!/bin/bash
    clear
    echo "Please provide access credentials for the 'speedy' yum repository in order to run the Percona setup script"
    echo
    read -p "AIOps Repository Username: " AIOPS_USER
    export AIOPS_USER
    read -p "AIOps Repository Password: " -s AIOPS_PASS
    export AIOPS_PASS
    curl -L -O https://\$AIOPS_USER:\$AIOPS_PASS@speedy.moogsoft.com/v9/install_percona_nodes_tarball.sh 2>/dev/null
    echo
    _EOF_
    bash aiops_repo.sh
  5. Execute the .bashrc file:

    source ~/.bashrc
  6. 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.