Debian, Ubuntu with TSDB built from source

Follow this installation guide if you cannot install the TimescaleDB extension from binary packages because they are not available for your OS version or you do not have access to the TimescaleDB repository.

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

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 PostreSQL 16 (as root)

    • Install prerequisite packages
      apt install postgresql-common apt-transport-https lsb-release
    • Run the PostgreSQL repository setup script
      /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
    • Update your local repository
      apt update
    • Install PostgreSQL 16
      apt install postgresql-16 postgresql-server-dev-16
  • Build TimescaleDB extension from source (as root)

    • Install prerequisite packages
      apt install git cmake gcc
    • Clone TimescaleDB source code
      cd ~
      git clone https://github.com/timescale/timescaledb
      cd timescaledb/
      git checkout 2.23.0
    • Build and install TimescaleDB
      cd ~/timescaledb/
      ./bootstrap
      cd ./build && make
      make install
  • Configure PostgreSQL

    • Configure parameters and TSDB extension
      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 -i "s/^#shared_preload_libraries.*/shared_preload_libraries = 'timescaledb'/" /etc/postgresql/16/main/postgresql.conf
      
      systemctl restart postgresql@16-main.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 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