Clean Linux OS

SLES 15 SP6 / openSUSE Leap 15.6

Overview of XorMon requirements:
  • Node.js 24.x
  • PostgreSQL 16 or 17
  • Python 3.11+
  • TimescaleDB Community Edition (latest)
Prerequisites
  • HW sizing
  • Supported Linux OS
  • Access to internet repositories
  • 5 GB of free space in the "/home" filesystem for the application
  • Enough free space in the "/var" filesystem for the data (see Sizing)

Host OS installation procedure
  • Create xormon user (as root)
    groupadd xormon
    useradd -m -g xormon xormon
    passwd xormon
  • Increase user system limits (as root)
    vi /etc/security/limits.conf
    Append following lines before the end of the file
    xormon          hard    stack           -1
    xormon          soft    stack           -1
    xormon          hard    data            -1
    xormon          soft    data            -1
    xormon          hard    nofile          32768
    xormon          soft    nofile          32768
    xormon          hard    nproc           64000
    xormon          soft    nproc           64000
  • Enable repositories (as root)

    • SLES 15 SP6
      suseconnect -p sle-module-basesystem/15.6/x86_64
      suseconnect -p sle-module-desktop-applications/15.6/x86_64
      suseconnect -p sle-module-development-tools/15.6/x86_64
      suseconnect -p sle-module-server-applications/15.6/x86_64
      suseconnect -p sle-module-web-scripting/15.6/x86_64
      suseconnect -p sle-module-python3/15.6/x86_64
      suseconnect -p sle-module-systems-management/15.6/x86_64
      suseconnect -p PackageHub/15.6/x86_64
      Check activated repositories
      zypper repos
      
      #  | Alias                                                                                             | Name                                                      | Enabled | GPG Check | Refresh
      ---+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------+---------+-----------+--------
       3 | Basesystem_Module_15_SP6_x86_64:SLE-Module-Basesystem15-SP6-Pool                                  | SLE-Module-Basesystem15-SP6-Pool                          | Yes     | (r ) Yes  | No
       5 | Basesystem_Module_15_SP6_x86_64:SLE-Module-Basesystem15-SP6-Updates                               | SLE-Module-Basesystem15-SP6-Updates                       | Yes     | (r ) Yes  | Yes
       8 | Desktop_Applications_Module_15_SP6_x86_64:SLE-Module-Desktop-Applications15-SP6-Pool              | SLE-Module-Desktop-Applications15-SP6-Pool                | Yes     | (r ) Yes  | No
      10 | Desktop_Applications_Module_15_SP6_x86_64:SLE-Module-Desktop-Applications15-SP6-Updates           | SLE-Module-Desktop-Applications15-SP6-Updates             | Yes     | (r ) Yes  | Yes
      13 | Development_Tools_Module_15_SP6_x86_64:SLE-Module-DevTools15-SP6-Pool                             | SLE-Module-DevTools15-SP6-Pool                            | Yes     | (r ) Yes  | No
      15 | Development_Tools_Module_15_SP6_x86_64:SLE-Module-DevTools15-SP6-Updates                          | SLE-Module-DevTools15-SP6-Updates                         | Yes     | (r ) Yes  | Yes
      18 | Python_3_Module_15_SP6_x86_64:SLE-Module-Python3-15-SP6-Pool                                      | SLE-Module-Python3-15-SP6-Pool                            | Yes     | (r ) Yes  | No
      20 | Python_3_Module_15_SP6_x86_64:SLE-Module-Python3-15-SP6-Updates                                   | SLE-Module-Python3-15-SP6-Updates                         | Yes     | (r ) Yes  | Yes
      24 | SUSE_Linux_Enterprise_Server_15_SP6_x86_64:SLE-Product-SLES15-SP6-Pool                            | SLE-Product-SLES15-SP6-Pool                               | Yes     | (r ) Yes  | No
      26 | SUSE_Linux_Enterprise_Server_15_SP6_x86_64:SLE-Product-SLES15-SP6-Updates                         | SLE-Product-SLES15-SP6-Updates                            | Yes     | (r ) Yes  | Yes
      29 | SUSE_Package_Hub_15_SP6_x86_64:SLE-Module-Packagehub-Subpackages15-SP6-Pool                       | SLE-Module-Packagehub-Subpackages15-SP6-Pool              | Yes     | (r ) Yes  | No
      31 | SUSE_Package_Hub_15_SP6_x86_64:SLE-Module-Packagehub-Subpackages15-SP6-Updates                    | SLE-Module-Packagehub-Subpackages15-SP6-Updates           | Yes     | (r ) Yes  | Yes
      33 | SUSE_Package_Hub_15_SP6_x86_64:SUSE-PackageHub-15-SP6-Backports-Pool                              | SUSE-PackageHub-15-SP6-Backports-Pool                     | Yes     | (r ) Yes  | No
      34 | SUSE_Package_Hub_15_SP6_x86_64:SUSE-PackageHub-15-SP6-Pool                                        | SUSE-PackageHub-15-SP6-Pool                               | Yes     | (r ) Yes  | No
      37 | Server_Applications_Module_15_SP6_x86_64:SLE-Module-Server-Applications15-SP6-Pool                | SLE-Module-Server-Applications15-SP6-Pool                 | Yes     | (r ) Yes  | No
      39 | Server_Applications_Module_15_SP6_x86_64:SLE-Module-Server-Applications15-SP6-Updates             | SLE-Module-Server-Applications15-SP6-Updates              | Yes     | (r ) Yes  | Yes
      42 | Systems_Management_Module_15_SP6_x86_64:SLE-Module-Systems-Management-15-SP6-Pool                 | SLE-Module-Systems-Management-15-SP6-Pool                 | Yes     | (r ) Yes  | No
      44 | Systems_Management_Module_15_SP6_x86_64:SLE-Module-Systems-Management-15-SP6-Updates              | SLE-Module-Systems-Management-15-SP6-Updates              | Yes     | (r ) Yes  | Yes
      47 | Web_and_Scripting_Module_15_SP6_x86_64:SLE-Module-Web-Scripting15-SP6-Pool                        | SLE-Module-Web-Scripting15-SP6-Pool                       | Yes     | (r ) Yes  | No
      49 | Web_and_Scripting_Module_15_SP6_x86_64:SLE-Module-Web-Scripting15-SP6-Updates                     | SLE-Module-Web-Scripting15-SP6-Updates                    | Yes     | (r ) Yes  | Yes
    • openSUSE Leap 15.6

      Make sure following repositories are enabled in Zypper:
      • openSUSE-Leap-15.6-1 (openSUSE-Leap-15.6-1)
      • Update repository with updates from SUSE Linux Enterprise 15 (repo-sle-update)
      zypper repos
      
      #  | Alias                       | Name                                                                                        | Enabled | GPG Check | Refresh
      ---+-----------------------------+---------------------------------------------------------------------------------------------+---------+-----------+--------
       1 | openSUSE-Leap-15.6-1        | openSUSE-Leap-15.6-1                                                                        | Yes     | (r ) Yes  | Yes
      ... 
      12 | repo-sle-update             | Update repository with updates from SUSE Linux Enterprise 15                                | Yes     | (r ) Yes  | Yes      
      ...
  • Install additional packages (as root)

    Make sure you don't allow the installation of recommended packages using the zypper tool.
    zypper install --no-recommends vim sudo perl ed libxml2-2 wget curl gpg2 sblim-wbemcli libaio1 strace \
    perl-TimeDate perl-XML-Simple perl-XML-SAX perl-XML-LibXML perl-CGI \
    perl-LWP-Protocol-https perl-libwww-perl perl-IO-Tty openldap2-client \
    perl-JSON perl-JSON-XS perl-Net-SNMP net-snmp perl-DBI perl-DBD-ODBC unixODBC unixODBC-devel \
    perl-DBD-Pg libcap-progs \
    python3-virtualenv python3-pip  python3-devel gcc-c++ gcc
  • Java 11 Installation
    Required only by Hitachi Export Tool for Hitachi VSP monitoring.
    Skip if you don't need to monitor Hitachi VSP storage systems.

  • Install Node.js (as root)

    Select the procedure appropriate for your environment.

    • Install from devel:languages:nodejs repository
      zypper addrepo https://download.opensuse.org/repositories/devel:languages:nodejs/15.6/devel:languages:nodejs.repo
      zypper refresh
      zypper install nodejs24
      node -v
    • Install manually in /usr/local
      Download and install Node.js from prebuilt binaries at https://nodejs.org/dist/latest-v24.x/
      # download archive
      cd /tmp
      wget https://nodejs.org/dist/v24.13.0/node-v24.13.0-linux-x64.tar.xz
      
      # extract archive to /usr/local
      cd /usr/local
      tar xf /tmp/node-v24.13.0-linux-x64.tar.xz --strip-components=1
      
      # check node version
      node -v
      
      # remove archive
      rm /tmp/node-v24.13.0-linux-x64.tar.xz
  • Install PostgeSQL 16 (as root)

    • Install packages
      zypper install --no-recommends postgresql16 postgresql16-contrib postgresql16-server postgresql16-server-devel postgresql16-devel
    • Enable and start PostgeSQL service
      systemctl enable --now postgresql.service
    • Enable access from localhost

      Single command
      sed -i 's/^\(host \+all \+all \+127.0.0.1\/32 \+\)ident/\1scram-sha-256/g' /var/lib/pgsql/data/pg_hba.conf
      Edit configuration manually
      vi /var/lib/pgsql/data/pg_hba.conf
      
      # replace 
      host    all             all             127.0.0.1/32            ident
      
      # with
      host    all             all             127.0.0.1/32            scram-sha-256
    • Set postgres user password
      sudo -u postgres psql
      
      postgres=# \password postgres
      postgres=# ALTER USER postgres VALID UNTIL 'infinity';
      postgres=# \q
  • Install PostgreSQL and TimescaleDB extension (as root)

    XorMon requires TimescaleDB Community Edition.

    Do NOT install TimescaleDB extension from PostgreSQL PGDG repository (Apache 2 edition).
    This version is missing some key features required by XorMon.

    Timescale DB Community Edition has to be built from source, because there are no pre-built packages for SUSE.

    • Install additional packages
      zypper install --no-recommends git cmake
    • Clone Timescale DB Git repository
      cd ~; git clone https://github.com/timescale/timescaledb
    • Build the extension
      cd ~/timescaledb
      git checkout 2.24.0
      ./bootstrap
      cd build && make
      make install
    • Add Timescale DB extension to PostgeSQL

      Single command
      sed -i "s/^#shared_preload_libraries =.*/shared_preload_libraries = 'timescaledb'/g" /var/lib/pgsql/data/postgresql.conf
      Edit configuration manually
      vi /var/lib/pgsql/data/postgresql.conf
      
      # replace
      #shared_preload_libraries = ''
      
      # with
      shared_preload_libraries = 'timescaledb'
    • Tune DB

      'timescaledb-tune' script has to be installed using 'go'
      zypper install go
      go install github.com/timescale/timescaledb-tune/cmd/timescaledb-tune@latest
      /root/go/bin/timescaledb-tune -yes -conf-path /var/lib/pgsql/data/postgresql.conf
      sed -i 's/#synchronous_commit = on/synchronous_commit = off/' /var/lib/pgsql/data/postgresql.conf
      sed -i 's/#password_encryption/password_encryption/' /var/lib/pgsql/data/postgresql.conf
      sed -ie 's/32\s ident/32 scram-sha-256/' /var/lib/pgsql/data/pg_hba.conf
    • Restart PostgeSQL service
      systemctl restart postgresql.service
  • Configure firewall (optional, as root)

    Required ports

    XorMon UI
    port 8443 or the standard HTTPS port 443 (how to switch to 443)
    depending on whether you have enabled binding low numbered ports for Node.js.

    OS Agent
    port 8162
    NetFlow
    port 2055 UDP
    sFlow
    port 6343 UDP

    Configure ports
    firewall-cmd --zone=public --add-port=8443/tcp --permanent
    firewall-cmd --zone=public --add-port=8162/tcp --permanent
    firewall-cmd --zone=public --add-port=2055/udp --permanent
    firewall-cmd --zone=public --add-port=6343/udp --permanent
    firewall-cmd --reload
    firewall-cmd --list-port

  • Follow XorMon application install

XorMon Installation

Once you have your operating system ready, install the XorMon application itself.

Note: XorMon v2.2.0 and later requires Node.js v24.
Follow these instructions to upgrade to Node.js 24.

  • Log in as 'xormon' and create installation directory
    su - xormon
    mkdir ~/xormon-ng
    cd ~/xormon-ng
  • Download latest XorMon package to /home/xormon/xormon-ng
    tar zxf xormon-ng-<ver>.tar.gz
    ./xormon.sh start
  • Provide database password created during OS configuration
    The other values are pre-filled; just press Enter if you don't need to change them.
    You only need to fill in DB_PASSWORD.
    APP_PORT[8443]=
    
    DB_HOST[127.0.0.1]=
    DB_PORT[5432]=
    DB_USERNAME[postgres]=
    DB_DATABASE[xormon]=
    DB_PASSWORD[]= <password>

Configure Python3 virtual environment (as xormon)

It is required by AI Xbot, Prediction graphs and Anomaly detection.
You can run XorMon even without that if you do not need above features and install it aftewards.
Python install docu.

Navigate to XorMon UI

    https://<XorMon-IP/Hostname>:8443/
    Default login: xormon / xormon

Optional: Automatically start XorMon with the Linux OS

There are two ways to launch XorMon when the operating system starts:

Optional: Use port 443 for XorMon

There are two ways to run XorMon on port 443:

Installing XorMon on a server where already LPAR2RRD is running

    XorMon fails to start OS agent (Linux) service as its default port 8162 is already occupied by LPAR2RRD daemon listener
    Check documentation how to handle it, there are 3 scenarios available.

Dernière mise à jour :