Installation Guide for Zextras Suite
This section covers a variety of facts necessary for a successful installation of Zextras Suite, including specifications, configuration information, and instructions. Please carefully study the Basic Information section after that so you don’t forget anything crucial for setting up Zextras Suite.
Basic Information: Requirements
Installing the Zextras Suite does not require any additional software beyond that needed for a typical Zimbra setup in order to use it. Check the system requirements for Zimbra if you haven’t installed it yet.
You require additional setup if you intend to utilise Zextras Drive, Zextras Team, or both. You must add the following code to the file /opt/zimbra/conf/nginx/includes/nginx.conf.web in order for these two apps to be able to communicate via web sockets on ports tcp 8742 and tcp 8743, respectively.
Replace your server’s address with mail.example.com.
Minimal Conditions and Modifications
The following article on the Zimbra wiki, which, despite its title, applies to both big and small deployments, is recommended reading if you’re interested in resource optimisation and tuning: https://wiki.zimbra.com/wiki/Performance_Tuning_Guidelines_for_Large_Deployments.
The system’s Zimbra IDs must only contain the characters listed below up to a maximum length of 64 characters, which is another rigorous restriction.
- letters in uppercase and lowercase
- Number
- the symbols that follow: _ – # ( ) = @
Zimbra IDs with characters other than the permitted ones will probably result in issues with the Mobile module, as well as perhaps other modules.
APossibilities for installation
Alternatives to installing Zextras include the following:
- installation of a single store on a single server. The Quick Installation Guide section describes this because it is the simplest.
- installation of one store over several servers. This method is comparable to the first one and is used when installing Zextras Suite on a single-store infrastructure that has several servers.
- installation of many stores. If you want to operate numerous mailboxd services, you must use this method. For further information, read Installing Zextras Suite on a Multistore Infrastructure.
Zextras Suite is made up of three significant components:
- Zextras Core, often known as Core, is a jar package that adds functionality to Zimbra.
- Zextras Suite Zimlet, also known as Zextras Administration Zimlet or just Zimlet, is an administration zimlet used to access and control the Core.
- ZAL is an abstraction layer for Zimbra that is open source. Please read these installation tips for ZAL.
Following the aforementioned framework, the installation script gives you three options for installation targets: core, zimlet, and all. The latter is comparable to installing Zimlet first, then Core.
Additional Zextras Zimlets
The Zextras Client Zimlet must be deployed individually even if the Zextras Administration Zimlet is part of the Zextras Suite package. For details, go to Section Zextras Client at the bottom of this page.
Where to purchase Zextras Suite?
Existing customers can locate a direct download link after logging in with their Zextras Store accounts to get the Zextras Suite installer from the download part of the zextras website.
Instructions for Setup
This section provides general system setup information, installation problem tips, and significant upgrade recommendations for both Zimbra and Zextras.
ZAL is a Zimbra Abstraction Layer.
Regardless of the version being used, any extension may simply connect with Zimbra Collaboration Suite thanks to the Zextras Abstraction Layer (ZAL), an open source abstraction layer.
Since it is distributed under the GPL licence, it cannot be included in the Zextras Suite package; nevertheless, the Zextras Installer will determine the best library version during installation and download and install it on its own.
The DoS Filter for Zimbra
To lessen the impact of Denial of Service assaults, a connection slowing mechanism known as DoS Filter has been included as of Zimbra 8.0.0. The DoS Filter restricts connections to 30 per second by default and rejects any more connections with a 503 HTTP error.
How using Zextras Suite might be impacted by the DoS Filter
As an administrative zimlet, the Zextras Administration zimlet loads when a user logs into the Zimbra Administration Console. Since this zimlet makes a lot of requests to retrieve information, this can set off Zimbra’s DoS filter and result in slowness, AJAX errors, and general UI corruption (such as text boxes that are empty or checkboxes that are incoherent).
The log file /opt/zimbra/log/zmmailboxd.out, which contains messages like the following one, can be used to locate and identify DoS Filter alerts.
Taking care of the DoS Filter
The DoS Filter is controlled by three primary configuration factors. Every attribute comes from global or may be customised at the server level.
To prevent DoSFilter from blocking certain requests, external hosts that perform SOAP requests for provisioning or any type of integration must be added to the IP whitelist. This is also necessary anytime there are network resources other than Zimbra between the clients and Zimbra (for example, proxies, bouncers, load-balancing servers, firewalls, and NATting devices). For further details and instructions in either of these scenarios, please refer to the following sections (OIP Logging and Non-Zimbra Proxies and Modify Nginx Templates Files for Correct OIP Logging).
The multi-valued zimbraHttpThrottleSafeIPs property should contain IP addresses.
Using non-Zimbra proxies and OIP logging
This section offers information that is helpful if there are proxies or other network devices that can change the originating IP address of the request between a Client and Zimbra.
OIP (Originating Client IP Address) values are assigned by Mailboxd based on the HTTP Request header field X-Forwarded-For.
When a client connects to the Zimbra WebClient via an HTTP proxy or a load balancer, only the IP address of the proxy or load balancer is recorded in the server’s access logs once the communication between clients and servers has been intercepted. The X-Forwarded-For request header is used to view the client’s original IP address, and its general structure is as follows
Here, the values are a list of IP addresses separated by commas:
- the original client IP address is in the left-most column (client>).
- Every subsequent IP address (ext-proxy1, ext-proxy2, etc.) is a proxy that transmitted the request and added the IP address from where it originated.
- The IP address of the most recent proxy is the one on the rightmost line (ext-proxyN>).
Cases of log entries
- The IP address of the Originating client, from whom the request was launched, is xxx.xxx.xxx.xxx.
- The first proxy server to transmit a request to another proxy server or the target server is yyy.yyy.yyy.yyy.yyy.
Make Modifications to Nginx Template Files for Proper OIP Logging
Nginx templates need to be changed in order to correctly log the OIP.
Make a backup of the current Nginx conf directory first.
Replace $http_x_forwarded_for with $proxy_add_x_forwarded_for in all template files located in the /opt/zimbra/conf/nginx/templates directory.
Restart the proxy service to finish.
Zextras Suite must be reinstalled in the event of a Zimbra update because doing so removes the Zextras Core from the server. After re-installing the Zextras Suite, the configuration will be exactly the same as it was before to the Zimbra update since all the data and settings will be preserved.
Patches for Zimbra
The advice above only relates to version upgrades; reinstalling Zextras Suite is not necessary because installing a Zimbra patch has no impact on it.
Rapid Installation Instructions
Installation may be completed in the following steps:
- Upload the Zextras Suite package you downloaded to your server.
- Unpack the file you just downloaded into a directory on your Zimbra server (we recommend /root/) as the root user: by typing “tar zxf zextras_suite-latest.tgz”
- enter ‘cd zextras-suite’ to access the directory where the file was unpacked.
- Use the all option to run the install.sh script (./install.sh all).
- The installer will begin the installation process and take care of getting the most recent Core, ZAL, and Zimlets for your specific Zimbra version.
On multiserver infrastructures, Zextras Suite
Some additional safety measures need to be done, depending on the server roles being used:
Zextras Suite installation on a single-store infrastructure
Because the software only has to be installed on servers running the mailboxd service, deploying Zextras Suite on a multiserver environment with a single mailbox server is just as simple as installing it on a single-server system.
Zextras Suite installation on a Multistore infrastructure
The following additional configuration is necessary for Zextras Suite installation in a Multistore environment with several mailbox servers:
- On ALL store servers (i.e., those that have the mailboxd service running), Zextras Suite must be installed.
- Ports 8735 and 8736 are used by Zextras Suite for store-to-store communication, thus make sure your servers can connect to one another on these ports and that these ports are blocked from outside traffic.
Specific Directions
Before installing Zextras Suite, one must first download the package as described in the relevant section above and then unzip the archive into a desired location.
Install.sh is an executable shell script that may be launched by typing./install.sh -h |./install.sh [-u] [-d] within the zextras_suite directory. all|theme|zimlet|core. To get a brief summary of the options, navigate to that directory and execute the command with -h:
A single zextras-theme-installer script can be used to install an updated version of the theme; however, a Zextras Theme is automatically installed during a Zextras Suite Full Installation or Zextras Suite Full Upgrade.
One must execute the script as the root user (for example, via sudo) or become the root user in order to install the Zextras suite correctly
After being run, the script will ascertain the version of Zimbra that is currently installed and look for an earlier installation of either Zextras Suite or Zextras Migration Tool.
Full Installation of Zextras Suite
Installing the core of Zextras Suite
only install the core:
Installation using just Zimlet:
Full Zextras Suite Upgrade
Zextras Suite Multiserver Infrastructure Upgrade
- changing the minor release of Zextras Suite (for example, from 2.16.1 to 2.16.2). The Zextras Suite will operate flawlessly even in a setting with a mix of minor versions since each individual server may be upgraded separately.
- changing the main release of Zextras Suite (for example, from 2.14.x to 2.16.x). Since backwards compatibility is not guaranteed in this situation and Zextras Suite won’t be completely functioning until all nodes have been upgraded to the same version, all servers should be upgraded at the same time.
Installing Zextras Suite is done
- The Zextras Administration Zimlet and the Zextras Core may both be removed with the command./install.sh -u all.
- The Zextras Core may be removed with./install.sh -u core.
- The Zextras Administration Zimlet may be removed with the command./install.sh -uzimlet.
Pre-Installation and Post-Installation
- Access the Zimbra Administration Console by logging in.
- Enter the Zextras Administration Zimlet’s Core area.
- Zextras Client Zimlet’s Deploy button should be selected.
- The zimlet will be listed as com_zextras_client in the deployed zimlets list once it has been deployed.
- Use the specific Zextras CLI command zxsuite core doDeployClientZimlet to deploy a client ziplet.