Debian 11/12, Ubuntu 22

Overview of XorMon requirements:
  • Node.js 20
  • PostgreSQL 16
  • Timescale DB 2.17 Community Edition
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)
After installing the host system, install XorMon by following the instructions on the XorMon app install tab.

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
  • Add 'non-free' repository to Debian 11/12 apt sources
    vi /etc/apt/sources.list
    Debian 11
    deb http://deb.debian.org/debian/ bullseye main contrib non-free
    deb-src http://deb.debian.org/debian/ bullseye main contrib non-free
    
    deb http://security.debian.org/debian-security bullseye-security main contrib non-free
    deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
    
    deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
    deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free
    Debian 12
    deb http://deb.debian.org/debian/ bookworm main non-free-firmware non-free
    deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware non-free
    
    deb http://security.debian.org/debian-security bookworm-security main non-free-firmware non-free
    deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware non-free
    
    deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware non-free
    deb-src http://deb.debian.org/debian/ bookworm-updates main non-free-firmware non-free
  • Install additional packages (as root)
    apt update
    apt install -y perl ed wget ca-certificates curl gnupg sudo snmp snmp-mibs-downloader nmap alien libaio1 ksh tcpdump sblim-wbemcli net-tools strace iputils-ping dnsutils unzip 
    apt install -y librrdp-perl libxml-sax-perl libxml-simple-perl libtimedate-perl libenv-sanctify-perl libcgi-pm-perl 
    apt install -y libsnmp-perl libdata-dumper-simple-perl libxml2-utils liblwp-protocol-https-perl libcrypt-ssleay-perl ldap-utils
    apt install -y libio-socket-ssl-perl libmozilla-ldap-perl libxml-parser-perl libjson-xs-perl libio-pty-perl libxml-libxml-perl
    apt install -y postgresql-common apt-transport-https lsb-release libdbd-odbc-perl default-jre libdbd-pg-perl
    apt install -y libnet-inet6glue-perl # it might not exist everywhere like RedHat 9.x, then ignore it
    apt install -y libdbd-pg-perl # for oVirt/RHV/OLVM support only
    Python: required only for prediction graphs
    You can run XorMon without it if you have trouble downloading necessary Python modules
    apt install -y python3-venv
  • 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)
    curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
    apt-get install -y nodejs
    npm update -g npm
    node -v
  • Install Timescale DB (as root)
    XorMon requires TimescaleDB Community Edition 2.13 or newer.
    Do not install Timescale DB distributed under the Apache license because it lacks some key features required by XorMon.

    • Install the latest PostgreSQL packages
      apt install gnupg postgresql-common apt-transport-https lsb-release wget
    • Run the PostgreSQL package setup script
      /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
    • Add the TimescaleDB package
      ## 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
    • Install the TimescaleDB GPG key
      wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg
    • Update your local repository list
      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