Last Updated on January 11, 2023 EST by Jordan
If you read the Monit documentation, it tells you exactly how to use Monit environment variables when using exec.
No environment variables are used by Monit. However, when Monit executes a start/stop/restart program or an exec action, it will set several environment variables which can be utilised by the executable to get information about the event, which triggered the action.
https://mmonit.com/monit/documentation/monit.html#ENVIRONMENT
I can be smart, but sometimes I can be daft. You don’t want to use the variables within your monit configuration, but instead, you want to use these variables in your exec script.
Here’s a great example of how to use $MONIT_EVENT. First set up a monit check
check system $HOST-steal
if cpu (steal) > 0.1% for 1 cycles
then exec "script.sh"
AND repeat every 10 cycles
Now here’s script.sh which will use $MONIT_EVENT
#!/bin/bash
echo "Monit Event: $MONIT_EVENT" | mail -s "$MONIT_EVENT" [email protected]
I was in a rush and felt I had to post this to help others who might overlook this.