Debian 11/12/13, Ubuntu 22/24

Overview of XorMon requirements:
  • Node.js 20.x
  • PostgreSQL 16
  • 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)
    adduser 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
  • Install required packages (as root)

    • Add 'non-free' component to APT sources

      Only for Debian Linux

      • one-liner

        Run the following command to add 'non-free' component to all sources in '/etc/apt/sources.list'
        sed -i 's/^\(deb.*\)$/\1 non-free/g' /etc/apt/sources.list
      • edit manually
        vi /etc/apt/sources.list
        deb http://deb.debian.org/debian/ <release> main non-free-firmware non-free
        deb-src http://deb.debian.org/debian/ <release> main non-free-firmware non-free
        
        deb http://security.debian.org/debian-security <release>-security main non-free-firmware non-free
        deb-src http://security.debian.org/debian-security <release>-security main non-free-firmware non-free
        
        deb http://deb.debian.org/debian/ <release>-updates main non-free-firmware non-free
        deb-src http://deb.debian.org/debian/ <release>-updates main non-free-firmware non-free
        Replace <release> with your Debian release name
        - Debian 11: bullseye
        - Debian 12: bookworm
        - Debian 13: trixie


    • Update APT repository
      apt update
    • Linux kernel AIO access library

      • Debian 13+, Ubuntu 24+
        apt install libaio1t64
      • Debian 11/12, Ubuntu 22
        apt install libaio1
    • Additional packages
      apt install perl ed wget ca-certificates curl gnupg sudo snmp snmp-mibs-downloader nmap alien ksh tcpdump sblim-wbemcli net-tools strace iputils-ping dnsutils unzip 
      apt install librrdp-perl libxml-sax-perl libxml-simple-perl libtimedate-perl libenv-sanctify-perl libcgi-pm-perl
      apt install libsnmp-perl libdata-dumper-simple-perl libxml2-utils liblwp-protocol-https-perl libcrypt-ssleay-perl ldap-utils
      apt install libio-socket-ssl-perl libmozilla-ldap-perl libxml-parser-perl libjson-xs-perl libio-pty-perl libxml-libxml-perl
      apt install postgresql-common apt-transport-https lsb-release default-jre libdbd-pg-perl
      apt install libnet-inet6glue-perl libdbd-pg-perl unixodbc unixodbc-common unixodbc-dev
    • Perl DBD::ODBC module

      Required for MS SQL monitoring.

      • Debian 11/12, Ubuntu 22/24
        apt install libdbd-odbc-perl
      • Debian 13
        perl -MCPAN -e'shell'
        
        cpan[1]> install DBD::ODBC
    • Python

      Required for prediction graphs
      You can run XorMon without it if you have trouble downloading necessary Python modules
      apt install python3-venv
  • Java 11 Installation

    Required 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)
    curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
    apt-get install nodejs
    npm update -g npm
    node -v
  • Install PostgreSQL and TimescaleDB extension (as root)

    XorMon requires TimescaleDB Community Edition.

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

    • Install the latest PostgreSQL packages
      apt install postgresql-common apt-transport-https lsb-release
    • Run the PostgreSQL package setup script
      /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
    • Add TimescaleDB repository

      • Debian
        echo "deb https://packagecloud.io/timescale/timescaledb/debian/ $(lsb_release -c -s) main" | sudo tee /etc/apt/sources.list.d/timescaledb.list
      • Ubuntu
        echo "deb https://packagecloud.io/timescale/timescaledb/ubuntu/ $(lsb_release -c -s) main" | sudo tee /etc/apt/sources.list.d/timescaledb.list
    • Import TimescaleDB GPG key
      wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg
    • Update APT repository
      apt update
    • Install TimescaleDB
      apt install timescaledb-2-postgresql-16 postgresql-client-16
  • Optional: Change database location if necessary

    Default database location is '/var/lib/postgresql/16/main'
    Note: database requires at least 100GB (500GB in large environment)

    • Stop and drop the default postgres cluster
      systemctl stop postgresql.service
      pg_dropcluster --stop 16 main
    • Create postgres cluster with new data location
      pg_createcluster -d /opt/pgsql 16 main
      systemctl daemon-reload
  • Start postgres service
    systemctl enable --now postgresql.service
  • Tune DB
    timescaledb-tune -yes -conf-path /etc/postgresql/16/main/postgresql.conf
    sed -i 's/#synchronous_commit = on/synchronous_commit = off/' /etc/postgresql/16/main/postgresql.conf
    sed -i 's/#password_encryption/password_encryption/' /etc/postgresql/16/main/postgresql.conf
    sed -ie 's/32\s ident/32 scram-sha-256/' /etc/postgresql/16/main/pg_hba.conf
    Service restart
    systemctl restart postgresql.service
  • Set password for user postgres
    sudo -u postgres psql
    
    postgres=# \password postgres
    postgres=# ALTER USER postgres VALID UNTIL 'infinity';
    postgres=# \q
    Make note of the password. It will be needed later during XorMon installation.

  • Configure firewall (optional, as root)

    Open XorMon port in the firewall 8443 TCP (XorMon UI) and 8162 TCP (OS agent communication).
    Install UFW firewall if needed
    apt install -y ufw
    ufw enable
    Configure firewall
    ufw allow ssh
    ufw allow http
    ufw allow https
    ufw allow 8443/tcp
    ufw allow 8162/tcp
    ufw reload
    ufw status verbose

  • Follow XorMon application install