๐ŸŒPlatform

Installation completes within minutes, ensuring that all components are operational upon completion.

To upgrade an existing platform, please refer to Upgrade section

๐Ÿ”„pagePlatform

The platform is available exclusively on linux systems:

Distribution

RHEL7, Centos7

RHEL8, Rocky linux 8, AlmaLinux 8

RHEL9, Rocky linux 9, AlmaLinux 9

Debian Buster/Bullseye

To install Datasentinel on a different Linux system, please reach out to us at support@datasentinel.io

License

A license key is required to use Datasentinel.

Obtain a Datasentinel license key:

Refer to the documentation for instructions on updating the Token to enable the license key.

System Requirements

The sizing of the machine (cpus, memory, storage) to be provisioned, will depend on the number of PostgreSQL instances to monitor as well as the data retention chosen. Default sizing recommendations with a retention of 14 days

InstancesCPUsMemoryStorage

1 to 10

4

8GB

25GB

11 to 50

8

16GB

50GB

51 to 100

8

32GB

75GB

101 to 200

16

64GB

100G

>200

24

96GB

150GB

We strongly recommend a machine with scale capabilities such as virtual machines

For enhanced memory management on a server hosting Datasentinel, it is advised to set the swappiness parameter to a value of 5.

You can confirm the current value:

cat /proc/sys/vm/swappiness

Security rules

Here are the firewall settings necessary for Datasentinel

  • The listening port of the platform server must be accessible to connect to the GUI. The port is the https port 443 by default and can be changed.

1. Agent-based mode

  • The listening port of the platform server must be accessible in both directions (PUSH and PULL) from the agents' servers.

  • Each agent listens on port 8282 by default (updatable). The platform server must be able to communicate with the agent servers on this port (PUSH and PULL)

2. Agentless mode

  • The platform connects directly to PostgreSQL instances. The listening port of each PostgreSQL instance must be accessible from the platform

Download

The platform is packaged as a single file, install-datasentinel-platform-<<OS>>-latest.tar.gz, which includes all necessary components.

DateLast available platform version

2024-04-10

2024.04

The file size is approximately 550 MB.

// Download example with wget
wget https://app.datasentinel.io/ds-api/download/install-datasentinel-platform-rhel9-latest.tar.gz

Installation

During installation, you will need to be logged in as the root account. However, this is the only time this account is required. After installation, all modules and future updates will be executed using the defined application account.

Prior to starting the installation process, it is necessary to install NGINX, as it serves as the initial entry point for Datasentinel.

// Example
dnf install -y nginx
// Uncompress the downloaded file
tar xvzf install-datasentinel-platform-rhel9-latest.tar.gz

Uncompress the downloaded file to create two files: init_datasentinel.sh and datasentinel-platform.tar.gz

The application binaries and the database for storing metrics will be installed in the /datasentinel directory. You can choose to pre-create the directory as a symbolic link, file system, or directory, or it will be created during installation. Make sure the directory is empty.

// Run the shell script
./init_datasentinel.sh

The script executes in less than 2 minutes and performs multiple actions:

  1. Requests user input for the application username (default is datasentinel). The user can be pre-created with bash as the default shell.

  2. Requests the application listening port (default is 443)

  3. Creates the /datasentinel directory if it doesn't already exist

  4. Decompresses datasentinel-platform.tar.gz to install all components

  5. Creates entries in bash_profile and crontab

  6. Deploys services for automatic restart

  7. Starts all components.

To install Datasentinel silently, use ./init_datasentinel.sh -d Default values will be used

At the end of the installation, the platform should be up and running.

The listening port must be opened and accessible. Also, be careful with your firewall configuration (SELinux, firewalld) if any. nginx is the entry component for Datasentinel, listening on port 443 by default for all incoming communications from other servers. It communicates locally with other components via their respective listening ports. Config file /etc/nginx/conf.d/datasentinel.conf

If a 502 error appears on the graphical interface despite all components being up and running, itโ€™s worth checking the firewall settings, such as SELinux

SSL Certificate

The on-premises platform utilizes a self-signed certificate configured with NGINX. The self-signed certificate is located in the /etc/nginx/certs directory. If desired, you can replace it with your own certificate. To do so:

  1. Generate a certificate for the platform machine.

  2. Replace the existing files cert_datasentinel.pemand key_datasentinel.pem with the real certificate

  3. Restart NGINX or reload it: /usr/sbin/nginx -s reload

The configuration file used by NGINX is /etc/nginx/conf.d/datasentinel.conf

User interface

Once the installation is complete, access the UI using url and username:

  • URL: https://<<server_name>>

  • Username: datasentinel

The password will be displayed at the end of the installation process

License update

To begin using Datasentinel, you must update the license by following the instructions on how to update the token.

Components

Datasentinel utilizes the following components:

  1. Nginx web server

  2. Datasentinel Backend API

  3. Datasentinel dispatcher (Agentless feature)

  4. Timeseries database InfluxDB

  5. Grafana Frontend, which includes a PostgreSQL database and Datasentinel Frontend as a plugin.

Each component is restarted automatically with a system service located on /usr/lib/systemd/system

Component Management

// Start All
systemctl start datasentinel_influxdb datasentinel_postgresql datasentinel_grafana datasentinel_backend datasentinel_dispatcher nginx
// Stop All
systemctl stop datasentinel_influxdb datasentinel_postgresql datasentinel_grafana datasentinel_backend datasentinel_dispatcher nginx
// Component status
systemctl -l | egrep -i "datasentinel_|nginx"

An alias is available when connected as datasentinel to check the availability of all components

// alias
status_datasentinel
// Output
datasentinel_backend.service                                       loaded active running   Datasentinel backend APIs
datasentinel_dispatcher.service                                    loaded active running   Datasentinel dispatcher
datasentinel_influxdb.service                                      loaded active running   InfluxDB service
datasentinel_grafana.service                                       loaded active running   Grafana daemon
datasentinel_postgresql.service                                    loaded active running   PostgreSQL 10 database server
nginx.service                                                      loaded active running   The nginx HTTP and reverse proxy server

Status Check via the API

Another method to check the status of the platform is by querying its API using the following curl command

// curl
curl -k https://localhost/ds-api/
// output
{
"status": "OK",
"message": "Datasentinel Backend up and running",
"datasentinel_version": "2023.05",
"services": [
   {
      "name": "nginx",
      "description": "Nginx web server",
      "running": true
   },
   {
      "name": "datasentinel_grafana",
      "description": "Grafana frontend",
      "running": true
   },
   {
      "name": "datasentinel_postgresql",
      "description": "PostgreSQL instance",
      "running": true
   },
   {
      "name": "datasentinel_backend",
      "description": "Backend service and API",
      "running": true
   },
   {
      "name": "datasentinel_dispatcher",
      "description": "Agentless service",
      "running": true
   },
   {
      "name": "datasentinel_influxdb",
      "description": "Influxdb database",
      "running": true
   }
]
}

Installation demo

Log files

Datasentinel generates logs, which are located in the /datasentinel/log directory, except for the NGINX log file

Log fileInformation

/var/log/https_datasentinel.log

Nginx log access (by default, access log is off)

datasentinel.log

Backend log file

dispatcher.log

Agentless feature log file

alerting.log

Alerting and Notification log file

scheduler.log

Scheduler log file

backend_to_influx.log

Log data copied to influxdb database in case of errors

grafana.log

Grafana log access

Last updated