zabbix 通過smtp外部郵箱實現郵件報警
簡介
在zabbix的使用中,最重要的一點就是完善的報警機制,作為監控平臺,需要時刻關注機器和服務的執行狀態,更重要的是發現故障之後需要及時的報警給相關人員,早點發現問題,將隱患消除在未然階段。這樣才能保證服務的穩定執行。
報警的方式是多種多樣的,微信、簡訊和郵件報警是我們比較常見的方式。而且報警的頻率和策略直接影響著運維人員的重視程度和檢錯效率。如果整個報警列表中都是一些無關痛癢的提示、輕度警告。而他們的傳送頻率又特別的高,則非常容易錯過真正關鍵的報警。
本文主要介紹使用sendemail實現外部郵箱報警功能,簡訊、微信報警在此處不做討論。
報警郵箱準備
郵件報警有兩種情況:
- Zabbix服務端只是單純的傳送報警郵件到指定郵箱,傳送報警郵件的這個郵箱賬號是
- 使用一個可以在網際網路上正常收發郵件的郵箱賬號(例如:[email protected]),通過在Zabbix服務端中設定,使其能夠傳送報警郵件到指定郵箱。
- Zabbix服務端只是單純的傳送報警郵件到指定郵箱,傳送報警郵件的這個郵箱賬號是
如採用外部郵箱傳送郵件,外部郵箱需支援smtp/pop3功能才可正常供zabbix端呼叫。本例採用網易郵箱充當外部郵箱傳送報警資訊。需做以下設定:
至此,外部郵箱設定完畢。
Zabbix配置更改
修改zabbix_server.con
在410行的地方: AlertScriptsPath=/usr/lib/zabbix/alertscripts (指令碼存放目錄路徑,視實際情況選擇路徑,注意許可權)
寫入指令碼
這裡有2個指令碼:
第一個是zabbix呼叫的傳送郵件的指令碼. 他會呼叫第二個指令碼去傳送郵件。(Media types的script name)
第一個指令碼:
[[email protected] ~]# cat /usr/lib/zabbix/alertscripts/sendemail.sh
#!/bin/bash
SMTP_server='smtp.xxx.com' # SMTP伺服器
username='************' # 使用者名稱
password='***********' # 密碼
from_email_address='**********' # 發件人Email地址
to_email_address="$1" # 收件人Email地址,zabbix傳入的第一個引數
message_subject_utf8="$2" # 郵件標題,zabbix傳入的第二個引數
message_body_utf8="$3" # 郵件內容,zabbix傳入的第三個引數
# 轉換郵件標題為GB2312,解決郵件標題含有中文,收到郵件顯示亂碼的問題。
message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_subject_utf8
EOF`
[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
# 轉換郵件內容為GB2312
message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_body_utf8
EOF`
[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
# 傳送郵件
sendEmail='/usr/bin/sendEmail'
$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312
echo "`date +"%F %T"` send to $to_email_address" >> /tmp/send.log
這個指令碼解釋的很詳細我就不解釋了
這裡的使用者名稱和密碼是發件人的,通過SMTP傳送郵件。可以使用QQ,163任何一個提供了SMTP的郵箱公司郵箱也可以。要修改的就是smtp,使用者名稱,密碼,發件人的郵箱。smtp可以去郵箱提供商獲取,或者百度
指令碼加許可權
chmod +x sendemail.sh
第二個指令碼是perl 寫的sendemail,專門用來通過smtp傳送郵件的
第二個指令碼:http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
(不是sendmail,這個是perl 寫的一個使用smtp傳送郵件的指令碼)
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvf sendEmail-v1.56.tar.gz
cd sendEmail-v1.56
cp sendEmail /usr/bin/
chmod +x /usr/bin/sendEmail
解壓: tar xvf sendEmail-v1.56.tar.gz
將裡邊的sendEmail 複製到/usr/bin/
然後測試第一個指令碼
/usr/lib/zabbix/alertscripts/sendemail.sh [email protected] zabbixtest " this is zabbix test mail ! "
如果能收到說明這兩個指令碼都沒問題
Zabbix網頁端
此處使用sendemail指令碼配置傳送報警郵件。sendemail是用perl語言寫的一個smtp發郵件的小程式,詳情可自行查閱
- 媒介型別
管理---->報警媒介型別-----建立媒體型別
名稱:sendemail
型別:指令碼
指令碼名稱:sendemail.sh
指令碼引數:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
- 使用者報警媒介
使用者配置下的報警媒介.
管理--->使用者--->選擇使用者--->報警媒介 新增型別、郵件地址(接收的郵件地址)
- 當觸發tiggers時發生的動作...這就是傳送郵件的入口
配置--> 動作 -->建立動作
名稱:Send to Admin
預設接收人:【故障】伺服器:{HOSTNAME1}發生: {TRIGGER.NAME}故障
預設資訊:
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}
事件ID:{EVENT.ID}
恢復資訊: 這個是當報警回覆正常傳送郵件的內容. 這些變數都是系統定義好.你可以引用 也可以自己定義變數.
恢復主題:【恢復】 伺服器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!
恢復資訊:
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:
事件ID:{EVENT.ID}
- 設定觸發器條件
- 定義觸發條件後進行的動作
這樣基本就完成了。
檢視日誌
報警設定完成後,可以在報表-à動作日誌 檢視相關動作,成功與否都會有日誌記錄,如傳送失敗可根據錯誤提示檢視錯誤提示。根據錯誤提示排錯。
參考連結:https://www.iyunv.com/thread-111385-1-1.html
相關推薦
zabbix 通過smtp外部郵箱實現郵件報警
簡介在zabbix的使用中,最重要的一點就是完善的報警機制,作為監控平臺,需要時刻關注機器和服務的執行狀態,更重要的是發現故障之後需要及時的報警給相關人員,早點發現問題,將隱患消除在未然階段。這樣才能保證服務的穩定執行。報警的方式是多種多樣的,微信、簡訊和郵件報警是我們比較常
搭建Zabbix監控系統服務以及實現郵件報警功能配置詳解
一、zabbix簡介:zabbix是完全開源的工具,整合了cacti和nagios等特性 附:SNMP(udp 161 udp 162)眾多網路工具都支援此協議,比如常見路由交換,常見OS,其既可以做管理端也可以做被管理端,snmp協議大致有3個版本分別是v1 、
zabbix使用外部郵箱賬號傳送報警郵件設定
一、關閉sendmail或者postfix service sendmail stop #關閉 chkconfig sendmail off #禁止開機啟動 service postfix stop chkconfig postfix off 備註: 使用外部郵箱賬號時,不
配置zabbix使用mailx實現郵件報警
說明: Zabbix監控服務端、客戶端都已經部署完成,被監控主機已經新增,Zabiix監控執行正常。 實現目的: 在Zabbix服務端設定郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動傳送報警郵件到指定郵箱。 具體操作: 以下操作在Zabbix監控服務端進行 備註:
Zabbix 如何實現郵件報警通知以及免費簡訊報警通知
前提條件:(1) zabbix伺服器端已經成功安裝並且執行。(2) zabbix客戶端已經成功建立並且執行。1 下載並且安裝msmtp軟體tar jxvf msmtp-1.4.32.tar.bz2cd msmtp-1.4.32./configure--prefix=/usr/
[Zabbix] 如何實現郵件報警通知以及免費簡訊報警通知
前提條件:(1) zabbix伺服器端已經成功安裝並且執行。(2) zabbix客戶端已經成功建立並且執行。1 下載並且安裝msmtp軟體tar jxvf msmtp-1.4.32.tar.bz2cd msmtp-1.4.32./configure--prefix=/usr
Zabbix利用msmtp+mutt發送郵件報警
echo pass 但是 郵件服務 mod 利用 pat get log Zabbix利用msmtp+mutt發送郵件報警Zabbix支持多種報警的方式,其中成本最低、最方便的就是郵件報警的方式了。但是因為它不支持郵件的用戶認證,這種方式現在也非常少見,同時安全性也差,如果
java通過smtp發送電子郵件
instance 獲取 ins dma 使用html標簽 ssl cnblogs 使用 ack package com.sm.modules.oa.web; import javax.mail.Session; import javax.mail.Transport;
zabbix監控(三)配置郵件報警
郵件報警 zabbix配置郵件報警:zabbix服務端1.編輯/etc/mail.rcset [email protected] smtp=smtp.163.comset [email protected] smtp-auth-password=w
Zabbix監控系統二:配置郵件報警
tmp messages thead $2 time 監控 末尾 mar 媒體 在zabbix的使用中,最重要的一點就是完善的報警機制,作為監控平臺,需要時刻關註機器和服務的運行狀態,更重要的是發現故障之後需要及時的報警給相關人員,早點發現問題,將隱患消除在未然階段。這樣才
Openfalcon實現郵件報警
cd $GOPATH/src mkdir github.com/open-falcon/ -p cd github.com/open-falcon/ git clone https://github.com/open-falcon/mail-provider.
zabbix通過python指令碼發告警郵件
python指令碼為敏捷開發指令碼,在zabbix監控也起到重要作用,以下是使用python指令碼傳送告警郵件配置方法。 指令碼如下: #!/usr/bin/python #coding:utf-8
CentOS 6.5 and Ubuntu 14.04 使用外部郵箱傳送郵件
我們可以使用外部郵箱(163,126,gmail,139等等)為我們發郵件 for CentOS 6.5 yum -y install mailx vi /etc/mail.rc 在檔案的末行新增以下5行 set [email protected] se
Cacti設定流量閾值實現郵件報警
2015年03月17日 09:55:16 svdata 閱讀數:8219 個人分類: 監控
Prometheus+AlertManager實現郵件報警
AlertManager下載 https://prometheus.io/download/ 解壓 新增配置檔案test.yml,配置收發郵件郵箱 Prometheus下載配置參考我的另一篇: https://www.cnblogs.com/caizhenghui/p/9132414
Zabbix通過騰訊雲實現簡訊告警
1、先申請騰訊雲賬號 2、如果選擇的是個人認證,在建立簽名時可以選擇公眾號或小程式,若沒有公眾號則可自行建立 3、簡訊模版申請(注意個人模版單個變數不能超過12個字元) 模版樣例: 4、簡訊告警 參考: 5、準備報警指令碼 [[email
CentOS6.5下呼叫外部郵箱傳送郵件
以下是自己收集的實用Linux下簡單配置外部郵箱傳送郵件的方法:1、配置/etc/mail.rc,使用mail命令# vim /etc/mail.rc###呼叫外部郵箱 set [email protected] set smtp=smtp.exmail
阿里雲Centos7中GitLab使用smtp 163郵箱傳送郵件的注意事宜
1.修改gitlab.rb配置項目錄:/etc/gitlab/gitlab.rb修改:gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.163.com"gitlab_rails['sm
監控cpu內存磁盤,並實現郵件報警
div pan spa .com gre disk warn tmp 郵件報警 1 #!/bin/bash 2 #獲取當前時間 3 now=`date -u -d"+8 hour" +‘%Y-%m-%d %H:%M:%S‘` 4 #cpu使用閾值 5
zabbix郵件報警發送至qq郵箱
zabbix 郵件報警 zabbix郵件報警設置第一、安裝郵件發送工具mailx 這裏我選擇的是mailx,所以的關閉其他的郵件發送工具 service sendmail start #開啟,因為發送郵件需要開啟25端口 chkconfig sendmail off #禁止開機啟動