您好,登錄后才能下訂單哦!
環境介紹:
zabbix版本:3.0.5
操作系統:Centos6.8
IP地址:192.168.10.150
2. 安裝sendEmail
sendEmail是一個免費、輕量級、命令行的SMTP郵件客戶端。
如果你需要使用命令行方式發送郵件,那么sendEmail是非常完美的選擇:使用簡單、功能強大。
wget -P /tmp # 安裝組件 yum install perl-Net-SSLeay perl-IO-Socket-SSL -y # 解壓壓縮包,并把命令拷貝到/usr/local/bin下 tar -zxvf /tmp/sendEmail-v1.56.tar.gz -C /tmp cp /tmp/sendEmail-v1.56/sendEmail /usr/local/bin/ chmod +x zabbix:zabbix /usr/local/bin/sendEmail
3. 創建zabbix報警腳本目錄
mkdir -p /usr/local/zabbix/alertscripts chown -R zabbix:zabbix /usr/local/zabbix/alertscripts
4. 修改zabbix服務端配置文件指定腳本目錄
vim /usr/local/zabbix/etc/zabbix_server.conf # 將AlertScriptsPath變量修改為如下,大概在448行左右 AlertScriptsPath=/usr/local/zabbix/alertscripts
5. 測試sendEmail發送郵件(與步驟六二選一)
sendEmail -f from@163.com -t to@qq.com -s smtp.163.com -u 'test' -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp 'passwd' -m 'test' Dec 24 23:01:59 zabbix sendEmail[3612]: Email was sent successfully! # 收到此提示表示發送成功 # -f from@163.com # 發件人郵箱地址 # -t to@qq.com # 收件人郵箱地址 # -s smtp.163.com # 發件人郵箱的smtp服務器地址 # -u 'test' # 郵件標題 # -o message-content-type=html # 郵件內容格式為html # -o message-charset=utf8 # 郵件內容編碼為utf8 # -xu from@163.com # 發件人郵箱登錄用戶名 # -xp 'passwd' # 發件人郵箱登錄密碼 # -m 'test' # 郵件內容 # 編寫郵件警報腳本 vim /usr/local/zabbix/alertscripes/sendEmail.sh #!/bin/bash to=$1 subject=$2 message=$3 smtp_server="smtp.163.com" /usr/local/bin/sendEmail -f from@163.com -t "$to" -s "$smtp_server" -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp "passwd" -m "$message" chmod +x sendEmail.sh chown zabbix.zabbix sendEmail.sh
6. 使用163代理發送郵件(與步驟五二選一)
yum install -y mailx # 在文件最下方加入兩行163認證即可 vim /etc/mail.rc # 設置發件人地址,smtp服務器 set from=pyslinux@163.com smtp=smtp.163.com # 設置發件人smtp認證用戶名和密碼(由于163開啟smtp后這里設置的是授權碼而非登錄密碼) set smtp-auth-user=pyslinux@163.com smtp-auth-password=密碼 smtp-auth=login # 測試郵件發送 mail -s 'test' xxx@qq.com < /etc/passwd # 編寫腳本 vim /usr/local/zabbix/alertscripes/mail.sh #!/bin/bash echo "$3"|mail -s "$2" "$1" chmod +x /usr/local/zabbix/alertscripes/mail.sh
7. zabbix頁面設置報警
I:進入到zabbix管理界面---->管理---->報警媒介類型---->創建媒體類型
名稱寫要顯示的媒體類型名稱、類型選擇腳本、腳本名稱寫腳本的全稱,腳本參數添加三個對應:收件人,標題,內容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
選擇已啟用,點擊添加
II:主界面---->管理---->用戶---->創建用戶
填寫用戶的別名,密碼,選擇語言
創建用戶組--->添加用戶到用戶組--->勾選調試模式
權限--->組合權限--->添加---->選擇需要報警的主機---然后添加 IV:主界面--->配置--->動作 事件源選擇觸發器---->創建動作 點擊操作--->動作操作--->新的--->如下 默認操作步驟持續時間60秒,步驟1-2,操作類型為發送消息,發送到用戶,用戶組(選擇新建的用戶和組),僅送到選擇剛才新建的媒介類型,添加。 解釋: 默認的步驟是1-1,也即是從1開始到1結束。一旦故障發生,就是執行sendEmail.sh腳本發生報警郵件給Admin用戶和zabbix administrator組。 假如故障持續了1個小時,它也只發送一次。如果改成1-0,0是表示不限制.無限發送 間隔就是默認持續時間60秒。那么一個小時,就會發送60封郵件。(步驟持續時間表示每隔多少秒發送一次) 如果需要短信報警的話,可以再創建一條新的動作,選擇短信腳本。
8. 打開郵箱看是否收到郵件,也可以通過zabbix頁面看郵件是否發送:報表---->動作日志
確實收到郵件,但是內容顯示有點不友好,解決辦法:
可以修改動作日志的內容格式
點擊 配置->動作->打開剛才創建的動作
在默認信息每一行后面添加<br/>
列如:
Trigger: {TRIGGER.NAME}<br/>
Trigger status: {TRIGGER.STATUS}<br/>
Trigger severity: {TRIGGER.SEVERITY}<br/>
Trigger URL: {TRIGGER.URL}<br/>Item values:<br/>
1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}<br/>
2. {ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}<br/>
3. {ITEM.NAME3} ({HOST.NAME3}:{ITEM.KEY3}): {ITEM.VALUE3}<br/>
Original event ID: {EVENT.ID}
因為我用sendEmail.sh腳本指定格式是html,所以換行就是<br/>
或者改成中文提示:
默認信息和恢復信息是一樣的
告警主機: {HOSTNAME1}<br/>
告警時間: {EVENT.DATE} {EVENT.TIME}<br/>
告警等級: {TRIGGER.SEVERITY}<br/>
告警信息: {TRIGGER.NAME}<br/>
告警項目: {TRIGGER.KEY1}<br/>
問題詳情: {ITEM.NAME}: {ITEM.VALUE}<br/>
當前狀態: {TRIGGER.STATUS}: {ITEM.VALUE1}<br/>
事件ID: {EVENT.ID}
參考網站:http://www.cnblogs.com/rysinal/p/5834421.html
參考網站:http://www.iyunv.com/thread-22904-1-1.html
參考網站:http://www.centoscn.com/CentosServer/log/2013/0807/1168.html
參考網站:http://tongcheng.blog.51cto.com/6214144/1706712
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。