Installing Sisense on Linux
Last updated: October 21, 2026
| Tier | Deployment |
|
|
Note:
Sisense may provide configuration recommendations in an attempt to assist with integrating third-party solutions (e.g., monitoring, storage type solutions, etc.) to work better with Sisense; however, Sisense is not responsible for installing or supporting any such third-party solutions.
Ensure that you thoroughly review Minimum Requirements for Sisense in Linux Environments and Checking the Prerequisites before installation.
Tip:
This page describes the sisense.sh installer. If you already have a Kubernetes cluster, you can also install Sisense with Helm directly, without sisense.sh, a Linux install machine, an SSH key, or sudo. See Choosing an Installation Method.
Installation User and Privileges
You run sisense.sh on one Linux machine, the install machine. The privileges that the installation user (the linux_user parameter) needs depend on the deployment type:
| Deployment type | What the installation user needs |
|---|---|
|
Single node or cluster (multi-node) on RKE2, installed by sisense.sh (single_config.yaml, cluster_config.yaml) |
A regular (non-root) user with passwordless |
|
Existing cloud cluster (EKS, AKS, GKE) or OpenShift (cloud_config.yaml, openshift_config.yaml) |
On the machine that runs sisense.sh, use a regular (non-root) Linux user that can run |
|
Provisioner or Helm (without sisense.sh) |
No Linux user, SSH key, or |
The installer checks the sudo privileges of linux_user when it starts. If sudo asks for a password, the installation stops with the message User <user> has insufficient sudo permissions. You can remove the NOPASSWD rule after the installation completes.
Sisense services run as a regular user, not as root: Sisense pods run as UID/GID 1000 by default (set with run_as_user, run_as_group, and fs_group), and the installer sets the owner of /opt/sisense to this UID/GID. For more information, see Privileges and Permissions for Self-Deployment.
What the Installer Changes on Your Servers (RKE2 Only)
For single-node and cluster deployments on RKE2, the installer connects to each server in k8s_nodes over SSH on port 22 (the SSH port is not configurable) and uses sudo to prepare the server for Kubernetes. Review these changes before you install. On an existing cloud cluster or OpenShift, the installer does not connect to or change the cluster servers.
On each server, the installer:
-
Disables swap and removes swap entries from /etc/fstab.
-
Sets SELinux to
disabled(in /etc/selinux/config) and switches it off for the running system. -
On a new online installation, stops and disables the host firewall service (
firewalldorufw) if it is running. -
Loads the kernel modules that Kubernetes networking needs (for example,
br_netfilterandvxlan). -
Writes kernel settings (sysctl) to /etc/sysctl.conf and /etc/sysctl.d/, for example
net.ipv4.ip_forward=1,net.bridge.bridge-nf-call-iptables=1,vm.overcommit_memory=1, and higherfs.inotifylimits. -
Sets the server's hostname to the
nodevalue ink8s_nodes. -
Creates /opt/sisense and its data directories and sets their owner to
run_as_user:run_as_group(1000:1000 by default). -
Installs OS packages it needs (for example,
lvm2forrook-cephstorage, or the NFS client package fornfsandefsstorage). If you set a proxy, the installer adds it to the package manager configuration. -
Installs RKE2 (version v1.37.0+rke2r1) as a systemd service:
rke2-serveron the first server ink8s_nodesandrke2-agenton the other servers. It also copieskubectlandhelmto /usr/local/bin.
On the install machine, the installer also installs packages (for example, Python, jq, pssh, and sshpass), creates a Python virtual environment in the installer directory, copies kubectl, helm, and helmfile to /usr/local/bin, saves rendered configuration under /opt/sisense/config, and adds command completion to ~/.bashrc. For RKE2 deployments, it copies the cluster's kubeconfig to ~/.kube/config, and (for online installations) sets SSH keep-alive options in /etc/ssh/sshd_config and restarts the SSH service.
Cluster Networking Defaults
The installer creates the RKE2 cluster with the Calico network plugin (cni_plugin) and these address ranges:
-
Pod network:
10.42.0.0/16 -
Service network:
10.43.0.0/16 -
Cluster DNS:
10.43.0.10
Make sure these ranges do not overlap with your servers' networks. You cannot change them after the cluster is created. For the ports that must be open between the servers, see Sisense Required Ports for Linux.
Installing Sisense
Pre-Installation:
- Backup the Sisense servers prior to installation, for rollback purposes.
-
Prepare the installation user: a regular (non-root) Linux user that can run
sudowithout a password. For single-node and cluster deployments on RKE2, the user must exist on the install machine and on every server in the cluster. For an existing cloud cluster or OpenShift, the user is needed only on the install machine. See Installation User and Privileges.Check which privileges each user has to run
sudo:sudo -l -U <installation user>The response to this command must include the following:
(ALL : ALL) NOPASSWD: ALLIt is recommended that the user has a UID/GID of 1000. Run the following command to check the user's UID:
id -u <installation user>If you need to use a user with a UID/GID other than 1000, see Installing RKE with a Specified UID.
- Log in to the install machine as the installation user.
-
Navigate to the directory that you will install from.
cd sisense-installation-directory -
Deployment
Sisense supports four types of deployment:
- Single-node
- Cluster (multi-node)
- OpenShift
- Cloud-based Kubernetes
Contact your Sisense Customer Success Manager to receive the link to the latest Linux archive file. The archive includes five configuration files, one for each of the deployment types and a generic config.yaml file that contains all of the parameters for each deployment.
Follow the instructions for your type of deployment in the relevant drop-down option below:
Single Node Deployments on RKEBefore you set up Sisense on your single Linux machine, you must mount /opt on a dedicated disk. For instructions on how to mount /opt, see Mounting on a Dedicated Disk for Sisense Single Nodes.
Notes:
-
Run the installer as a regular (non-root) user with passwordless
sudoon this server. Sisense services run as a regular user (UID 1000 by default), not as root. See Installation User and Privileges. -
If you are deploying Sisense on Red Hat Enterprise Linux 8.4, execute the following commands prior to running the Sisense installation:
sudo systemctl disable nm-cloud-setup.service nm-cloud-setup.timersudo reboot
You must reboot or the changes will not be applied. Thereafter, install Sisense as usual.
Make sure you have enough disk space on the disk you mount. The disk must include 50GB + 2*(size of the ElasticCube data), with no less than 50GB.
To initialize Sisense in a Linux environment:
- Using the sudo user you created, in the Linux CLI, enter the following command to download the Sisense tar.gz file.
wget [sisense-linux-deployment-link]
- Extract the tar.gz file into the {
sisense-version} folder:tar zxf [sisense-linux-deployment-package-name]
- Navigate to the {
sisense-version} directory where you extracted the tar.gz file.cd sisense-[sisense-version]
- Edit the single_config.yaml file.
vim single_config.yaml
-
In the single_config.yaml file, you must enter values for the following parameters:
Parameters
Value
k8s_nodes - { node: [name], internal_ip: 0.0.0.0, external_ip: 0.0.0.0 }
K8S node/nodes are the set of machines that are used to run Sisense.
This parameter sets:
- node - The DNS name of your node. Changing the node name changes the hostname when the installer runs.
- internal_ip - The internal IP address of the node. Unless
remote_installationis true, this must be an IP address of the machine you run the installer on. - external_ip - The external IP address sets how your cluster can be accessed from outside, or the DNS name of the node. It can have the same value as the internal IP if this is the only IP used to access the node.
Note:
Node names may not include uppercase letters or underscores. Node names can only include lowercase letters, digits and hyphens. Hyphens cannot be the last character in the node name.
The installation machine is only used during installation to run the installation scripts. The installation machine can be the node itself, or it can also be a different machine (remote installation).
The installer labels the node with
node=single.deployment_size: "small"
To increase the pod resource limits allocated for the application, set deployment_size to large.
cluster_visibility: true
For security restrictions that revoke cluster role permissions, set cluster_visibility to false to disable the following Sisense workflows:
- Watching Sisense Nodes that exist or are added to the cluster (e.g. for the data-groups feature). In this case, use the manual labeling method.
- Updating the logging system with the customer-registered owner ID.
With false, the installer also does not label the nodes; label them yourself before you install.
offline_installer: false
Set offline_installer to true when you are using an offline installer. In offline mode, the installer does not install OS packages or download anything; the required packages must already be installed on the servers.
delete_local_images: false
For offline customers. Enter true for when uploading images to your private registry (command
bash ./installer/offline/offline_installer.sh upload ${CONFIG_FILE} <USERNAME>),
after each successful upload, it will delete the image from your local registry on your server and will also remove the.tarof that image from the installation dir in your local file system, thereby saving a lot of space on your server.docker_registry: "quay.io/sisense_release"
The registry that Sisense images are pulled from. Change it only if you use your own private registry or an offline installation.
Note:
If you are using a private docker registry, you must either:
-
Use a docker username & password (the parameters below), and the installer will create the secret for you
OR
-
You can manually create your own pull secret and use the
pull_secrets_nameparameter
docker_username: ""
(Optional) Only required if you are using a private registry and the installer will create the pull secret. If
private_docker_registryis true and this value is empty, the installer prompts for it.docker_password: ""
(Optional) Only required if you are using a private registry and the installer will create the pull secret. If
private_docker_registryis true and this value is empty, the installer prompts for it.The installer creates the pull secret
sisense-pull-secretfromdocker_usernameanddocker_password.private_docker_registry: false
Set to true if the registry in
docker_registryrequires credentials. The installer then usesdocker_usernameanddocker_password, and configures RKE2 to pull its images from this registry.#docker_registry_protocol: http
(Optional) The protocol RKE2 uses to reach your private registry: http (default) or https. Uncomment it to change it.
overwrite_docker_secret: false
If set to true and the pull secret already exists, the installer replaces it with one created from
docker_usernameanddocker_password.#pull_secrets_name: ""
(Optional) Only required if you will create the pull secret yourself.
Enter the name of your Docker pull secret. The default name is
sisense-pull-secret.remote_installation: false
Set to true if you run the installer from a machine that is not one of the Kubernetes nodes (for example, a bastion host). The installer then connects to the nodes using their
external_ipaddresses.If set to false, run the installer on the first node in
k8s_nodes. Otherwise, the installation stops with the messageSisense Installer must run from the first k8s node of the cluster(or, for a single node,Sisense Installer local IP address for k8s node does not match).update: false
Set to true when you upgrade an existing installation. With true, the installer skips server preparation and the RKE2 installation (unless
update_k8s_versionis also true) and upgrades Sisense.Staging and dev environments can run on the same cluster as a separate namespace. To install on a separate namespace, see Setting Up Multiple Instances of Sisense.
notify_on_upgrade: true
If set to true, the Sisense application will not be accessible during upgrades. Instead, a system maintenance notification will appear.
update_k8s_version: false
To update the Kubernetes version, set this to true. The installer then also runs the server preparation and RKE2 installation steps, and upgrades RKE2 to the version included in the installer.
recover_kubernetes: false
Set to true to restore the RKE2 cluster from the latest etcd snapshot. RKE2 takes an etcd snapshot every 12 hours on the first server (the RKE2 server) and keeps the last 6. If no snapshot is found, the installation stops with the message
No ETCD snapshot found.cni_plugin: calico
Enables the user to set their preferred CNI (Container Network Interface) while deploying a new Kubernetes.
Valid values: calico (default), flannelNote:
When update_k8s_version is set to true, you must set this to your currently existing CNI value. (You can find your CNI value with the command:
kubectl get pod -n kube-system | grep 'calico\|flannel'.)enable_widget_deltas: false
Set to true to enable the delta approach for shared dashboards and widgets.
application_dns_name: ""
Enter the DNS name.
- If no DNS name is entered, the default value is the external IP of the first node in the cluster.
- If the is_ssl parameter is set to true, enter the Common Name for this parameter.
- If an external load balancer is used for the Common Name, add the http:// or https:// prefix to the entry.
Note:
- You can only define this parameter when installing or upgrading Sisense. After defining this value, you can view this value under General Settings in the Sisense Admin page.
- The Web Server Alias must only contain the domain name, for example, https://secure.mydomain.com. It must not contain a deep link, for example, https://secure.mydomain.com/ReportingAdvanced/AdvancedDashboarding.aspx?myurl=.
linux_user: ""
Required. Enter the name of an existing Linux user. Do not use root. The user must be able to run
sudowithout a password on the install machine and on every server ink8s_nodes(the installer logs in to each server over SSH as this user). See Installation User and Privileges.If the user does not exist on the install machine, the installation stops with the message
Failed to find linux user.ssh_key: ""
The path to the private SSH key of
linux_user(for example, a .pem file) that the installer uses to log in to the servers. The installer changes the file's permissions to 400.If you leave this empty, the installer prompts for the user's password when it starts.
run_as_user: 1000
The UID that Sisense pods run as (
securityContext.runAsUser). The installer also sets the owner of /opt/sisense and its data directories to this UID. Default: 1000. See Installing RKE with a Specified UID.run_as_group: 1000
The GID that Sisense pods run as (
securityContext.runAsGroup), and the group owner of /opt/sisense. Default: 1000. See Installing RKE with a Specified UID.fs_group: 1000
The
securityContext.fsGroupsetting for the Kubernetes pods. Kubernetes changes the group ownership of each supported volume to this GID when the volume is mounted. Default: 1000. See Installing RKE with a Specified UID.namespace_name: sisense
Enter the name of the Kubernetes namespace. By default, the namespace is
sisense.The name must be lowercase. If it contains uppercase letters, the installer converts it to lowercase and updates your configuration file.
gateway_port: 30845
Enter the port of the API gateway for your deployment. If you are not implementing SSL, this is the port used to connect to Sisense (a NodePort, open on every node). Default: 30845.
If you set
gateway_portto 80, or setis_sslto true, the installer installs NGINX Gateway Fabric, and Sisense is served on port 80 (HTTP) or 443 (HTTPS) of the nodes instead. Do not set this port to 443.timezone: "UTC"
Enter the system time zone based on the TZ database name (for example, UTC, US/Central, Asia/Tokyo, Etc/GMT+6).
external_zookeeper:
enabled: false
connection_string: ""To use your own ZooKeeper instead of the one Sisense deploys, set
enabled: trueand enterconnection_stringin the formathost1:port1,host2:port2,host3:port3. Sisense then does not deploy ZooKeeper.external_rabbitmq:
enabled: false
connection_string: ""
mgmt_url: ""To use your own RabbitMQ instead of the one Sisense deploys, set
enabled: true, enterconnection_string(format:amqp://username:password@host:port/vhost) andmgmt_url(format:http://host:port). Sisense then does not deploy RabbitMQ.init_containers:
zookeeper: true
rabbitmq: trueInit containers that make Sisense services wait until ZooKeeper and RabbitMQ are available. Both are true by default. Set one to false to skip that check for faster startup.
is_ssl: false
Set the value to true for secure connections to Sisense. The installer creates the TLS secret
sisense-tlsfromssl_key_pathandssl_cer_pathand installs NGINX Gateway Fabric to serve Sisense on port 443.Set the value to false if you have not implemented SSL.
If set to true, see Setting Up SSL for Sisense on Linux.
ssl_key_path: ""
If you connect to your server securely, enter the path of the SSL key file on the install machine.
When SSL is defined, the Sisense API Gateway Port will be 443 and not the value defined in the gateway_port parameter. If the key or certificate file does not exist, the installation stops with the message
Error: SSL certificate or key file does not exist.ssl_cer_path: ""
If you connect to your server securely, enter the path of the SSL certificate (.cer file) on the install machine.
#http_proxy:
(Optional) If you use a web proxy, enter the unsecured proxy value.
Note:
If your Linux system uses a proxy server for external traffic and no proxy for local traffic, you must complete the system configuration and Sisense configuration steps in Configuring for Linux Installation on a Proxy, No Proxy System before initializing Sisense on your system.
#https_proxy:
(Optional) If you use a web proxy, enter the secured proxy value.
#no_proxy:
(Optional) If you use a web proxy, enter the addresses to exclude from your proxy. Use commas to separate multiple addresses. If you set a proxy without
no_proxy, the installer logs the warningno_proxy is not configured, this can cause issues.hpa:
enabled: falseSet
enabled: trueto enable the Horizontal Pod Autoscaler (HPA) with CPU-based scaling for Sisense services.expose_nodeports: false
Not in the configuration file by default; add it to use it. When set to true, Sisense also exposes internal services (MongoDB, management, query, build, translation, and their debug ports) on NodePorts 30017, 30022, 30082, 30084, 30086, 30092, 30094, 30096, 30555, and 30870 on every node. Leave it false unless you need direct access to these services.
internal_monitoring: true
When set to true, Sisense installs Prometheus and Grafana for internal monitoring. To disable internal monitoring of your deployment, set this to false. See Monitoring Sisense on Linux and Installing RKE with a Specified UID.
signature_validation: false
Enter true to enable Image Signature Validation.
uninstall_cluster: false
To remove the Kubernetes infrastructure and Sisense services, set this to true.
uninstall_sisense: false
To uninstall Sisense services, but leave your Kubernetes infrastructure unchanged (if it is needed in the future), set this to true.
remove_user_data: false
To delete all user data, set this to true. This deletes your ElastiCube models, application database, message broker, and add-ons.
- Run the installation script.
./sisense.sh single_config.yamlYour configuration settings are displayed with a message to confirm that you want to deploy Sisense with these settings. To skip the confirmation (for example, in an unattended run), add
-y:./sisense.sh single_config.yaml -y - Enter y to confirm that you want to deploy Sisense, or enter n to abort the deployment. The installer writes its log to sisense-installer.log in the directory you ran sisense.sh from. If there are any issues, see Installation Logs and Troubleshooting.
When the installation finishes, the installer displays the address of your Sisense application, for example
The app is accessible on address: http://10.0.0.11:30845. For non-secure connections, the default address ishttp://{IP}:30845/; for secure connections, it ishttps://{application_dns_name}/. See Accessing Sisense After Installation.Cluster (Multi-Node) Deployments on RKEThe instructions below describe how to deploy Sisense in a cluster deployment.
Note:
-
If your cluster deployment is on EC2 with FSX for Lustre, see Deploying Sisense on EC2 with Amazon FSx for Lustre.
-
If you are deploying Sisense on Red Hat Enterprise Linux 8.4, execute the following commands for each node prior to running the Sisense installation:
sudo systemctl disable nm-cloud-setup.service nm-cloud-setup.timer
sudo reboot
You must reboot or the changes will not be applied. Thereafter, install Sisense as usual.
Important:
Use a regular (non-root) user with passwordless
sudoon the install machine and on every server in the cluster (the installer prepares the OS and installs RKE2 on each server over SSH). The install machine must reach every server over SSH on port 22. Sisense services run as a regular user (UID 1000 by default), not as root. See Installation User and Privileges and What the Installer Changes on Your Servers (RKE2 Only).To install Sisense in a cluster deployment:
- In the Linux CLI, execute the following command to download the Sisense tar.gz file.
wget [sisense-linux-deployment-link]
- Extract the tar.gz file:
tar zxf [sisense-linux-deployment-package-name]
- Navigate to the directory where you extracted the tar.gz file.
cd sisense-[sisense-version]
- Edit the cluster_config.yaml file.
vim cluster_config.yaml -
In the cluster_config.yaml file, populate values for the following parameters:
Note:
If you have multiple deployments, assign a unique namespace for each deployment. For example, there might be development and production environments. Additionally, for multiple deployments, each environment must have a unique gateway_port.
Parameters
Value
k8s_nodes:
- { node: node1, internal_ip: 0.0.0.0, external_ip: 0.0.0.0, disk_volume_device: /dev/sdb, roles: "application, query" }
- { node: node2, ... }The K8S nodes are the set of machines that will be used to run Sisense.
If you are implementing a multi-node cluster deployment, define the following for each node:
node: The DNS name of your node. The installer sets the server's hostname to this value.
Note:
Node names may not include uppercase letters or underscores. Node names can only include lowercase letters, digits and hyphens. Hyphens cannot be the last character in the node name.
internal_ip: The internal IP address of the node within your network.
external_ip: This address determines how your cluster can be accessed from outside, or the DNS name of the node. It can also be the same value as the internal IP if this is the only IP used to access the node. With
remote_installation: true, the installer connects to the nodes through this address.disk_volume_device: For
storage_type: rook-ceph, the path of an unpartitioned, unmounted block device on the node (for example,/dev/sdb) that Rook Ceph uses for storage.roles: Sets the role of the node. Valid values:
"application","query","build","application, query","query, build", or"application, query, build". The installer labels each node according to its roles withnode-<namespace>-Application=true,node-<namespace>-Query=true, andnode-<namespace>-Build=true(for example,node-sisense-Application=true), after it removes any existing Sisense role labels.The first node in the list becomes the RKE2 server (control plane); the other nodes join it as agents. Unless
remote_installationis true, run the installer on the first node.The installation machine is only used during installation, to run the installation scripts. The installation machine can be one of the Kubernetes nodes, but it can also be a different machine (for remote installation).
To add or remove nodes in an existing cluster, add or remove them in
k8s_nodes, setupdate_k8s_versionto true, and run sisense.sh again.deployment_size: "small"
To increase the pod resource limits allocated for the application, set deployment_size to large.
cluster_visibility: true
For security restrictions that revoke cluster role permissions, set cluster_visibility to false to disable the following Sisense workflows:
- Watching Sisense Nodes that exist or are added to the cluster (e.g. for the data-groups feature). In this case, use the manual labeling method.
- Updating the logging system with the customer-registered owner ID.
With false, the installer also does not label the nodes; label them yourself before you install.
offline_installer: false
Set offline_installer to true when you are using an offline installer. In offline mode, the installer does not install OS packages or download anything; the required packages must already be installed on the servers.
delete_local_images: false
For offline customers. Enter true for when uploading images to your private registry (command
bash ./installer/offline/offline_installer.sh upload ${CONFIG_FILE} <USERNAME>),
after each successful upload, it will delete the image from your local registry on your server and will also remove the.tarof that image from the installation dir in your local file system, thereby saving a lot of space on your server.docker_registry: "quay.io/sisense_release"
The registry that Sisense images are pulled from. Change it only if you use your own private registry or an offline installation.
Note:
If you are using a private docker registry, you must either:
-
Use a docker username & password (the parameters below), and the installer will create the secret for you
OR
-
You can manually create your own pull secret and use the
pull_secrets_nameparameter
docker_username: ""
(Optional) Only required if you are using a private registry and the installer will create the pull secret. If
private_docker_registryis true and this value is empty, the installer prompts for it.docker_password: ""
(Optional) Only required if you are using a private registry and the installer will create the pull secret. If
private_docker_registryis true and this value is empty, the installer prompts for it.The installer creates the pull secret
sisense-pull-secretfromdocker_usernameanddocker_password.private_docker_registry: false
Set to true if the registry in
docker_registryrequires credentials. The installer then usesdocker_usernameanddocker_password, and configures RKE2 to pull its images from this registry.#docker_registry_protocol: http
(Optional) The protocol RKE2 uses to reach your private registry: http (default) or https. Uncomment it to change it.
overwrite_docker_secret: false
If set to true and the pull secret already exists, the installer replaces it with one created from
docker_usernameanddocker_password.#pull_secrets_name: ""
(Optional) Only required if you will create the pull secret yourself.
Enter the name of your Docker pull secret. The default name is
sisense-pull-secret.enable_widget_deltas: false
Set to true to enable the delta approach for shared dashboards and widgets.
update: false
Set to true when you upgrade an existing installation. With true, the installer skips server preparation and the RKE2 installation (unless
update_k8s_versionis also true) and upgrades Sisense.notify_on_upgrade: true
If set to true, the Sisense application will not be accessible during upgrades. Instead, a system maintenance notification will appear.
remote_installation: false
Set to true if you run the installer from a machine that is not one of the Kubernetes nodes (for example, a bastion host). The installer then connects to the nodes using their
external_ipaddresses.If set to false, run the installer on the first node in
k8s_nodes. Otherwise, the installation stops with the messageSisense Installer must run from the first k8s node of the cluster(or, for a single node,Sisense Installer local IP address for k8s node does not match).application_dns_name: ""
Enter the DNS name.
- If no DNS name is entered, the default value is the external IP of the first node in the cluster.
- If the is_ssl parameter is set to true, enter the Common Name for this parameter.
- If an external load balancer is used for the Common Name, add the http:// or https:// prefix to the entry.
Note:
- You can only define this parameter when installing or upgrading Sisense. After defining this value, you can view this value under General Settings in the Sisense Admin page.
- The Web Server Alias must only contain the domain name, for example, https://secure.mydomain.com. It must not contain a deep link, for example, https://secure.mydomain.com/ReportingAdvanced/AdvancedDashboarding.aspx?myurl=.
linux_user: ""
Required. Enter the name of an existing Linux user. Do not use root. The user must be able to run
sudowithout a password on the install machine and on every server ink8s_nodes(the installer logs in to each server over SSH as this user). See Installation User and Privileges.If the user does not exist on the install machine, the installation stops with the message
Failed to find linux user.ssh_key: ""
The path to the private SSH key of
linux_user(for example, a .pem file) that the installer uses to log in to the servers. The installer changes the file's permissions to 400.If you leave this empty, the installer prompts for the user's password when it starts.
run_as_user: 1000
The UID that Sisense pods run as (
securityContext.runAsUser). The installer also sets the owner of /opt/sisense and its data directories to this UID. Default: 1000. See Installing RKE with a Specified UID.run_as_group: 1000
The GID that Sisense pods run as (
securityContext.runAsGroup), and the group owner of /opt/sisense. Default: 1000. See Installing RKE with a Specified UID.fs_group: 1000
The
securityContext.fsGroupsetting for the Kubernetes pods. Kubernetes changes the group ownership of each supported volume to this GID when the volume is mounted. Default: 1000. See Installing RKE with a Specified UID.high_availability: true
True means that Sisense is scaled for service redundancy: ZooKeeper, RabbitMQ, and MongoDB run with three replicas each, on nodes that have the application or build role.
False means that Sisense will not scale its services.
hpa:
enabled: falseSet
enabled: trueto enable the Horizontal Pod Autoscaler (HPA) with CPU-based scaling for Sisense services.storage_type: ""
The shared storage for the cluster. Setting
storage_type(orrwx_sc_name) installs Sisense in cluster (HA) mode. Valid values:-
rook-ceph: The installer installs Rook Ceph and creates the StorageClasses
rook-cephfs-r3(shared) androok-ceph-block, using the block device in each node'sdisk_volume_device. The device must be unpartitioned and unmounted, and at least 3 ×mongodb_disk_size+ 3 ×zookeeper_disk_size+sisense_disk_size+ 3 GB in size. -
nfs: For using an external NFS server as the shared storage. You must define the nfs_server and nfs_path parameters, and have root read/write permissions for the Sisense system installation user on the path from the cluster hosts. Note that Sisense requires NFS v4 implementation of NFS. The installer installs the NFS CSI driver and creates the StorageClass
nfs-csi. -
efs: For using Amazon EFS on EC2 servers. You must also enter values for efs_file_system_id and efs_aws_region. See Installing Sisense on a Multi-Node Cluster with EFS as the Shared Storage.
-
fsx: For using an Amazon FSX cluster. You must also enter values for fsx_dns_name and fsx_mount_name. See Deploying Sisense on EC2 with Amazon FSx for Lustre.
-
portworx, cephfs, trident: Accepted, but the installer does not install a storage driver or create StorageClasses for them. Create the StorageClasses yourself and set
rwx_sc_nameandrwo_sc_name.
(azurefile and nfs-server are used only on AKS and OpenShift.) Any other value stops the installation with the message
ERROR: Unsupported storage type.rwx_sc_name: ""
rwo_sc_name: ""(Optional; not in cluster_config.yaml by default.) The names of existing StorageClasses for shared ReadWriteMany volumes (
rwx_sc_name) and for ReadWriteOnce volumes (rwo_sc_name), to use instead of StorageClasses created by the installer.Both StorageClasses must exist before you run the installer; the installer checks this. If
storage_typeis empty, you must set both, or the installation stops with the messageIncorrect input for storage_type. Setting either one also skips the installer's validation checks on the servers.For more information, see Storage Requirements for Self-Deployment.
efs_file_system_id: ""
For
storage_type: efs, the ID of your EFS file system (for example,fs-a1b2c3d4e5).efs_aws_region: ""
For
storage_type: efs, the AWS region of your EFS file system.fsx_dns_name: ""
If your system uses AWS FSx services, enter the associated DNS alias name.
fsx_mount_name: ""
If your system uses AWS FSx services, enter the mount name for the file system.
nfs_server: ""
Enter your NFS server's address (IP or DNS).
nfs_path: ""
Enter your NFS server's location.
The mounting point for each logical disk (Sisense app, MongoDB, and Zookeeper) is created under this path.
sisense_disk_size: 70
The size, in GB, of the shared storage volume for Sisense data.
mongodb_disk_size: 20
The size, in GB, of the volume of each MongoDB replica (three replicas when
high_availabilityis true).It is recommended to leave the default of 20GB. If only metadata is stored in the MongoDB, there is no need to increase the size.
zookeeper_disk_size: 2
The size, in GB, of the volume of each ZooKeeper replica.
It is recommended to leave the default of 2GB. If only metadata is stored in Zookeeper, there is no need to increase the size.
external_zookeeper:
enabled: false
connection_string: ""To use your own ZooKeeper instead of the one Sisense deploys, set
enabled: trueand enterconnection_stringin the formathost1:port1,host2:port2,host3:port3. Sisense then does not deploy ZooKeeper.external_rabbitmq:
enabled: false
connection_string: ""
mgmt_url: ""To use your own RabbitMQ instead of the one Sisense deploys, set
enabled: true, enterconnection_string(format:amqp://username:password@host:port/vhost) andmgmt_url(format:http://host:port). Sisense then does not deploy RabbitMQ.init_containers:
zookeeper: true
rabbitmq: trueInit containers that make Sisense services wait until ZooKeeper and RabbitMQ are available. Both are true by default. Set one to false to skip that check for faster startup.
timezone: "UTC"
Enter the system time zone applicable to the time zone of the relative date-time filters. Format: TZ database name (for example, UTC, US/Central, Asia/Tokyo, Etc/GMT+6).
namespace_name: sisense
Enter the name of the Kubernetes namespace. By default, the namespace is
sisense.The name must be lowercase. If it contains uppercase letters, the installer converts it to lowercase and updates your configuration file.
If you have multiple deployments, use a unique namespace for each deployment. For example, there might be development and production environments.
Additionally, for multiple deployments:
- Each environment must have a unique
gateway_portvalue. - After the first deployment, the value of the update parameter must be set to true.
gateway_port: 30845
Enter the port of the API gateway for your deployment. If you are not implementing SSL, this is the port used to connect to Sisense (a NodePort, open on every node). Default: 30845.
If you set
gateway_portto 80, or setis_sslto true, the installer installs NGINX Gateway Fabric, and Sisense is served on port 80 (HTTP) or 443 (HTTPS) of the nodes instead. Do not set this port to 443.is_ssl: false
Set the value to true for secure connections to Sisense. The installer creates the TLS secret
sisense-tlsfromssl_key_pathandssl_cer_pathand installs NGINX Gateway Fabric to serve Sisense on port 443.Set the value to false if you have not implemented SSL.
If set to true, see Setting Up SSL for Sisense on Linux.
ssl_key_path: ""
If you connect to your server securely, enter the path of the SSL key file on the install machine.
When SSL is defined, the Sisense API Gateway Port will be 443 and not the value defined in the gateway_port parameter. If the key or certificate file does not exist, the installation stops with the message
Error: SSL certificate or key file does not exist.ssl_cer_path: ""
If you connect to your server securely, enter the path of the SSL certificate (.cer file) on the install machine.
update_k8s_version: false
To update the Kubernetes version, set this to true. The installer then also runs the server preparation and RKE2 installation steps, and upgrades RKE2 to the version included in the installer.
Also set it to true when you add nodes to or remove nodes from
k8s_nodes.recover_kubernetes: false
Set to true to restore the RKE2 cluster from the latest etcd snapshot. RKE2 takes an etcd snapshot every 12 hours on the first server (the RKE2 server) and keeps the last 6. If no snapshot is found, the installation stops with the message
No ETCD snapshot found.cni_plugin: calico
Enables the user to set their preferred CNI (Container Network Interface) while deploying a new Kubernetes.
Valid values: calico (default), flannelNote:
When update_k8s_version is set to true, you must set this to your currently existing CNI value. (You can find your CNI value with the command:
kubectl get pod -n kube-system | grep 'calico\|flannel'.)#http_proxy:
(Optional) If you use a web proxy, enter the unsecured proxy value.
Note:
If your Linux system uses a proxy server for external traffic and no proxy for local traffic, you must complete the system configuration and Sisense configuration steps in Configuring for Linux Installation on a Proxy, No Proxy System before initializing Sisense on your system.
#https_proxy:
(Optional) If you use a web proxy, enter the secured proxy value.
#no_proxy:
(Optional) If you use a web proxy, enter the addresses to exclude from your proxy. Use commas to separate multiple addresses. If you set a proxy without
no_proxy, the installer logs the warningno_proxy is not configured, this can cause issues.expose_nodeports: false
Not in the configuration file by default; add it to use it. When set to true, Sisense also exposes internal services (MongoDB, management, query, build, translation, and their debug ports) on NodePorts 30017, 30022, 30082, 30084, 30086, 30092, 30094, 30096, 30555, and 30870 on every node. Leave it false unless you need direct access to these services.
internal_monitoring: true
When set to true, Sisense installs Prometheus and Grafana for internal monitoring. To disable internal monitoring of your deployment, set this to false. See Monitoring Sisense on Linux and Installing RKE with a Specified UID.
signature_validation: false
Enter true to enable Image Signature Validation.
uninstall_cluster: false
To remove the Kubernetes infrastructure and Sisense services, set this to true.
uninstall_sisense: false
To uninstall Sisense services, but leave your Kubernetes infrastructure unchanged, set this to true. Only the Sisense application is removed.
remove_user_data: false
To delete all user data, set this to true. This deletes your ElastiCube models, application database, message broker, and add-ons.
- Run the installation script.
./sisense.sh cluster_config.yamlYour configuration settings are displayed with a message to confirm that you want to deploy Sisense with these settings. To skip the confirmation, add
-y. - Enter y to confirm that you want to deploy Sisense.
Enter n to abort the deployment.
The installer writes its log to sisense-installer.log in the directory you ran sisense.sh from. If there are any issues, see Installation Logs and Troubleshooting.
When the installation finishes, the installer displays the address of your Sisense application, for example
The app is accessible on address: http://10.0.0.11:30845. For non-secure connections, the default address ishttp://{IP}:30845/on any node; for secure connections, it ishttps://{application_dns_name}/. See Accessing Sisense After Installation.Deployment on OpenShiftSee Installing Sisense on OpenShift to install Sisense on the OpenShift platform.
If you have an OpenShift environment on AWS, Sisense has created a script you can use to prepare your environment, see Preparing an OpenShift Environment.
If you need to install OpenShift offline, see Installing Sisense on OpenShift Offline.
Notes:
-
On the machine that runs sisense.sh, use a regular (non-root) Linux user that can run
sudowithout a password (NOPASSWD) for the duration of the installation. The installer does not connect to or change your OpenShift nodes. Sisense services run as a regular user, not as root. -
Monitoring is not supported for OpenShift installations. If these parameters are included the configuration YAML file they must be disabled, (set to
false). Please consider using OpenShift built-in monitoring tools instead.
Deploying on Cloud-Based KubernetesSisense supports several cloud-based Kubernetes systems in which you can deploy Sisense Linux on your own cloud-based Kubernetes, including:- Amazon EKS
- Google GKE
- Microsoft AKS
Sisense Linux can be deployed on each of these by configuring the cloud_config.yaml file. The installer runs on one Linux machine and works with the cluster only through the Kubernetes API; it does not connect to or change your worker nodes (see Installation User and Privileges). For specific instructions, see:
-
Once the installation is complete, some Sisense pods will remain in the Init state until the license activation. To activate the license, navigate to the Sisense web application URL (without extra paths such as /app/account/login) in your browser and enter your license credentials.
Accessing Sisense After Installation
When the installation finishes, the installer displays the address of your Sisense application in a message like The app is accessible on address: <address>. The address depends on your configuration:
-
Without SSL (default):
http://<application_dns_name or node IP address>:<gateway_port>, for examplehttp://10.0.0.11:30845. The port is open on every node. -
With
is_ssl: true:https://<application_dns_name>/(port 443). -
With
gateway_port: 80:http://<application_dns_name or node IP address>/. -
On an existing cloud cluster with
cloud_load_balancer: true: the address of the load balancer.
If application_dns_name is empty, the installer uses the address of the first node.
Note:
The kubectl cluster-info command shows the address of the Kubernetes control plane, not the address of Sisense. The installer does not install the Kubernetes dashboard.
To verify that all your services are running as expected, enter the Sisense address with /app/test added to the end, for example http://10.0.0.11:30845/app/test. This displays the status of each of your services.
To use the Sisense command-line completion, run source ~/add_completion-<namespace>.sh. The installer creates this file in the installation user's home directory.
Installation Logs and Troubleshooting
The installer writes its log to sisense-installer.log in the directory you ran ./sisense.sh from (normally the extracted installer directory). Each run adds to the end of the file. To follow the installation, run:
tail -f sisense-installer.log
When a stage that runs on the servers fails, the installer prints the errors from each server at the end of the log. It also saves them under installer/<stage>/errors/ in the installer directory, one file per server (for example, installer/02_sisense_validations/errors/).
The following table lists common messages and how to fix them:
| Message | Cause and solution |
|---|---|
|
|
|
|
|
|
|
|
The install machine or a server runs an operating system or version that the installer does not support. See Minimum Requirements for Sisense in Linux Environments. |
|
|
The install machine cannot reach a server on SSH port 22. Check the IP addresses in |
|
|
The SSH login failed. Check |
|
|
You ran the installer on a machine that is not the first node in |
|
|
The |
|
|
The server's kernel is older than 5.13 or does not use cgroup v2. Upgrade the kernel or enable cgroup v2 as the message describes, and reboot. |
|
|
The server does not meet the CPU, memory, or AVX instruction set requirements. See Minimum Requirements for Sisense in Linux Environments. |
|
|
Another process is already listening on the listed ports on the server. Stop that process, or use a clean server. |
|
|
The server does not have enough disk space, or (single node) /opt or /opt/sisense is not a separate mount. See Mounting on a Dedicated Disk for Sisense Single Nodes. |
|
|
For |
|
|
The value of |
|
|
With |
|
|
The cluster networking ranges cannot be changed after the cluster is created. See Cluster Networking Defaults. |
For more information, watch this video about Installing Sisense:
Tip:
For more information, see:
-
Creating Data Groups for next steps
-
On the Sisense Community site:
-
Verifying Sisense Installation Completion - Analyzing Migration Pod Messages
-
Resolving installation error for Sisense - sisense-installer/bin/activate: no such file or directory
-
Resolving Installation Failures with "Error occurred during validate_ssl_certs section"
-
Installation fails with /bin/activate: No such file or directory
-