Terry : Zimbra Collaboration Server

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

ServicePort
Remote Queue Manager22
Postfix25
HTTP80
POP3110
IMAP143
LDAP389
HTTPS443
Mailboxd IMAP SSL993
Mailboxd POP SSL995
Mailboxd LMTP7025

 

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 LDAPinstalls 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 MTAinstalls the Postfix open source MTA, the Clam AntiVirus antivirus engine, the SpamAssassin junk mail filter, and the Amavisd-New content filter.
  • Zimbra SNMPinstalls the SNMP package for monitoring. This package is optional.
  • Zimbra Loggerinstalls 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 Spellinstalls the Aspell open source spelling checker.
  • Zimbra Apacheis 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.

Reference

Zimbra Documentation