環境:
OS:centos7.4
zabbix Server:zabbix_server (Zabbix) 4.0.14
1. mail配置
確認郵件發送工具已安裝web
yum install mailx -y
配置 /etc/mail.rc,尾部加入配置項:vim
# Add mail-conf by yuhuanghui set from=stupidking123@163.com set smtp=smtp.163.com set smtp-auth-user=123456 set smtp-auth-password=password1 #受權碼 set smtp-auth=login set ssl-verify=ignore
mail受權,
chown -R zabbix:zabbix /etc/mail.rc
注:這裏文件未受權致使郵件發送不出去,zabbix Web中動做日誌顯示已發送,但實際上郵箱並未收到,搞了N天。
除了需開通SMTP服務外,還須要開通受權碼登陸,上面配置再也不是登陸密碼,而是受權碼。這裏選擇163郵箱發送。
2. 編寫郵件發送腳本
cd /usr/lib/zabbix/alertscripts
vim mail-send.shcentos
#!/bin/bash messages=`echo $3 | tr '\r\n' '\n'` subject=`echo $2 | tr '\r\n' '\n'` echo "${messages}" | mailx -s "${subject}" $1 >> /tmp/sendmail.log 2>&1
修改權限
chown -R zabbix:zabbix mail-send.sh
chomod +x mail-send.sh
chown -R zabbix:zabbix /tmp/sendmail.log
測試發送:
su - zabbix 切換zabbix用戶
sh /usr/lib/zabbix/alertscripts/mail-send.sh abc@xxx.com "zabbix test mail" "test"
查看郵箱收取到郵件,說明腳本發送成功。
3. zabbix頁面配置web
管理 ----> 報警媒介類型 -----> 建立媒介類型
添加三個腳本參數:bash
{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
腳本名稱必須跟zabbix server上配置/usr/lib/zabbix/alertscripts的腳本名稱同樣。
4. 建立用戶
管理 ----> 用戶
管理 ----> 用戶 ----> 報警媒介
5. 建立動做配置
配置 ----> 動做 ----> 動做
建立郵件發送動做,配置觸發條件:觸發器示警度 大於等於 警告
配置 ----> 動做 ----> 操做
默認標題:服務器
故障{TRIGGER.STATUS},服務器名:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
消息內容:ide
告警主機:{HOSTNAME} 告警主機IP地址:{HOST.IP} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警項目:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
配置 ----> 動做 ----> 恢復
默認標題工具
恢復{TRIGGER.STATUS}, 服務器名:{HOSTNAME1}: {TRIGGER.NAME}已恢復!
消息內容測試
告警主機:{HOSTNAME} 告警主機IP地址:{HOST.IP} 告警時間:{EVENT.DATE} {EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警項目:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
確認建立的動做是啓用的:
6. 測試
關閉客戶端服務器的zabbix-agnet服務
systemctl stop zabbix-agent.service 關閉服務
稍等5分鐘郵件中查收。
ui