How to Configure ‘Zabbix Monitoring’ to Send Email Alerts to Gmail Account – Part 2
If you are using Zabbix to monitor your infrastructure you might want to receive email alerts from your local domain somewhere on public internet domain, even if you don’t own a valid registered internet domain name with a mail server which you can configure on your own.
This tutorial will briefly discuss you on how to setup Zabbix server to send mail reports to a Gmail address by using SSMTP program, without the need to install and configure any local MTA daemon, such as Postfix, Exim etc.
Requirements
Step 1: Install and Configure SSMTP
1. SSMTP is a small software, which does not fulfill any of the functionality of a mail server, but only delivers emails from a local machine to an external email address on a mailhub.
To install SSMTP program alongside with mailutils package that you will use it to send mails, issue the following command on your RedHat and Debian like server:
# yum install ssmtp mailx [On RHEL/CentOS 7] $ sudo apt-get install ssmtp mailutils [On Debian 8]
2. After the packages are installed on the system, configure SSMTP program to send local emails to your Gmail account by opening the main configuration file for editing with your favorite text editor and root privileges and use the following parameter settings:
# vi /etc/ssmtp/ssmtp.conf [On RHEL/CentOS 7] $ sudo nano /etc/ssmtp/ssmtp.conf [On Debian 8]
SSMTP settings for GMAIL account
[email protected] mailhub=smtp.gmail.com:587 rewriteDomain=your_local_domain hostname=your_local_FQDN UseTLS=Yes UseSTARTTLS=Yes AuthUser=Gmail_username AuthPass=Gmail_password FromLineOverride=YES
Step 2: Gmail Tests for Zabbix Email Alerts
3. On the next step it’s time to send a local generated email to Gmail account by issuing the below command.
# echo "Body test email from 'hostname -f' "| mail -s "subject here" [email protected]
4. Normally, Gmail prevents different types of authentications to their servers from your account, so, in case you get the error “mail: cannot send message: Process exited with non-zero status”, then login to your Gmail account from browser and navigate to the following link https://www.google.com/settings/security/lesssecureapps in order to allow access for less secure apps as in the following screen.
5. After you have turned on Less Secure Apps feature on your Gmail account, run the above mail command again and verify your Inbox after a few seconds to check if the locally generated email has been successfully delivered – you should normally see the email has incoming from Gmail.
Step 3: Configure Zabbix Sendmail Script
6. Further, based on the $(which mail)
command create the following Bash script to Zabbix alertscripts directory with the following content and give it execute permissions:
# vi /usr/local/share/zabbix/alertscripts/zabbix-sendmail [On RHEL/CentOS 7] $ sudo nano /usr/local/share/zabbix/alertscripts/zabbix-sendmail [On Debian 8]
Script content:
#!/bin/bash echo "$3" | /usr/bin/mail -s "$2" $1
Next, set the execute permission on the script file.
# chmod +x /usr/local/share/zabbix/alertscripts/zabbix-sendmail
7. Next, as previously, test the script functionality by sending a local email to Gmail account. The way to run the script with positional parameters is explained above:
# /usr/local/share/zabbix/alertscripts/zabbix-sendmail [email protected] "Subject here" "Body of the message here"
Afterwards, verify Gmail Inbox and check if the new local message has arrived.
Step 4: Configure Zabbix to Send Alerts to Gmail
8. If the tests so far were successful, then you can move to next step and setup Zabbix to send generated email alerts to Gmail. First, login to Zabbix web interface and navigate to the following menu: Administration -> Media types -> Create media type.
9. On the next screen enter an arbitrary Name to uniquely identify for the script in the Zabbix configurations (in this example Send-Email-Script is used), choose Script as Type from the list and enter the name of the Bash script created earlier (zabbix-sendmail used in this tutorial) to send email from command line (don’t use the path for the script, only the script name). When you’re done, hit the Add button below to reflect changes.
10. Further, let’s configure an email address to which you will send Zabbix alerts. Go to Profile -> Media -> Add and a new pop-up window should appear.
Here, select the name of the script that you have earlier named (in this example Send-Email-Script is used) for Type, enter the Gmail address to which you will send emails, choose the time period (week, hours) when email reports should be active for sending, choose the severity of the messages that you want to receive on your Gmail address, select Enabled as Status and hit the Add button to add the media. Finally hit the Update button to apply configuration.
11. On the next step, enable the defult zabbix alerts by navigating to Configuration -> Actions, select as the Event Source – > Triggers from the right menu and hit on Disabled Status in order to enable it. Repeat the step for Event Source – > Internal or other custom created Actions and you’re done.
Wait for a while for Zabbix to start gather information and generate some reports, then verify your Gmail Inbox and you should see some Zabbix alerts submitted so far.
That’s all! Although this guide was mainly focused on sending Zabbix alerts to a Gmail account using Gmail SMTP server as a mailhub, using the same configuration you can, also, push zabbix email alerts further to other valid internet email accounts by relying on Gmail to route your emails through SMTP servers.
Could not get the old command to work with Office365. Try this one instead (don’t forget to add the command line arguments in the Zabbix dashboard)
/usr/bin/mail -s "$2" -r "HARDCODE_FROM_ADDRESS" "$1" <<< "$3"
Hey Hi,
I have followed the procedure up to the allow access for less secure apps in my gmail account following your indications.But I am getting the error like this
# echo “Body test email from ‘hostname -f’ “| mail -s “subject here” [email protected]
O/P : mail: cannot send message: Process exited with a non-zero status
can you please help me on this issue.
Hi,
I’m using Ubuntu and alertscript dir exists in /usr/lib/zabbix/alertscripts/. So I’ve make script file zabbix-sendmail in this location.
I’ve using my other smtp server instead of Gmail which is working fine.
I’ve completed step 3 and successfully able to send mail using /usr/lib/zabbix/alertscripts/zabbix-sendmail Mail-id “Subject” “Body” this command.
Now there is issue in setp 4. I’ve configured media for sending mail and also enable action. But now triggers changed in zabbix GUI but it not able to send mail even no any logs are coming.
So please suggest me what should I need to check ?
Consult zabbix docs …the mail script parh has been changed.
I’ve check in /etc/zabbix/zabbix_server.conf file and in file alert location mention as below:
It means script location is /usr/lib/zabbix/alertscripts and I’ve also create script in on same location but not get success.
alertscripts folder name and location is in zabbix_server.conf, where zabbix_server.conf is in /etc/zabbix default location for alertscripts in Ubuntu is /etc/zabbix/alert.d everything else worked, thanks
Hi, I follow the process up to allow access for less secure apps in my gmail account following your indications. However after apply changes and confirme it is turned on. I still receive the error ail: cannot send message: Process exited with a non-zero status.
Any Idea about what could be the problem?
thanks in advance.
I found one thing missing: on Centos 7, ssmtp does not automatically activate itself as default mta when installed. I had to do command:
and then choose the number next to ssmtp. Before that postfix was grabbing my emails, so they weren’t being routed through gmail.
Hi, thank you!
It works perfectly for me
^^
Hi,
I followed all the guides regarding sending mail using Gmail,
I manage to send test mails via script to Gmail accounts, but through zabbix mails are stuck in “in progress, 3 retries left” status.
Any help would be appreciated.
Muli
In case you have issues with mail concerning different versions of Zabbix, please read their documentation at https://www.zabbix.com/documentation/3.0/manual/config/notifications/media/email
Same problem, please me on that problem