When you need to execute sudo from monit, you have to check whether the requiretty flag is off in your sudoers file.
requiretty: If set, sudo will only run when the user is logged in to a real tty. When this flag is set, sudo can only be run from a login session and not via other means such as cron(8) or cgi-bin scripts. This flag is off by default.
I was working on a machine that had:
Defaults requiretty
and got bit by that.