Zimbra Collaboration Server - ZCS
Zimbra Product Overview
The VMware Zimbra Collaboration Server (ZCS) architecture is built with well-known open source technologies and standards based protocols. The architecture consists of client interfaces and server components that can be ran in a single node configuration or deployed across multiple servers for high availability and increased scalability.
The architecture includes the following core advantages
- Open source integrations. Linux, Jetty, Postfix, MySQL, OpenLDAP.
- Uses industry standard open protocols. SMTP, LMTP, SOAP, XML, IMAP, POP.
- Modern technology design. HTML5, Javascript, XML, and Java.
- Horizontal scalability. Each Zimbra mailbox server includes its own mailbox accounts and associated message store and indexes. Zimbra has the flexibility to scale both vertically by adding more system resources or horizontally by adding more servers.
- Browser based client interface. Zimbra Web Client gives users easy access to all the ZCS features.
- Browser based administration console.
Zimbra Components
Zimbra architecture includes open-source integrations using industry standard protocols. The third-party software listed below is bundled with Zimbra software and installed as part of the installation process. These components have been tested and configured to work with the software.
- Jetty
the web application server that Zimbra software runs in - Postfix
Open source mail transfer agent (MTA) that routes mail messages to the appropriate Zimbra server - OpenLDAP
Open source implementation of the Lightweight Directory Access Protocol (LDAP) that stores Zimbra system configuration, the Zimbra Global Address List, and providers user authentication. Zimbra can also work with GAL and authentication services provided by external LDAP directories such as Active Directory - MySQL
Most popular open source RDBMS - Lucene
Open source full-featured text and search engine - Anti-virus and anti-spam open source components including
ClamAV - an anti-virus scanner that protects against malicious files
SpamAssassin - a mail filter that attempts to identify spam
Amavisd-new - interfaces between the MTA and one or more content checkers
James/Sieve filtering - used to create filters for email
Zimbra System Architecture
diagram
Example of a Typical Multiserver Configuration
The exact configuration for each deployment is highly dependent on variables including the number of mailboxes, mailbox quotas, performance requirements, existing network infrastructure, IT policies, security requirments, spam filtering requirements, and so forth.
The figure below shows a typical configuration with incoming traffic and user connection.
Typical Configuration with Incoming Traffic and User Connections
Zimbra Application Packages
ZCS includes the following application packages
- Zimbra Core
Includes the libraries, utilities, monitoring tools, and basic configuration files.
zmconfigd is part of zimbra-core and is automatically enabled and runs on all systems. - Zimbra LDAP
ZCS uses the OpenLDAP software, an open source LDAP directory server. User authentication, the Zimbra Global Address List, and configuration attributes are services provided through OpenLDAP. Note that the Zimbra GAL and authentication services can be provided by an external LDAP Directory such as Active Directory. - Zimbra MTA
Postfix is the open source mail transfer agent (MTA) that receives email via SMTP and routes each message to the appropriate Zimbra mailbox server using Local Mail Transfer Protocol (LMTP). The Zimbra MTA also includes the anti-virus and anti-spam components. - Zimbra store (mailbox server)
The Zimbra store package installs the components for the mailbox server, including Jetty, which is the servlet container the Zimbra software runs within. Within ZCS, this servlet container is called mailboxd. Each account is configured on one mailbox server, and this account is associated with a mailbox that contains all the mail messages, file attachments, contacts, calendar, and collaboration files for that mail account. Each Zimbra server has its own standalone data store, message store, and index store for the mailboxes on that server. As each email arrives, the Zimbra server schedules a thread to have the message indexed (Index store). - Zimbra-SNMP
Zimbra uses swatch to watch the syslog output to generate SNMP traps. - Zimbra-Logger
The Zimbra logger installs tools for syslog aggregation, reporting. If the Logger is not installed, the server statistics section of the administration console is not displayed. - Zimbra-Spell
Aspell is the open source spell checker used on the Zimbra Web Client. When zimbra-spell is installed, the Zimbra-Apache package is also installed. - Zimbra-Proxy
Use of an IMAP/POP proxy server allows mail retrieval for a domain to be split across multiple Zimbra servers on a per user basis. The Zimbra Proxy package can be installed with the Zimbra LDAP, the Zimbra MTA, the Zimbra mailbox server, or on its own server. Zimbra-Memcached is a separate package from zimbra-proxy and is automatically selected when the zimbra-proxy package is installed. One server must run zimbra-memcached when the proxy is in use. All installed zimbra-proxies can use a single memcached server
Zimbra Port Mapping
Port Mapping
Service | Port |
---|---|
Remote Queue Manager | 22 |
Postfix | 25 |
HTTP | 80 |
POP3 | 110 |
IMAP | 143 |
LDAP | 389 |
HTTPS | 443 |
Mailboxd IMAP SSL | 993 |
Mailboxd POP SSL | 995 |
Mailboxd LMTP | 7025 |
Zimbra System Directory Tree
The following table lists the main directories created by the Zimbra installation packages.
See: Zimbra System Directory Tree Page
The directory organization is the same for any server in the ZCS, installing under /opt/zimbra.
Note: The directories not listed in this table are libraries used for building the core Zimbra software or miscellaneous third-party tools.
Single Server Installation - Installation Process overview
When you run the install script, the Zimbra install verifies that the correct prerequisite packages are available to be installed.
- Zimbra Core - installs the libraries, utilities, and monitoring tools.
- Zimbra LDAP - installs the OpenLDAP software, which provides open source LDAP directory services.
- Zimbra Store - installs the mailbox server, including Jetty, the servlet container for the Zimbra server.
- Zimbra MTA - installs the Postfix open source MTA, the Clam AntiVirus antivirus engine, the SpamAssassin junk mail filter, and the Amavisd-New content filter.
- Zimbra SNMP - installs the SNMP package for monitoring. This package is optional.
- Zimbra Logger - installs tools for syslog aggregation and reporting. If you do not install Logger the server statistics are not captured, and the server statistics section of the administration console does not display.
- Zimbra Spell - installs the Aspell open source spelling checker.
- Zimbra Apache - is installed automatically when Zimbra Spell is installed
The Zimbra server configuration is menu driven. The installation menu shows you the default configuration values. The menu displays the logical host name and email domain name [mailhost.example.com] as configured on the computer. You can change any of the values. For single server installs, you must define the administrator’s password, which you use to log on to the administration console.
DNS Configuration Requirements
In order to send and receive email, both A (address record) and MX (mail exchange) records needs to be in place in DNS. For sending mail, the MTA uses DNS to resolve hostnames and email-routing information. To receive mail, the MX record must be configured correctly to route the message to the mail server.
You MUST configure a relay host if you do not enable DNS. After ZCS is installed, go to the Global Settings>MTA tab on the administration console and uncheck Enable DNS lookups. Enter the relay MTA address to use for external delivery.
Note: Even if a relay host is configured, an MX record is still required if the ZCS server is going to receive email from the Internet.