Links
Comment on page
🌐

Platform

Installation completes within minutes, ensuring that all components are operational upon completion.
To upgrade an existing platform, please refer to Upgrade section
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
Suse SLES12, SLES15
To install Datasentinel on a different Linux system, please reach out to us at [email protected]

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
Instances
CPUs
Memory
Storage
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.
Date
Last available platform version
Text
2023-09-01
2023.07
ChangeLog
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. 1.
    Requests user input for the application username (default is datasentinel). The user can be pre-created with bash as the default shell.
  2. 2.
    Requests the application listening port (default is 443)
  3. 3.
    Creates the /datasentinel directory if it doesn't already exist
  4. 4.
    Decompresses datasentinel-platform.tar.gz to install all components
  5. 5.
    Creates entries in bash_profile and crontab
  6. 6.
    Deploys services for automatic restart
  7. 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. 1.
    Generate a certificate for the platform machine.
  2. 2.
    Replace the existing files cert_datasentinel.pemand key_datasentinel.pem with the real certificate
  3. 3.
    Restart NGINX

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 architecture
Datasentinel utilizes the following components:
  1. 1.
    Nginx web server
  2. 2.
    Datasentinel Backend API
  3. 3.
    Datasentinel dispatcher (Agentless feature)
  4. 4.
    Timeseries database InfluxDB
  5. 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 file
Information
/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