Compiling Zimbra server on Ubuntu 8.04LTS

Last version of Zimbra collaboration, version 6.0.6, had been subject to several delays, which lead to a gap of nearly three weeks since the first proposed release date.┬áThese dates are considered target, thus flexible. Normally, I wouldn’t get crazy about release dates. Yes, while you may wish to get your hands on, because it fixes the most annoying but you ever had, you can wait some more days anyway.

But 6.0.6 had several fixes I really needed at some place. And after the second delay, I decided to try to compile Zimbra from source. Brave you think? Me too…

Continue reading Compiling Zimbra server on Ubuntu 8.04LTS

Set apache2 to proxy Zimbra

In some configurations it’s desirable to share apache2 and Zimbra on the same host. This would mean that either one of the two services shuold run on non-standard port, that is 80 and 443. If this is not an issue,

  • change the ports apache2 is listening to in /etc/apache2/ports.conf
  • change the portz zimbra is listening to using zmprov (zmprov gs zimbraserver zimbraMailPort 81)

But thanks to apache2‘s mod_proxy, you can have both services on the standard web ports.

Continue reading Set apache2 to proxy Zimbra

Configure PHPMyFAQ for Zimbra LDAP auth

PHPMyFaq is an excellent open source PHP based FAQ software. It helps you or your organization, like our, to keep good documentation, shared, and accessible everywhere.
It provides several functionalities, but the one we use the most is keeping articles and making search very fast and easy.

As every web based software has its own users db, but can also authenticate against an external LDAP directory, like Zimbra.

Continue reading Configure PHPMyFAQ for Zimbra LDAP auth

Convirt: transform a VM from HVM to PV

We recently reinstalled our main server. It’s a Xen 4.0.1 host, based on Debian Squeeze. We don’t have many VM on it, it’s basically to save some power and have a sandbox for some test installations. Can be useful, quite often.

Instead of using plain CLI tools (xen-tools basically), I decided to give a try to one of the most well known interfaces for Xen: Convirt. Formerly xenman, born some years ago, at some time it moved to a commercial software, with open source base. Can be installed on custom host, as in my case, or downloaded as VM appliance!
Beside all considerations, it’s quite cool, even if I find documentation a bit lacking, the forum has some nice people. Not really as much as I’d like, but useful.

Continue reading Convirt: transform a VM from HVM to PV

Zabbix and PhpMyAdmin on the same web server

On a recent install, I had together on the same web server the Zabbix monitoring tool and PhpMyAdmin. It turns out that the first needs mbstring.func_overload set, while it annoys the second! Well, not a big deal, we have multiple configuration overrides for PHP values, don’t we?

Obviously yes, but there’s a common mistake about this particular (and others).

Continue reading Zabbix and PhpMyAdmin on the same web server

Xen4 dom0 and Grub2

I’ve recently installed a Debian Squeeze system with Xen4. Since the pretty new mix of Grub2 and Xen, I’ve had little problems finding around how to apply the dom0_mem option to boot command line.

To add the usual dom0 options to kernel command line, just edit /etc/defaults/grub and add a line as follows:

GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=256M nosmp"

After that, obviously run update-grub.

It wasn’t very hard, but found no examples so far. ­čÖé

Developing Zimlets

So, here I am again, after some time.

Today we’ll talk about Zimlets, as we released our first one. Well, it was an Admin extension, to be precise.

Here at YetOpen we believe a lot in Zimbra, the wonderful open source collaboration suite. And all the efforts we spend in studying, helping and distributing it are here to prove it. One more step forward was moved today, with the release of an extension for the admin interface, used to integrate mail accounts with the powerful mail backup solution hosted by Promo, a local service provider.

Continue reading Developing Zimlets

Improve the performances of your Zimbra server

We‘ve set up a pretty nice installation of a Zimbra server, based on Ubuntu 8.04LTS, which among the rest handles NFS homes, Samba shares, local DNS, faxes with HylaFAX + AvantFAX frontend and MySQL. Everything is well fitted together, and in failover configuration thanks to the always beloved Heartbeat + DRBD couple. It’s a very nice setup, which needed some tuning here and there. And maybe I’ll talk about this, someday.

So, after all it took, there was still a little occasional slowdown happening every now and then. The CPU spiked to 100% quite often, say every five minutes or less, causing noticeable unresponsiveness on the Zimbra Web Client.

Searching here and there, most of the documents identify in zmlogger the culprit, the Zimbra Logger service. This was true until 5.x version, or yet until 6.0.2. After that, zmlogger was fixed of the remaining issues, and became a lot more CPU friendly.

So what left? Checks! Zimbra performs services check quite often, requiring much performances. If you never had problems with crashing or failing daemons, you can loosen those executions thus saving CPU for real users.

Become the zimbra user, and execute the following commands:

zmlocalconfig -e zmmtaconfig_interval=6000
zmprov mcf zimbraLogRawLifetime 7d
zmprov mcf zimbraLogSummaryLifetime 30d
/opt/zimbra/libexec/zmlogprocess

then, again as zimbra user, you must edit the relative crontab row as follows:

crontab -e
*/60 * * * * /opt/zimbra/libexec/zmstatuslog

Myself, and other users on IRC, reported significant load reduction on the server.

Many thanks to raj of the Zimbra Forum for sharing this tip!

Allowing Heartbeat to perform bind mounts

I ran into the problem of  needing a bind mount over a shared disk resources on DRBD.

This because some software, like Zimbra, are not friendly with filesystem links. So, since I didn’t want to dedicate a whole DRBD resource to /opt/zimbra, I needed to use bind mount.

Unluckily, heartbeat doesn’t like that kind of mount, because the none filesystem type is not present in /proc/filesystems.

So a little option has to be added to che check if. In /usr/lib/ocf/resource.d/heartbeat/Filesystem, apply the following patch:


--- Filesystem.ORIG     2010-04-14 16:02:01.000000000 +0200
+++ Filesystem  2010-04-14 16:04:55.000000000 +0200
@@ -355,7 +355,8 @@
# Insert Filesystem module
$MODPROBE $FSTYPE >/dev/null 2>&1
grep -e "$FSTYPE"'$' /proc/filesystems >/dev/null
-                       if [ $? -ne 0 ] ; then
+                       # YetOpen - maxxer - 2010.04 To allow bind mount by heartbeat
+                       if [ $? -ne 0 -a "$FSTYPE" != "none" ] ; then
ocf_log err "Couldn't find filesystem $FSTYPE in /proc/filesystems"
return $OCF_ERR_ARGS
fi

This way, none filesystem will be allowed.

a place that does not exist