Installing Sisense on Linux
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.
To install Sisense:
- Backup the Sisense servers prior to installation, for rollback purposes.
-
In Linux, create a
sudo
enabled user account for each server that Sisense will be deployed on.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: ALL
It is recommended that the user has a UID/GID of 1000. Run the following command to check user's UID/GID:
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 an SSH session with the installation user you created.
-
Navigate to the directory that you will install from.
cd sisense-installation-files
-
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:
Note:
Rook-Ceph is no longer supported as the shared storage layer for new deployments of Sisense Fusion. This Rook-Ceph documentation is intended only for existing Sisense instances configured to use Rook-Ceph. If you’re a new Sisense customer or an existing customer installing a new Sisense deployment, you should use one of the supported alternatives such as FSx (for AWS) or NFS (for non-AWS).
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:
-
See Integrating Sisense with Portworx if your environment uses the Portworx platform for end-to-end storage and data management solution on the Kubernetes cluster.
-
Before you install Sisense, all Linux non-root users must have sudo permissions to initialize Sisense. From Sisense Linux V8.2.1, Sisense services only run as part of the Sisense user and do not use Root user permissions. If you must install Sisense as a Root user, see Sisense Service Permissions.
-
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.timer
sudo 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 defines the location within your Kubernetes cluster.
- 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. 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 one of the K8S nodes, or it can also be a different machine (remote installation).
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.
offline_installer: false
Set offline_installer to true when you are using an offline installer.
#docker_registry: ""
(Optional) Only required if you are using an offline installer (offline_installer = true).
Enter your server's address.
#pull_secrets_name: ""
(Optional) Only required if you have entered a value for the docker_registry parameter.
Enter the Docker secret name if your registry is private.
remote installation: false
If you are running your installation from a bastion machine (part of the K8S nodes), or remotely, set this to true.
update: false
If you are upgrading Sisense, set this to true, otherwise, keep this default value.
If you enter true, Sisense skips the Kubernetes installation. If your Kuberenetes cluster is already configured and running, keep yes to skip cluster installation.
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.
cni_plugin:
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'
..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: "sisense"
Enter the name of the Linux user. This user must not be the "root" user, but should have sudo privileges, and all the other privileges of a root user.
ssh_key: ""
Enter the SSH key if you have a secure connection to your server. This is the SSH key of the Linux user set in the linux_user parameter. The SSH key must be in .pem format.
Enter the name of the Kubernetes namespace. By default, the namespace is Sisense. Enter the name of the Kubernetes namespace. By default, the namespace is Sisense.
Note:
Kubernetes ports should be released (Non-listening mode).gateway_port: 30845
Enter the port of the API gateway for your deployment. Do not set this port to 443 if setting up SSL.
If you are not implementing SSL, this is the port used to connect to Sisense.
timezone: "UTC"
Enter the system time zone based on the TZ database name (i.e., UTC, US/Central, Asia Tokoyo, Etc/GMC+6).
is_ssl: false
Set the value to true for secure connections to Sisense.
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 SSL keypath.
When the SSL is defined, the Sisense API Gateway Port will be 443 and not the value defined in the Gateway_port parameter.
ssl_cer_path: ""
If you connect to your server securely, enter the SSL certificate path to the .cer file.
#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 address(es) to exclude from your proxy. Use commas to separate multiple IP addresses..
internal_monitoring: true
When set to true, Sisense installs a Prometheus/Grafana/Flunetd dashboard. To disable a Prometheus-supported Grafana dashboard from monitoring your deployment, set this to false. See Monitoring Sisense on Linux and Installing RKE with a Specified UID.
external_monitoring: false
When false, Sisense does not send messages outside your system.
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 configuration script.
./sisense.sh single_config.yaml
Your configuration settings are displayed with a message to confirm that you want to deploy Sisense with these settings.
- Enter Yes to confirm that you want to deploy Sisense, or enter No to abort the deployment. If there are any issues when the deployment script finishes, view the installation logs as follows:
[installation-dir]/sisense-ansible.log
When the installation finishes a list of endpoints are displayed for accessing Sisense and managing your deployment. Additionally, you can run the following command to return the URL to access Sisense:
kubectl cluster-info
This command returns the URL of your Sisense application. You can enter this address into your browser to access Sisense. To verify that all your services are running as expected, you can enter the Sisense URL with the port and /app/test added to the end of the address in your browser. This displays the status of each of your services. For example:
0.0.0.0:PORT/app/test
To connect to Sisense, enter the URL address into your browser:
- For non-secure connections:
http://{IP}:30845/
- For secure connections:
https://{IP}/
To connect to your Kubernetes dashboard, enter the following URL in your browser:
https://{IP}:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy
Cluster (Multi-Node) Deployments on RKEThe instructions below describe how to deploy Sisense in a cluster deployment.
Note:
-
If your environment uses the Portworx platform for end-to-end storage and the data management solution on the Kubernetes cluster, see Integrating Sisense with Portworx.
-
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:
Before you install Sisense, all Linux non-root users must have sudo permissions to initialize Sisense. From Sisense Linux V8.2.1, Sisense services only run as part of the Sisense user and do not use Root user permissions. If you must install Sisense as a Root user, see Sisense Service Permissions.
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
After running this command, the parameters of the cluster_config.yaml file are displayed. -
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_por
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, internal_ip: 0.0.0.0, external_ip: 0.0.0.0, disk_volume_device:
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.
Note:
Node names may not include uppercase letters. Node names can only include lowercase letters, digits and hyphens. Hyphens cannot be the last character in the node name.
internal_ip: Enter the address of the location of your node within your Kubernetes cluster.
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.
If you are using Rook-Ceph for shared storage, disk_volume_device is the location where ElastiCubes and other shared assets are stored. You need to populate this value for each node. To retrieve the value, run the lsblk command on each node and enter the location returned for each node.
roles: Sets the role of the node. Valid values: application, query, and build.
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).
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.
offline_installer: false
Set to true when you are using an offline installer.
#docker_registry: ""
(Optional) Only required if you are using an offline installer (offline_installer = true). Enter your server's address.
#pull_secrets_name: ""
(Optional) Only required if you have entered a value for the docker_registry parameter.
Enter the docker secret name if your registry is private.
update: false
If you are upgrading Sisense, set this to true. Otherwise, use false as the default value.
If you set this to true, Sisense skips the Kubernetes installation.
If your Kuberenetes cluster is already configured and running, keep true to skip cluster installation.
Staging and dev environments can run on the same cluster as a separate namespace. Confirm that you have enough storage in the Rook-Ceph for a second namespace. For installing on a separate namespace, the value of the namespace_name parameter must be updated.
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
If you are running your installation from a bastion machine (part of the Kubernetes nodes), or remotely, set this to true.
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: "sisense"
Enter the name of the Linux user.
This user must not be the "root" user, but must have sudo privileges, and all the other privileges of a root user. See Installing RKE with a Specified UID.
run_as_user: 1000
The user ID that will perform the installation. This will also be used in the SecurityContext.runAsUser setting for Sisense services (pods). See Installing RKE with a Specified UID.
run_as_group: 1000
The user group ID that will perform the installation.
This will also be used in the SecurityContext.runAsGroup setting for Sisense services (pods). See Installing RKE with a Specified UID.
fs_group: 1000
The SecurityContext.fsGroup setting for the Kubernetes pods. Kubernetes recursively changes ownership and permissions for the contents of each volume to match the fsGroup specified in a pod's securityContext when that volume is mounted. See Installing RKE with a Specified UID.
ssh_key: ""
Enter the SSH key if you have a secure connection to your server. This is the SSH key of the Linux user set in the linux_user parameter. The SSH key must be in .pem format.
high_availability: true
True means that Sisense is scaled for service redundancy.
False means that Sisense will not scale its services.
storage_type: ""
Valid values:
rook-ceph: For using rook-ceph with the three secondary disks you defined in the k8s_nodes>disk_volume_device on the first 3 machines.
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.
fsx: For using an Amazon FSX cluster. You must also enter values for fsx_dns_name and fsx_mount_name.
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
If you have implemented Rook-Ceph for storage, enter the amount of disk space in gigabytes allocated for Sisense.
Important:
You must provide enough space to support your Sisense ElastiCube models, at least twice the amount of data in all ElastiCubes.Every namespace takes additional logical disk space from the physical disks, and the installation fails if you did not allocate enough space.
For example, if you have a 1000GB disk, set sisense_disk_size = 900GB to have some volume in reserve.
mongodb_disk_size: 20
Enter the amount of disk space allocated for the Sisense application database.
Multiply this value by the number of nodes used in your deployment.
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
Enter the amount of disk space allocated for the ZooKeeper service.
If you have several deployments, this number is the sum of all the zookeeper disk sizes of all the deployments. It must be at least 2GB.
It is recommended to leave the default of 2GB. If only metadata is stored in Zookeeper, there is no need to increase the size.
timezone: "UTC"
Enter the system time zone applicable to the time zone of the relative date-time filters. Format: TZ database name (i.e., UTC, US/Central, Asia Tokyo, Etc/GMC+6).
namespace_name: sisense
Enter the name of the Kubernetes namespace. By default, the namespace is Sisense.
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_port
value. - After the first deployment, the value of the update parameter must be set to true.
Note:
Kubernetes ports should be released (Non-listening mode).gateway_port: 30845
The port of the API gateway for your deployment. Do not set this port to 443 if setting up SSL.
If you are not implementing SSL, this is the port used to connect to Sisense.
is_ssl: false
For secure connections to Sisense, set this to true and see Setting Up SSL for Sisense on Linux.
If you have not implemented SSL, set this to false.
ssl_key_path: ""
If you connect to your server securely, enter the SSL keypath.
When SSL is defined, the Sisense API Gateway Port will be 443 and not the gateway_port value.
ssl_cer_path: ""
If you connect to your server securely, enter the SSL certificate path (.cer file).
weave_enabled: false
Set this to true if your cluster uses Azure or Google virtual machines, or any other instance in your deployment that does not support IP in the IP network protocol.
The default network plugin is Calico. Sisense supports the Weave network plugin for communication between nodes.
new_node: false
To add new nodes, set this to true.
You can add additional nodes if you have already provisioned Sisense and have a working cluster.
You must define the new nodes in the k8s_nodes parameter, in addition to the existing nodes. Adding new nodes does not affect your existing nodes.
remove_node: false
To remove a node from your cluster, set this to true.
Enter the node to be removed in the value of the node_to_remove parameter.
nodes_to_remove: "node4"
Enter the name of a node to be removed.
You can remove multiple nodes by entering a comma-separated list of nodes, for example: node_1, node_2.
Note:
You will need to update thek8s_nodes
parameter if a node is removed.update_k8s_version: false
To update the Kubernetes version, set this to true.
cni_plugin:
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'
.recover_kubernetes: false
If one of your nodes is broken, set this to true. Sisense removes the node and recovers it.
#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, entered the secured proxy value.
#no_proxy:
(Optional) If you use a web proxy, enter the addresses to exclude from your proxy. You can use commas to seperate multiple IP addresses.
internal_monitoring: true
When true, Sisense installs a Prometheus/Grafana/Flunetd dashboard.To disable a Prometheus-supported Grafana dashboard from monitoring your deployment, set this to false. See Monitoring Sisense on Linux and Installing RKE with a Specified UID.
external_monitoring: false
To disable external monitoring with your Logz.io account, set this to false. See Installing RKE with a Specified UID. When false, Sisense does not send messages outside your system.
uninstall_cluster: false
To remove 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.
This can be used if you need to remove Sisense from your own cloud-based cluster without impacting the cluster.
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 configuration script.
vim./sisense.sh cluster_config.yaml
Your configuration settings are displayed with a message to confirm that you want to deploy Sisense with these settings. - Enter Yes to confirm that you want to deploy Sisense.
Enter No to abort the deployment.
If there are any issues, you can view the installation logs as follows:vim[installation-dir]/sisense-ansible.log
When the installation finishes, a list of endpoints are displayed for accessing Sisense and managing your deployment. The URLs are listed below. Additionally, you can run the following command to return the URL to access Sisense:
vimkubectl cluster-info
This command displays the URLs of your Sisense application. You can enter these addresses in your browser to access Sisense.
To verify that all your services are running as expected, you can enter the Sisense URL with the port and /app/test concatenated to the end of the address in your browser. This displays the status of each of your services. For example:
0.0.0.0:PORT/app/test
To connect to Sisense, in your browser, enter the URL address into your browser:
To see a list of endpoints in the multi-node cluster installation, connect to Sisense in your browser and enter the relevant command in your browser:
- For non-secure connections:
http://{IP}:30845/
- For secure connections:
https://{IP}/
To connect to your Kubernetes dashboard, enter the following in your browser:
https://{IP}:6443/api/v1/namespaces/kubesystem/services/https:kubernetes-dashboard:/proxy
https://{IP}:6443/api/v1/namespaces/kubesystem/services/https:kubernetes-dashboard:/proxyDeployment 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:
-
Before you install Sisense, all Linux non-root users must have sudo permissions to initialize Sisense. Sisense services only run as part of the Sisense user and do not use Root user permissions. If you must install Sisense as a Root user, see Sisense Service Permissions.
-
Both internal and external monitoring are 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. For specific instructions, see:
- Copy the URL to your supported browser to access the Sisense application online.
For more information, watch this video about Installing Sisense:
For information about the next steps, see Creating Data Groups.