Running XorMon NG is a quick and simple way to test the new version. However, we do not currently recommend using Docker version of XorMon NG for long-term production use.
Important notice:
Some devices require installation of third-party tools,
which is currently not supported in the Docker version.
This restriction applies to: All Databases, AWS, Google Cloud and some Storage systems.
You can see which storage systems require additional software: https://stor2rrd.com/install.php#storages
VMware, on the other hand, is supported and VMware Perl SDK can be installed using XorMon NG GUI.
There are two options:cd ~/xormon-ng vi .envFile contents
APP_PORT=8443 APP_TIMEZONE=<timezone> DB_HOST=timescaledb DB_PORT=5432 DB_USERNAME=postgres DB_PASSWORD=<db_password> DB_DATABASE=xormon APP_DEBUG=false APP_SECRET=<xormon-secret>Replace <variables> with values:
cd ~/xormon-ng vi docker-compose.ymlfile contents (copy/paste)
services: timescaledb: image: timescale/timescaledb:latest-pg16 restart: unless-stopped environment: - POSTGRES_USER=${DB_USERNAME} - POSTGRES_PASSWORD=${DB_PASSWORD} volumes: - ./data:/var/lib/postgresql/data ## uncomment if you want to have Postgres (TSDB) port opened on host # ports: # - '5432:5432' xormon: image: xorux/xormon-ng:latest restart: unless-stopped depends_on: - timescaledb env_file: .env volumes: - ./files:/usr/src/app/server-nest/files ports: - ${APP_PORT}:${APP_PORT} - 8162:8162
docker compose up -d
https://<docekr_vm_IP>:8443/Default login: xormon / xormon
docker compose pull docker compose up -d
mkdir -p /var/xormon-ng/data mkdir -p /var/xormon-ng/files
docker run -v /var/xormon-ng/data:/var/lib/postgresql/data \ -d --name timescaledb -p 5432:5432 \ -e POSTGRES_PASSWORD=<db_password> timescale/timescaledb:latest-pg16
cd /var/xormon-ng vi ./xormon-ng.envfile contents (copy/paste)
APP_PORT=8443 APP_TIMEZONE=<timezone> DB_HOST=timescaledb DB_PORT=5432 DB_USERNAME=postgres DB_PASSWORD=<db_password> DB_DATABASE=xormon APP_SECRET=<xormon-secret>Replace <variables> with values:
docker run -d --name xormon -p 8443:8443 \ -v /var/xormon-ng/files:/usr/src/app/server-nest/files \ --link timescaledb:timescaledb --env-file ./xormon-ng.env xorux/xormon-ng:latest
https://<docekr_vm_IP>:8443/Default login: xormon / xormon
docker rm -f {UUID|name} docker run -d --name xormon -p 8443:8443 \ -v /var/xormon-ng/files:/usr/src/app/server-nest/files \ --link timescaledb:timescaledb --env-file ./xormon-ng.env xorux/xormon-ng:latest
adduser xormon passwd xormonIncrease user system limits
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
# RHEL 8: subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms # RHEL 9: subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms # Rocky Linux 8.x dnf config-manager --set-enabled powertools # Rocky Linux 9.x dnf config-manager --enable crb
dnf install -y epel-release dnf install -y perl ed libxml2 sharutils epel-release wget curl gnupg net-tools sblim-wbemcli libaio wget curl strace dnf install -y perl-TimeDate perl-XML-Simple perl-XML-SAX perl-XML-LibXML perl-Env perl-CGI perl-Data-Dumper dnf install -y perl-LWP-Protocol-https perl-libwww-perl perl-Time-HiRes perl-IO-Tty openldap-clients dnf install -y perl-JSON perl-JSON-PP perl-JSON-XS net-snmp-perl perl-DBI perl-DBD-ODBC unixODBC unixODBC-devel freetds dnf install -y python3-virtualenv python3-pip libpq-devel python3-devel
dnf install -y java-11-openjdk-headless
curl -fsSL https://rpm.nodesource.com/setup_20.x | bash - dnf install -y nodejs npm update -g npm node -vYou can download and install Node.js from RPM if you cannot access the repository directly.
dnf install ./nodejs-20.5.0-1nodesource.x86_64.rpm -y npm update -g npm node -v
dnf -qy module disable postgresql
dnf install -y timescaledb-2-postgresql-16 postgresql16-contribIf above fails, you must add PostgreSQL and TimescaleDB repositories and try it again
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL [timescale_timescaledb] name=timescale_timescaledb baseurl=https://packagecloud.io/timescale/timescaledb/el/$(rpm -E %{rhel})/\$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 EOL
vi /etc/postgresql/16/main/postgresql.conf data_directory = '/home/xormon/xormon-ng/postgresql'under xormon user:
mkdir /home/xormon/xormon-ng mkdir /home/xormon/xormon-ng/postgresql
/usr/pgsql-16/bin/postgresql-16-setup initdb
timescaledb-tune -yes --pg-config=/usr/pgsql-16/bin/pg_config
systemctl enable --now postgresql-16
sudo -u postgres psql postgres=# \password postgres postgres=# \qMake note of the password. It will be needed later during XorMon NG installation.
firewall-cmd --zone=public --add-port=8443/tcp --permanent firewall-cmd --zone=public --add-port=8162/tcp --permanent firewall-cmd --reload
adduser xormonIncrease user system limits, append this into /etc/security/limits.conf 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
vi /etc/apt/sources.listYour '/etc/apt/sources.list' should look like:
# 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
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 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 python3-venv
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt-get install -y nodejs npm update -g npm node -v
/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
# Debian: echo "deb https://packagecloud.io/timescale/timescaledb/debian/ $(lsb_release -c -s) main" | tee /etc/apt/sources.list.d/timescaledb.list # Ubuntu: echo "deb https://packagecloud.io/timescale/timescaledb/ubuntu/ $(lsb_release -c -s) main" | tee /etc/apt/sources.list.d/timescaledb.list
wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | apt-key add - apt update apt install -y timescaledb-2-postgresql-16 postgresql-client systemctl enable --now postgresql
vi /etc/systemd/system/multi-user.target.wants/postgresql.service data_directory = '/home/xormon/xormon-ng/postgresql'under xormon user:
mkdir /home/xormon/xormon-ng mkdir /home/xormon/xormon-ng/postgresql
timescaledb-tune -yes systemctl restart postgresql
sudo -u postgres psql postgres=# \password postgres postgres=# \qMake note of the password. It will be needed later during XorMon NG installation.
apt install -y ufw ufw enableConfigure firewall
ufw allow ssh ufw allow http ufw allow https ufw allow 8443/tcp ufw allow 8162/tcp ufw reload
adduser xormon passwd xormonIncrease user system limits
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
# RHEL 9: subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms # Rocky / Alma / Centos Linux 9.x crb enable
dnf install -y epel-release dnf install -y perl ed libxml2 sharutils epel-release wget curl gnupg net-tools sblim-wbemcli libaio wget curl strace dnf install -y perl-TimeDate perl-XML-Simple perl-XML-SAX perl-XML-LibXML perl-Env perl-CGI perl-Data-Dumper dnf install -y perl-LWP-Protocol-https perl-libwww-perl perl-Time-HiRes perl-IO-Tty openldap-clients dnf install -y perl-JSON perl-JSON-PP perl-JSON-XS net-snmp-perl perl-DBI perl-DBD-ODBC unixODBC unixODBC-devel freetds dnf install -y python3-virtualenv python3-pip libpq-devel python3-devel
dnf install -y java-11-openjdk-headless
cd /tmp wget https://nodejs.org/dist/v20.12.0/node-v20.12.0-linux-ppc64le.tar.xz # extract package to /usr/local cd /usr/local tar xf /tmp/node-v20.12.0-linux-ppc64le.tar.xz --strip-components=1 # check node version node --version # remove source file rm /tmp/node-v20.12.0-linux-ppc64le.tar.xz # allow node binary to use privilleged (< 1024) ports, so we can run Xormon on a standard HTTPS port (443) setcap 'cap_net_bind_service=+ep' /usr/local/bin/node
dnf -qy module enable postgresql
dnf install -y postgresql-server postgresql-contrib
postgresql-setup --help
postgresql-setup initdb
# replace all ident methods with scram-sha-256 to anable login via TCP sed -i 's/ident$/scram-sha-256/g' /var/lib/pgsql/data/pg_hba.conf
# essentials for building dnf install cmake gcc postgresql-server-develGet the latest release (tar.gz source codes) from github.com/timescale/timescaledb/releases and extract to /tmp/timescaledb-2.xx.x
cd /tmp wget https://github.com/timescale/timescaledb/archive/refs/tags/2.14.2.tar.gz -O - | tar xz # bootstrap the build system cd timescaledb-2.14.2/ ./bootstrap # to build the extension cd build && make # to install make installWe need timescaledb-tune to configure PGSQL, install with Go lang if you are online
dnf install golang go install github.com/timescale/timescaledb-tune/cmd/timescaledb-tune@latest # tune PGSQL for TSDB /root/go/timescaledb-tune -yes -pg-config /usr/bin/pg_config -conf-path /var/lib/pgsql/data/or get ready to use RPM to install timescaledb-tune:
dnf install timescaledb-tune.el9.ppc64le.rpm # tune PGSQL for TSDB timescaledb-tune -yes -pg-config /usr/bin/pg_config -conf-path /var/lib/pgsql/data/
systemctl enable --now postgresql
sudo -u postgres psql postgres=# \password postgres postgres=# \qMake note of the password. It will be needed later during XorMon NG installation.
# OS agents connect to the port 8162 firewall-cmd --zone=public --add-port=8162/tcp --permanent # UI runs on port 443 firewall-cmd --zone=public --add-service=https --permanent # apply rules firewall-cmd --reload
su - xormon mkdir xormon-ng cd xormon-ng
tar zxf xormon-ng-<ver>.tar.gz rm xormon-ng-<ver>.tar.gz ./xormon.sh start
DB_HOST[127.0.0.1]= DB_PORT[5432]= DB_USERNAME[postgres]= DB_DATABASE[xormon]= DB_PASSWORD[]= <password>
netstat -an| grep LISTEN |grep ":443 "to change to 443 run this under root (note this must be re-run after each Node.js upgrade):
setcap 'cap_net_bind_service=+ep' `which node`Change port in the application under xormon user and restart Xormon NG
vi ~/xormon-ng/server-nest/.env APP_PORT=443 cd /home/xormon/xormon-ng ./xormon.sh stop ./xormon.sh start
cd ~/xormon-ng/server-nest/ python3 -m venv venv venv/bin/python3 -m ensurepip --upgrade venv/bin/python3 -m pip install --upgrade pip venv/bin/python3 -m pip install -r microservices/analyzer/requirements/requirements.txt cd ~/xormon-ng ./xormon.sh start
env PATH=$PATH:/usr/bin /home/xormon/xormon-ng/server-nest/node_modules/pm2/bin/pm2 startup systemd -u xormon --hp /home/xormon
https://<IP>:8443/Default login: xormon / xormon
cd /home/xormon/xormon-ng/ ./xormon.sh upgrade /tmp/xormon-ng-X.Y.Z.tar.gz
docker-compose pull docker-compose up -d
docker load < xormon-ng-docker-<version>.tar.gz docker rm -f {UUID|name} docker run -d --name xormon -p 8443:8443 \ -v /var/xormon-ng/files:/usr/src/app/server-nest/files \ --link timescaledb:timescaledb --env-file ./xormon-ng.env xorux/xormon-ng:latest
docker load < xormon-ng-docker-<version>.tar.gz docker rm -f {UUID|name} docker run -d --name xormon -p 8443:8443 \ -v /var/xormon-ng/files:/usr/src/app/server-nest/files \ --link timescaledb:timescaledb --env-file ./xormon-ng.env <image><image> ... version of your loaded image