Share Sisense web application externally (Windows only)
Sisense dashboards can be shared easily within the same private network, but the Sisense web application is not configured to be publicly accessible by default. This page details the steps and best practices to make your Sisense instance accessible to anyone on the internet, so that dashboards can be shared with users outside of your organization and Sisense can be accessed by users not on the same local network as the Sisense server. * Note: These settings make your Sisense web application publicly accessible. Users will still need to authenticate and be shared on a dashboard to access Sisense content. Implementation Steps To access Sisense using the Sisense server's IP address (for example, "192.0.2.0"), confirm that the server has a static public IP address. Consult your IT professional, internet service provider (ISP), or hosting service for more details. To access Sisense using a subdomain/domain name (for example, "analytics.example.com"), update your DNS to point to the machine's IP. You must own and control the domain name you wish to use. Sisense does not manage or assist with domain names or their configuration. Open the inbound TCP port in your firewall. This port is 8081 by default but configurable in the installation process (https://docs.sisense.com/win/SisenseWin/installing-sisense.htm#CustomizingtheInstallation). Nominally, this can be controlled in Windows Firewall with Advanced Security, but many customers have superseding rules from their organization or hosting service. If Sisense is still not accessible over your port after opening it in Windows Firewall, confirm with your IT department whether firewall rules may be in place elsewhere. Implement a security layer using SSL to ensure that all network traffic between your Sisense server and client machines is encrypted. For steps to do so, see here: https://docs.sisense.com/win/SisenseWin/setting-up-ssl-for-sisense-windows.htm. After implementing SSL, ensure the port used (typically 443) is also open for inbound TCP connections. Once these settings are implemented, external users will be able to access Sisense by entering the Sisense DNS/IP address and port (for example, "192.0.2.0:8081" or "analytics.example.com:8081"). * Note: If you don't want users to have to enter a port (for example, "192.0.2.0" or "analytics.example"), use port 80 for http communication and 443 for https communication, as these ports will be hidden from the URL. Troubleshooting If a user is unable to connect remotely after the settings were applied, you can test the communication between the machines to understand the source of the connectivity failure by doing the following: Confirm the Sisense web application is running and accessible locally on the server Use the 'nslookup' command in the Windows Command Prompt (cmd.exe) to confirm your domain/subdomain points to the correct IP address for your Sisense server. For example, 'nslookup example.com'. Try pinging the machine's IP address in the command prompt. This will show if there is communication available between both machines. For example, 'ping 192.0.2.0'. If you are able to ping the machine, use the telnet command to ensure you are able to communicate through the required port. For example, 'telnet 192.0.2.0 8081' Further troubleshooting or review may require your IT team's assistance. Further Reading More information is available here: https://docs.sisense.com/win/SisenseWin/setting-up-your-production-environment.htm. Helpful general information about web applications and security is available from Mozilla: https://developer.mozilla.org/en-US/Apps https://developer.mozilla.org/en-US/docs/Web/Security1.3KViews0likes0CommentsHost a New Webpage on IIS (Windows only)
It some situations, it may be useful to be able to use IIS to host website that work with Sisense. A common example would be hosting a webpage that contains the code for an embedded dashboard. Additionally, it could be useful in scenarios when you want to host a web page to be used as your custom home page during rebranding, or when hosting a webpage for the iframe widget This article shows a simple way to host your own webpages using IIS. 1. Add a New Directory to IIS The directory we will add to IIS needs to exist like any other file path, and needs to contain the webpage we want to use. We will create a reference to this directory in IIS so it can be accessed by other users, and parsed correctly by a browser. To do this, open IIS, right click on SiSenseWeb, and go to Add Virtual Directory For this example, I created a new folder to hold all of my webpages at C:\embedded, and I gave it the alias of 'testpages' in IIS. Since I used the default installation settings (localhost:8081), the file C:\embedded\adventure_works.html will be accessible at localhost:8081/testpages/embedded/adventure_works.html. After this, right click the new virtual directory you've created, go to Edit Permissions..., go to the Sharing tab, and click share. From here, use the drop down list to find Everyone, and give them Read access permissions. If a popup appears asking if you like to turn on network discovery, click Yes. In this example, I'm going to host a simple html web page that uses an iframe to display an embedded dashboard. This webpage can be created with notepad. Just be sure to save it with a .html file extension. If you are unfamiliar with embedding dashboards, you can find more information about them here: https://docs.sisense.com/main/SisenseLinux/embedding-dashboards-and-widgets.htm In the example from the documentation, the basic iframe code to embed a dashboard will look something like this: <iframe id=”ifm” name=”ifm” width=”100%” height=”100%” frameborder=”0″ src=“http://mysite.com/app/main#/dashboards/536f3a54d093e26c28000114/widgets/536f3a54d093e26c2800011b?embed=true″ scrolling=”auto”></iframe> However, you'll need to wrap this code in some standard html tags, so it gets parsed correctly by the browser. These tags will give you the format of: <html> <head> </head> <body> <iframe id=”ifm” name=”ifm” width=”100%” height=”100%” frameborder=”0″ src=“http://mysite.com/app/main#/dashboards/536f3a54d093e26c28000114/widgets/536f3a54d093e26c2800011b?embed=true″ scrolling=”auto”></iframe> </body> <html> Now, save the this file in the physical directory you created to be used by IIS. (In my case its C:\embedded). Now we can access this embedded dashboard, with the html code that's attached to this post.2.3KViews0likes0CommentsHow to Run a Repair
A repair is a process that will re-install the currently used version of Sisense. This can be useful in situations where your installation has become corrupted. No ElastiCube data or Sisense Web configurations will be changed. However, if you made any modifications to the html/css/js files that are used by Sisense Web, they are liable to be overwritten. How to Run a Repair Download the Sisense version you would like to work with. If you are currently on the latest version of Sisense, click here to download the latest version file onto the machine hosting Sisense. Otherwise, you'll need to download the version that you are currently on. You can find the version you're using opening the ElastiCube Manager, clicking Help & How-To's in the upper right corner, and then selecting About. To download a specific version, please contact Sisense support or your Customer Success Manager. Once you have the installer downloaded, right click and run it as an Administrator, and you will be prompted to repair. Just click the Continue button, and follow the instructions.943Views0likes0CommentsDisable Monitoring Logs From Being Sent To Monitoring Service
If for information security reasons you'd like to disable data sent to our monitoring tools, you may disable this by doing the following: On Sisense 7.0 and Above: To disable online logs and have ONLY offline logs, comment out the last paragraph in the shipper.conf file: C:\ProgramData\Sisense\Infra\Data\Shipper\Config\shipper.conf Then restart the Sisense.Shipper service. On Sisense 6.7 and Below: Within Windows Services, stop the monitoring service (after 6.7, the services are called Sisense.Shipper and Sisense.Collector. Before 6.7, there's only one service called Sisense.Monitoring). Using a text editor, open the file C:\Program Files\Sisense\Monitoring Agent\logstash\bin\infraAgent.exe.config Set the run_shipper_outer key to false: 4. Save the file. 5. Start services that were stopped in step 1.715Views0likes0CommentsDBfarm Cleaner, remove unattached cubes
When a build fails, the folder that was created up to that point with the data will still remain on your server. This can consume 100s of GB and required to clean from time to time. The attached application runs on the server cleaning all unnecessary folders. Steps for running the app - 1. Download the attached exe file 2. Run it as with the selected parameter elasticubedatacleaner <command> [options] Commands list List folders to delete without deletion. delete Delete unused folders. Options -h, --help Show help. --ecdatafolders [ECDATAFOLDERS] List of folders directory to scan. --ecservicename [ECSERVICENAME] Specify the name of the EC service. Default: Sisense.ECMS (for version 7.1 and earlier change the service to ElastiCubeManager --delete_alternative Delete Alternative folders. An alternative is created for a cube building in an accumulated mode in order to be used as a base cube once the second cube started802Views0likes0CommentsConfigure SiSense as a Sub-Domain with SSO
Integrate SiSense as a sub-domain of your web application and embed SiSense into your web application with SSO. Note: SiSense also works when embedded in cross-domain iframes. 1. Add your website to IIS entitled example_website.com In the site bindings enter the host name as example_website.com on port 80 2. Change PrismWeb host name to sisense.example_website.com on port 80. 3. Open the file C:\Windows\System32\drivers\etc\hosts and add mapping for the sites: 192.168.5.148 sisense.example_website.com 192.168.5.148 example_website.com 4. Sign in to your SiSense application at sisense.example_website.com and configure the SSO as pictured below: 5. Place the following SSO script in the server location corresponding to the Remote Login URL in the server's root directory. Please note that the SSO script can be implemented in any server-side language. This example uses Python. Example code has been attached for C#, PHP, and Python. sso-sub-domain.py from example_website.com import time import jwt # JWT library for python is available from https://github.com/progrium/pyjwt import urllib payload = { "iat": int(time.time()), "sub": "[email protected]", # "exp": int(time.time()) + 1000000 #optional- expiration time # "aud": "sisense" # optional- audiences parameter. can be either string or array of strings. Must contain the value "sisense" } # Shared key from SiSense SSO shared_key = "807878265444cd943f40751704bd77d2" # Create JWT token jwt_string = jwt.encode(payload, shared_key) # Encode JWT token for URL encoded_jwt = urllib.quote_plus(jwt_string) # SSO URL ssoURL = 'http://sisense.example_website.com/jwt?jwt=' + encoded_jwt # Redirection print 'Location: %s' % ssoURL print 'Content-Type: text/html' print '' 6. In index.html from example_website.com, the iframe source is the SiSense dashboard URL: index.html from example_website.com <html> <head> <title>Example Website</title> </head> <body> <p><b>example_website.com</b> - <b>SSO</b> login with embedded dashboard from <b>sisense.example_website.com</b></p> <iframe width="100%" height="100%" src='http://sisense.example_website.com/app/main#/dashboards/53b29843751b655443000018?embed=true' /> </body> </html> 7. Navigate to example_website.com and you should see the specific dashboard you embedded. Download: SSO_C#.zip SSO.zip1KViews0likes0CommentsAutomatically Redirect HTTP requests to HTTPS for the SisenseWeb site
Organizations that have set up Sisense to run on HTTPS protocol may want to prevent users from inadvertently accessing the site on HTTP protocol. To set this up, reference the documentation below according to the Sisense Version your organization is on. Sisense Version 7.1 and below The SisenseWeb site can be bound to an SSL (Secure HTTP connection) protocol, which will allow access for both secure and non-secure connections. (To know more about the basic SSL configuration - please visit our documentation page) The standard HTTP binding should always stay configured in the IIS, even when SSL is implemented. It is necessary for localhost site to be accessible However, you may want to redirect all incoming HTTP requests to HTTPS automatically - so the end user will not be required to type "https://..." in the Sisense URL. In order to automatically redirect HTTP requests to HTTPS , please follow the below steps: 1. On the Sisense site Open IIS Manager by entering inetmgr and click Enter. 2. Go to Sites > SisenseWeb and Make sure port 80 is one of the members 3. Open URL Rewrite > Click “Add Rules…” in the Actions menu to the right of the “Features View” panel 4. Use the default inbound “Blank rule” and press “OK”. 5. Give The rule a name such as "HTTP to HTTPS" 6. Within the “Match URL” configuration box we will set the following settings: Requested URL: Matches the Pattern Using: Regular Expressions Pattern: (.*) 7. In “Conditions”, Press “Add…” to add these two new condition to the configuration. a. Condition Input: {HTTPS} Check if input string: Matches the Pattern Pattern: OFF b. Condition Input: {HTTP_HOST} Check if input string: Does Not Match the Pattern Pattern: localhost After adding them condition should look as following: 8. Go to "Action" configuration box and pull down the box by selecting the arrow on the right. We will configure the following settings for the “Action” configuration: Action Type: Redirect Redirect URL: https://{HTTP_HOST}/{R:0} Redirect Type: Permanent (301) 9. Press “Apply” then press “Back to Rules” 10. Move the rule you created all the way up so it will be the first in the list 11. Open the Command line as an Admin and run an iisreset. All HTTP communication to the SisenseWeb domain will be redirected automatically to HTTPS except Localhost Sisense Version 7.2 and above Sisense Version 7.2 and above work with NodeJS and there is only one binding possible for the Sisense site on localhost:3030. To overcome this limitation one option is to create a dummy site on IIS that will listen to port 80 and redirect the traffic to your Sisense site Please follow the steps below to add a redirect on IIS Open the IIS Manager by typing inetmgr on your start menu Right click on Sites and add a Website Give the Site a name and enter a location where you wish to contain the web.config file and click OK Click on HTTP Redirect in your new site Enter your HTTPS Sisense endpoint and click Apply You are all done. Requests to port 80 will be translated to your Sisense Site on HTTPS1.2KViews0likes0Comments