reficeja, your scipt is a great starting point, i am using iwth with a very slighly change.
what can be interesting is to integrate your script in to logrotate script to avoid receing alert during log rotation
this is the snippet:
create 0644 zimbra zimbra
/usr/bin/monit -g zimbra unmonitor all
killall -HUP syslogd 2> /dev/null || true
kill -HUP `cat /opt/zimbra/log/swatch.pid 2> /dev/null` 2> /dev/null || true
kill -HUP `cat /opt/zimbra/log/logswatch.pid 2> /dev/null` 2> /dev/null || true
/usr/bin/monit -g zimbra monitor all
i use monit principally to monit ldap, ldap process sometimes die without letting any reason on logs; i have to open a ticket to allow tech ppl to investigate the issue; in the meantime ldap start is the only way to get zimbra alive and monit does this task; there is no zimbra watchdog on ldap process.