====== Zimbra Troubleshooting Tips ======
See also **[[https://www.sonoracomm.com/wiki/doku.php?do=search&id=zimbra|Other Zimbra pages in this wiki]]**
===== Check Status and Reboot =====
service zimbra stop && reboot
Check Zimbra status:
service zimbra status
Be patient. Zimbra takes a long time to start up and even longer for the status in the Admin Console to correctly reflect the current status.
===== Permissions =====
Repair any potential permissions problems with files under ''/opt/zimbra'':
su - zimbra
zmcontrol stop
logout
/opt/zimbra/libexec/zmfixperms --verbose --extended
su - zimbra
zmcontrol start
===== Message Tracking =====
https://wiki.zimbra.com/wiki/Postfix-Queue-ID-vs.-message-id-MTA
When a message enters the Postfix system [incoming or outgoing] it is immediately assigned a queue ID.
Postfix/ZCS will most likely have a message leave the Postfix queue for other processing: amavis, filters, etc. This will cause the message to get a new queue ID(s). This can also happen if you were to requeue your messages by doing something like: ''postsuper -r''. **You will need to note the message-id and ALL queue ID's to get the complete picture of what was happening for a particular email.**
Find the ''Message ID'' in the message headers, then use it to find the associated ''Queue ID''s:
egrep "1544469627.145884.1473273227065.JavaMail.zimbra@mydomain.com" /var/log/zimbra.log
Then:
egrep "1544469627.145884.1473273227065.JavaMail.zimbra@mydomain.com|225D286F6F|3C18086F7A|B590286F6F" /var/log/zimbra.log
===== DoSFilter =====
**HowTo**: https://www.missioncriticalemail.com/2018/10/19/using-zimbras-dosfilter-and-failed-login-lockout-policy-together/
http://wiki.zextras.com/wiki/ZeXtras_Suite_and_the_Zimbra_DoSFilter
http://wiki.zimbra.com/wiki/DoSFilter
grep DoSFilter /opt/zimbra/log/mailbox.log
grep DoSFilter /opt/zimbra/log/zmmailboxd.out
Get current values:
su - zimbra
zmprov gcf zimbraHttpThrottleSafeIPs
zmprov gcf zimbraHttpDosFilterMaxRequestsPerSec # Default 30
zmprov gcf zimbraHttpDosFilterDelayMillis # Default -1
Set additional safe IPs:
ZCS prior to 8.7 does not support CIDR, so you must add the IPs individually.
zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.2.0/24
zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.66
zmmailboxdctl restart
===== zmconfigd is not running =====
Comment out the IPv6 line:
vim /etc/hosts
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Then:
systemctl start zimbra
===== Root Mail =====
:!: It didn't seem to matter what I did with ''/etc/aliases''.
http://wiki.zimbra.com/index.php?title=How_to_%22fix%22_system%27s_sendmail_to_use_that_of_zimbra
/usr/sbin/alternatives --install /usr/sbin/sendmail mta /opt/zimbra/postfix/sbin/sendmail 25 \
--slave /usr/bin/mailq mta-mailq /opt/zimbra/postfix/sbin/mailq \
--slave /usr/bin/newaliases mta-newaliases /opt/zimbra/postfix/sbin/newaliases \
--slave /usr/share/man/man1/mailq.1.gz mta-mailqman /opt/zimbra/postfix/man/man1/mailq.1 \
--slave /usr/share/man/man1/newaliases.1.gz mta-newaliasesman /opt/zimbra/postfix/man/man1/newaliases.1 \
--slave /usr/share/man/man8/sendmail.8.gz mta-sendmailman /opt/zimbra/postfix/man/man1/sendmail.1 \
--slave /usr/share/man/man5/aliases.5.gz mta-aliasesman /opt/zimbra/postfix/share/man/man5/aliases.5 \
--initscript zimbra
/usr/sbin/alternatives --config mta
If mail sent to ''root'' does not flow into the ''admin'' mailbox, check:
tail -30 /var/log/maillog
You may see errors like:
Nov 5 10:06:29 zimbra postfix/smtp[7400]: BCAAD18289B: to=, relay=none, delay=0.06, delays=0.01/0.04/0/0, dsn=5.4.6, status=bounced (mail for zimbra.virtualarchitects.com loops back to myself)
You can also test like this:
echo foo | /usr/sbin/sendmail -f root root && tail -f /var/log/maillog
In our default Zimbra installation, we only had one domain ''virtualarchitects.com'', but root's mail was aliased to "root@zimbra.virtualarchitects.com". So I added an alias domain "zimbra.virtualarchitects.com" and an additional mail alias to ''admin'' of "root@zimbra.virtualarchitects.com":
su - zimbra
zmprov createAliasDomain zimbra.virtualarchitects.com virtualarchitects.com
zmprov aaa admin@virtualarchitects.com root@zimbra.virtualarchitects.com
===== Changed SSH Port =====
:!: Consider using firewall port forwarding (i.e 2222 -> 22) instead of changing the SSH server on the Zimbra server.
If you changed the SSH port in ''/etc/ssh/sshd_config'', you need to adjust Zimbra:
zmprov ms zimbra.virtualarchitects.com zimbraRemoteManagementPort 2222
===== Server Status =====
**Monitoring**: https://hazaq.me/zimbra/2018/02/02/Zimbra-Server-Status.html
Check ''/var/log/zimbra.log'' and ''/var/log/zimbra-stats.log'':
ll /var/log/zimbra*
Are they empty with actual logged detail in dated files? It appears that the ''logrotate'' configuration is broken...
/usr/sbin/logrotate -d /etc/logrotate.conf
Run as root:
/opt/zimbra/libexec/zmsyslogsetup
===== Cron Job Errors =====
Use of uninitialized value $current_proto in string eq at /usr/lib64/perl5/Sys/Syslog.pm line 371.
Use of uninitialized value $current_proto in string eq at /usr/lib64/perl5/Sys/Syslog.pm line 374.
vim /usr/lib64/perl5/Sys/Syslog.pm
my $current_proto = 0;
===== Mail Delivered to MTA But Not to Mailbox =====
tail -30 /opt/zimbra/log/mailbox.log
If your Zimbra server only has a private IP address and is behind a NAT firewall, you may see errors in ''/var/log/maillog'' or ''/var/log.zimbra.log'' like:
postfix/lmtp ... status=deferred (connect to your.zimbra.fqdn[your.external.ip.addr]:7025: Connection refused)
:!: See this link to change the way Zimbra resolves the local IP address: http://wiki.zimbra.com/index.php?title=Incoming_Mail_Problems
Assuming a single-server setup with a properly configured ''/etc/hosts'' file:
su - zimbra
zmprov ms your.zimbra.fqdn zimbraMtaLmtpHostLookup native
zmmtactl restart
===== Set Default CoS per Domain =====
Copy a CoS:
su - zimbra
zmprov cpc
List classes of service:
zmprov gac
Get CoS ID:
zmprov gc |grep zimbraId
Modify the default CoS for a domain:
zmprov md zimbraDomainDefaultCOSId
===== Mail System Is Down =====
Sometimes, the Postfix MTA may not start properly.
Try deleting the ''.pid'' file and restarting Postfix:
cd /opt/zimbra/data/postfix/spool/pid/
service zimbra stop
rm master.pid
service zimbra start
:!: **Wait** until Zimbra shuts down completely. Then wait again for it to start up.
The process ID file will be recreated when the MTA starts:
ll master.pid